• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

consumer.test.h

Go to the documentation of this file.
00001 // -*- C++ -*- (c) 2006 Petr Rockai <me@mornfall.net>
00002 
00003 #include <wibble/consumer.h>
00004 #include <wibble/operators.h>
00005 #include <list>
00006 
00007 namespace {
00008 
00009 using namespace wibble::operators;
00010 using namespace wibble;
00011 
00012 struct TestConsumer {
00013     Test stlInserterConsumer() {
00014         std::list<int> a;
00015         a.push_back( 10 );
00016         a.push_back( 20 );
00017         Range< int > r = range( a.begin(), a.end() );
00018         std::list<int> b;
00019         assert( a != b );
00020         Consumer< int > c = consumer( back_inserter( b ) );
00021         std::copy( r.begin(), r.end(), c );
00022         assert( a == b );
00023     }
00024 
00025     Test stlSetConsumer() {
00026         std::set< int > s;
00027         Consumer< int > c = consumer( s );
00028         c.consume( 1 );
00029         assert( *s.begin() == 1 );
00030         assert( s.begin() + 1 == s.end() );
00031     }
00032 
00033     Test stlVectorConsumer() {
00034         std::vector< int > v;
00035         Consumer< int > c = consumer( v );
00036         c.consume( 2 );
00037         c.consume( 1 );
00038         assert( *v.begin() == 2 );
00039         assert( *(v.begin() + 1) == 1 );
00040         assert( (v.begin() + 2) == v.end() );
00041     }
00042 
00043 };
00044 
00045 }

Generated on Tue May 10 2011 16:51:50 for wibble by  doxygen 1.7.1