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