5ec6041a5bcb11bafe0b35eae265238308399ce9
[libi2ncommon] / test / test_containerfunc.cpp
1 /** @file
2  *
3  * tests for the module "containerfunc"
4  *
5  * (c) Copyright 2007-2008 by Intra2net AG
6  * 
7  * info@intra2net.com
8  */
9
10 //#define NOISEDEBUG
11
12 #include <string>
13 #include <vector>
14 #include <list>
15 #include <algorithm>
16
17 #define BOOST_TEST_DYN_LINK
18 #include <boost/test/unit_test.hpp>
19
20 #include <containerfunc.hpp>
21
22 using namespace I2n;
23
24 BOOST_AUTO_TEST_SUITE(TestContainerFunc)
25
26 BOOST_AUTO_TEST_CASE(FillStringVector)
27 {
28     std::vector< std::string > v;
29     BOOST_CHECK_EQUAL( true, v.empty() );
30
31     get_push_back_filler(v)("1")("2")("drei");
32
33     BOOST_CHECK_EQUAL( 3u, v.size() );
34     BOOST_CHECK_EQUAL( std::string("2"), v[1]);
35     BOOST_CHECK_EQUAL( std::string("drei"), v[2]);
36     BOOST_CHECK_EQUAL( std::string("1"), v[0]);
37
38     get_push_back_filler(v)("i3")("i4");
39
40     BOOST_CHECK_EQUAL( 5u, v.size() );
41     BOOST_CHECK_EQUAL( std::string("i4"), v[4]);
42     BOOST_CHECK_EQUAL( std::string("i3"), v[3]);
43 } // eo FillStringVector
44
45
46
47 BOOST_AUTO_TEST_CASE(RetrieveMapKeys)
48 {
49     std::map< int, std::string > map1;
50     std::list< int > key_list;
51     std::set< int > key_set;
52
53     {
54         MapFiller< int, std::string > fill(map1);
55         fill
56             (1, "one")
57             (2, "two")
58             (3, "three" )
59             (4, "many..." )
60         ;
61     }
62     BOOST_CHECK_EQUAL( 4u, map1.size() );
63
64     get_key_list(map1, key_list);
65     BOOST_CHECK_EQUAL( 4u, key_list.size() );
66     BOOST_CHECK( std::find(key_list.begin(), key_list.end(), 1) != key_list.end() );
67     BOOST_CHECK( std::find(key_list.begin(), key_list.end(), 2) != key_list.end() );
68     BOOST_CHECK( std::find(key_list.begin(), key_list.end(), 3) != key_list.end() );
69     BOOST_CHECK( std::find(key_list.begin(), key_list.end(), 4) != key_list.end() );
70
71     get_key_set(map1, key_set);
72     BOOST_CHECK_EQUAL( 4u, key_set.size() );
73     BOOST_CHECK( key_set.find(1) != key_set.end() );
74     BOOST_CHECK( key_set.find(2) != key_set.end() );
75     BOOST_CHECK( key_set.find(3) != key_set.end() );
76     BOOST_CHECK( key_set.find(4) != key_set.end() );
77 } // RetrieveMapKeys()
78
79 BOOST_AUTO_TEST_SUITE_END()