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