| #include <vector> |
| #include <algorithm> |
| |
| #include "cppunit/cppunit_proxy.h" |
| |
| #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) |
| using namespace std; |
| #endif |
| |
| // |
| // TestCase class |
| // |
| class BinsertTest : public CPPUNIT_NS::TestCase |
| { |
| CPPUNIT_TEST_SUITE(BinsertTest); |
| CPPUNIT_TEST(binsert1); |
| CPPUNIT_TEST(binsert2); |
| CPPUNIT_TEST_SUITE_END(); |
| |
| protected: |
| void binsert1(); |
| void binsert2(); |
| }; |
| |
| CPPUNIT_TEST_SUITE_REGISTRATION(BinsertTest); |
| |
| // |
| // tests implementation |
| // |
| void BinsertTest::binsert1() |
| { |
| const char* array [] = { "laurie", "jennifer", "leisa" }; |
| vector<const char*> names; |
| back_insert_iterator<vector<const char*> > bit(names); |
| bit = copy(array, array + 3, bit); |
| |
| CPPUNIT_ASSERT(!strcmp(names[0],array[0])); |
| CPPUNIT_ASSERT(!strcmp(names[1],array[1])); |
| CPPUNIT_ASSERT(!strcmp(names[2],array[2])); |
| |
| copy(array, array + 3, bit); |
| CPPUNIT_ASSERT(!strcmp(names[3],array[0])); |
| CPPUNIT_ASSERT(!strcmp(names[4],array[1])); |
| CPPUNIT_ASSERT(!strcmp(names[5],array[2])); |
| } |
| void BinsertTest::binsert2() |
| { |
| const char* array [] = { "laurie", "jennifer", "leisa" }; |
| vector<const char*> names; |
| copy(array, array + 3, back_inserter(names)); |
| CPPUNIT_ASSERT(!strcmp(names[0],array[0])); |
| CPPUNIT_ASSERT(!strcmp(names[1],array[1])); |
| CPPUNIT_ASSERT(!strcmp(names[2],array[2])); |
| } |