Home | History | Annotate | Download | only in unit
      1 #include <vector>
      2 #include <algorithm>
      3 #include <deque>
      4 
      5 #include "cppunit/cppunit_proxy.h"
      6 
      7 #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
      8 using namespace std;
      9 #endif
     10 
     11 //
     12 // TestCase class
     13 //
     14 class FinsertTest : public CPPUNIT_NS::TestCase
     15 {
     16   CPPUNIT_TEST_SUITE(FinsertTest);
     17   CPPUNIT_TEST(finsert1);
     18   CPPUNIT_TEST(finsert2);
     19   CPPUNIT_TEST_SUITE_END();
     20 
     21 protected:
     22   void finsert1();
     23   void finsert2();
     24 };
     25 
     26 CPPUNIT_TEST_SUITE_REGISTRATION(FinsertTest);
     27 
     28 //
     29 // tests implementation
     30 //
     31 void FinsertTest::finsert1()
     32 {
     33   char const* array [] = { "laurie", "jennifer", "leisa" };
     34   deque<char const*> names;
     35   front_insert_iterator<deque<char const*> > fit(names);
     36   fit = copy(array, array + 3, front_insert_iterator<deque <char const*> >(names));
     37 
     38   CPPUNIT_ASSERT(names[0]==array[2]);
     39   CPPUNIT_ASSERT(names[1]==array[1]);
     40   CPPUNIT_ASSERT(names[2]==array[0]);
     41 
     42   copy(array, array + 3, fit);
     43   CPPUNIT_ASSERT(names[3]==array[2]);
     44   CPPUNIT_ASSERT(names[4]==array[1]);
     45   CPPUNIT_ASSERT(names[5]==array[0]);
     46 }
     47 
     48 void FinsertTest::finsert2()
     49 {
     50   char const* array [] = { "laurie", "jennifer", "leisa" };
     51 
     52   deque<char const*> names;
     53   copy(array, array + 3, front_inserter(names));
     54 
     55   CPPUNIT_ASSERT(names[0]==array[2]);
     56   CPPUNIT_ASSERT(names[1]==array[1]);
     57   CPPUNIT_ASSERT(names[2]==array[0]);
     58 }
     59