177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <vector> 277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include <algorithm> 377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#include "cppunit/cppunit_proxy.h" 577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerusing namespace std; 877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// TestCase class 1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass BinsertTest : public CPPUNIT_NS::TestCase 1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST_SUITE(BinsertTest); 1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST(binsert1); 1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST(binsert2); 1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_TEST_SUITE_END(); 1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprotected: 2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void binsert1(); 2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void binsert2(); 2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' TurnerCPPUNIT_TEST_SUITE_REGISTRATION(BinsertTest); 2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// tests implementation 2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// 3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid BinsertTest::binsert1() 3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const char* array [] = { "laurie", "jennifer", "leisa" }; 3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<const char*> names; 3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner back_insert_iterator<vector<const char*> > bit(names); 3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner bit = copy(array, array + 3, bit); 3677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[0],array[0])); 3877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[1],array[1])); 3977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[2],array[2])); 4077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(array, array + 3, bit); 4277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[3],array[0])); 4377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[4],array[1])); 4477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[5],array[2])); 4577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 4677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervoid BinsertTest::binsert2() 4777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 4877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const char* array [] = { "laurie", "jennifer", "leisa" }; 4977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner vector<const char*> names; 5077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner copy(array, array + 3, back_inserter(names)); 5177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[0],array[0])); 5277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[1],array[1])); 5377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner CPPUNIT_ASSERT(!strcmp(names[2],array[2])); 5477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner} 55