1#include <deque> 2#include <vector> 3#include <algorithm> 4 5#include "cppunit/cppunit_proxy.h" 6 7#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 8using namespace std; 9#endif 10 11// 12// TestCase class 13// 14class InsertTest : public CPPUNIT_NS::TestCase 15{ 16 CPPUNIT_TEST_SUITE(InsertTest); 17 CPPUNIT_TEST(insert1); 18 CPPUNIT_TEST(insert2); 19 CPPUNIT_TEST_SUITE_END(); 20 21protected: 22 void insert1(); 23 void insert2(); 24}; 25 26CPPUNIT_TEST_SUITE_REGISTRATION(InsertTest); 27 28// 29// tests implementation 30// 31void InsertTest::insert1() 32{ 33 char const* array1 [] = { "laurie", "jennifer", "leisa" }; 34 char const* array2 [] = { "amanda", "saskia", "carrie" }; 35 36 deque<char const*> names(array1, array1 + 3); 37 deque<char const*>::iterator i = names.begin() + 2; 38 39 insert_iterator<deque <char const*> > itd(names, i); 40 itd = copy(array2, array2 + 3, insert_iterator<deque <char const*> >(names, i)); 41 42 CPPUNIT_ASSERT( !strcmp(names[0], "laurie") ); 43 CPPUNIT_ASSERT( !strcmp(names[1], "jennifer") ); 44 CPPUNIT_ASSERT( !strcmp(names[2], "amanda") ); 45 CPPUNIT_ASSERT( !strcmp(names[3], "saskia") ); 46 CPPUNIT_ASSERT( !strcmp(names[4], "carrie") ); 47 CPPUNIT_ASSERT( !strcmp(names[5], "leisa") ); 48 49 copy(array1, array1 + 3, itd); 50 CPPUNIT_ASSERT( !strcmp(names[5], "laurie") ); 51 CPPUNIT_ASSERT( !strcmp(names[6], "jennifer") ); 52 CPPUNIT_ASSERT( !strcmp(names[7], "leisa") ); 53 CPPUNIT_ASSERT( !strcmp(names[8], "leisa") ); 54} 55void InsertTest::insert2() 56{ 57 char const* array1 [] = { "laurie", "jennifer", "leisa" }; 58 char const* array2 [] = { "amanda", "saskia", "carrie" }; 59 60 deque<char const*> names(array1, array1 + 3); 61 deque<char const*>::iterator i = names.begin() + 2; 62 copy(array2, array2 + 3, inserter(names, i)); 63 64 CPPUNIT_ASSERT( !strcmp(names[0], "laurie") ); 65 CPPUNIT_ASSERT( !strcmp(names[1], "jennifer") ); 66 CPPUNIT_ASSERT( !strcmp(names[2], "amanda") ); 67 CPPUNIT_ASSERT( !strcmp(names[3], "saskia") ); 68 CPPUNIT_ASSERT( !strcmp(names[4], "carrie") ); 69 CPPUNIT_ASSERT( !strcmp(names[5], "leisa") ); 70} 71