2 #define Array flower_vector
4 #include "std-vector.hh"
10 #include <boost/test/auto_unit_test.hpp>
11 #include <boost/test/floating_point_comparison.hpp>
13 using boost::unit_test::test_suite;
16 #define vector flower_vector
23 for (vsize i = 0; i < v.size (); i++)
24 cout << "v[" << i << "] = " << v[i] << endl;
30 print (Link_array<T> v)
32 for (vsize i = 0; i < v.size (); i++)
33 cout << "v[" << i << "] = " << *v[i] << endl;
38 BOOST_AUTO_UNIT_TEST (vector_erase)
43 BOOST_CHECK_EQUAL (v.size (), vsize (2));
44 v.erase (v.begin () + 1);
45 BOOST_CHECK_EQUAL (v.size (), vsize (1));
46 BOOST_CHECK_EQUAL (v.back (), 0);
49 BOOST_CHECK_EQUAL (v.size (), vsize (2));
50 v.erase (v.begin () + 0);
51 BOOST_CHECK_EQUAL (v.size (), vsize (1));
52 BOOST_CHECK_EQUAL (v.back (), 1);
55 BOOST_AUTO_UNIT_TEST (vector_slice)
63 BOOST_CHECK_EQUAL (v.slice (0, 0).size (), vsize (0));
64 BOOST_CHECK_EQUAL (v.slice (0, v.size ()).size (), v.size ());
65 BOOST_CHECK_EQUAL (v.slice (1, 2).size (), vsize (1));
67 BOOST_CHECK_EQUAL (vector<int> (v.begin (), v.begin ()).size (), vsize (0));
68 BOOST_CHECK_EQUAL (vector<int> (v.begin (), v.end ()).size (), v.size ());
69 BOOST_CHECK_EQUAL (vector<int> (v.begin () + 1, v.begin () + 2).size (),
74 BOOST_AUTO_UNIT_TEST (vector_sorting)
81 v.sort (default_compare);
83 vector_sort (v, default_compare);
85 BOOST_CHECK_EQUAL (v[0], 0);
86 BOOST_CHECK_EQUAL (v[1], 1);
87 BOOST_CHECK_EQUAL (v[2], 2);
90 BOOST_AUTO_UNIT_TEST (vector_insert)
97 v.insert (v.begin (), 1);
99 BOOST_CHECK_EQUAL (v[0], 1);
101 v.insert (2, v.size ());
103 v.insert (v.end (), 2);
105 BOOST_CHECK_EQUAL (v.back (), 2);
107 u.insert (u.begin (), v.begin (), v.end ());
108 BOOST_CHECK_EQUAL (u.size (), v.size ());
110 u.insert (u.end (), v.begin (), v.end ());
111 BOOST_CHECK_EQUAL (u.size (), v.size ());
115 BOOST_AUTO_UNIT_TEST (parray_concat)
118 Link_array<int> u, v;
122 int a[5] = { 0, 1, 2, 3, 4 };
129 BOOST_CHECK_EQUAL (u[0], &a[0]);
130 BOOST_CHECK_EQUAL (u[1], &a[1]);
131 BOOST_CHECK_EQUAL (u[2], &a[2]);
132 BOOST_CHECK_EQUAL (u[3], &a[3]);
133 BOOST_CHECK_EQUAL (u[4], &a[4]);
134 BOOST_CHECK_EQUAL (u.size (), vsize (5));
136 BOOST_CHECK_EQUAL (u.size (), vsize (7));
146 BOOST_CHECK_EQUAL (u[0], &a[0]);
147 BOOST_CHECK_EQUAL (u[1], &a[1]);
148 BOOST_CHECK_EQUAL (u[2], &a[2]);
149 BOOST_CHECK_EQUAL (u[3], &a[3]);
150 BOOST_CHECK_EQUAL (u[4], &a[4]);
151 BOOST_CHECK_EQUAL (u.size (), vsize (5));
155 init_unit_test_suite (int, char**)
157 test_suite *test = BOOST_TEST_SUITE("std::Flower");
158 test->add (BOOST_TEST_CASE (vector_erase));
159 test->add (BOOST_TEST_CASE (vector_slice));
160 test->add (BOOST_TEST_CASE (vector_sorting));
161 test->add (BOOST_TEST_CASE (vector_insert));
162 test->add (BOOST_TEST_CASE (parray_concat));