finsert_test.cpp revision e46c9386c4f79aa40185f79a19fc5b2a7ef528b3
1#include <vector>
2#include <algorithm>
3#include <deque>
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 FinsertTest : public CPPUNIT_NS::TestCase
15{
16  CPPUNIT_TEST_SUITE(FinsertTest);
17  CPPUNIT_TEST(finsert1);
18  CPPUNIT_TEST(finsert2);
19  CPPUNIT_TEST_SUITE_END();
20
21protected:
22  void finsert1();
23  void finsert2();
24};
25
26CPPUNIT_TEST_SUITE_REGISTRATION(FinsertTest);
27
28//
29// tests implementation
30//
31void FinsertTest::finsert1()
32{
33  char const* array [] = { "laurie", "jennifer", "leisa" };
34  deque<char const*> names;
35  front_insert_iterator<deque<char const*> > fit(names);
36  fit = copy(array, array + 3, front_insert_iterator<deque <char const*> >(names));
37
38  CPPUNIT_ASSERT(names[0]==array[2]);
39  CPPUNIT_ASSERT(names[1]==array[1]);
40  CPPUNIT_ASSERT(names[2]==array[0]);
41
42  copy(array, array + 3, fit);
43  CPPUNIT_ASSERT(names[3]==array[2]);
44  CPPUNIT_ASSERT(names[4]==array[1]);
45  CPPUNIT_ASSERT(names[5]==array[0]);
46}
47
48void FinsertTest::finsert2()
49{
50  char const* array [] = { "laurie", "jennifer", "leisa" };
51
52  deque<char const*> names;
53  copy(array, array + 3, front_inserter(names));
54
55  CPPUNIT_ASSERT(names[0]==array[2]);
56  CPPUNIT_ASSERT(names[1]==array[1]);
57  CPPUNIT_ASSERT(names[2]==array[0]);
58}
59