4 #define Array flower_vector
6 #define HAVE_BOOST_LAMBDA 1
7 #include "std-vector.hh"
11 #include <boost/test/auto_unit_test.hpp>
12 #include <boost/test/floating_point_comparison.hpp>
14 using boost::unit_test::test_suite;
17 #define vector flower_vector
26 for (vsize i = 0; i < v.size (); i++)
27 cout << "v[" << i << "] = " << v[i] << endl;
34 print (Link_array<T> v)
36 for (vsize i = 0; i < v.size (); i++)
37 cout << "v[" << i << "] = " << *v[i] << endl;
42 BOOST_AUTO_UNIT_TEST (vector_erase)
47 BOOST_CHECK_EQUAL (v.size (), vsize (2));
48 v.erase (v.begin () + 1);
49 BOOST_CHECK_EQUAL (v.size (), vsize (1));
50 BOOST_CHECK_EQUAL (v.back (), 0);
53 BOOST_CHECK_EQUAL (v.size (), vsize (2));
54 v.erase (v.begin () + 0);
55 BOOST_CHECK_EQUAL (v.size (), vsize (1));
56 BOOST_CHECK_EQUAL (v.back (), 1);
59 BOOST_AUTO_UNIT_TEST (vector_slice)
67 BOOST_CHECK_EQUAL (v.slice (0, 0).size (), vsize (0));
68 BOOST_CHECK_EQUAL (v.slice (0, v.size ()).size (), v.size ());
69 BOOST_CHECK_EQUAL (v.slice (1, 2).size (), vsize (1));
71 BOOST_CHECK_EQUAL (vector<int> (v.begin (), v.begin ()).size (), vsize (0));
72 BOOST_CHECK_EQUAL (vector<int> (v.begin (), v.end ()).size (), v.size ());
73 BOOST_CHECK_EQUAL (vector<int> (v.begin () + 1, v.begin () + 2).size (),
78 BOOST_AUTO_UNIT_TEST (vector_sorting)
85 v.sort (default_compare);
87 vector_sort (v, default_compare);
89 BOOST_CHECK_EQUAL (v[0], 0);
90 BOOST_CHECK_EQUAL (v[1], 1);
91 BOOST_CHECK_EQUAL (v[2], 2);
94 BOOST_AUTO_UNIT_TEST (vector_insert)
101 v.insert (v.begin (), 1);
103 BOOST_CHECK_EQUAL (v[0], 1);
105 v.insert (2, v.size ());
107 v.insert (v.end (), 2);
109 BOOST_CHECK_EQUAL (v.back (), 2);
111 u.insert (u.begin (), v.begin (), v.end ());
112 BOOST_CHECK_EQUAL (u.size (), v.size ());
114 u.insert (u.end (), v.begin (), v.end ());
115 BOOST_CHECK_EQUAL (u.size (), v.size ());
119 BOOST_AUTO_UNIT_TEST (parray_concat)
122 Link_array<int> u, v;
126 int a[5] = { 0, 1, 2, 3, 4 };
133 BOOST_CHECK_EQUAL (u[0], &a[0]);
134 BOOST_CHECK_EQUAL (u[1], &a[1]);
135 BOOST_CHECK_EQUAL (u[2], &a[2]);
136 BOOST_CHECK_EQUAL (u[3], &a[3]);
137 BOOST_CHECK_EQUAL (u[4], &a[4]);
138 BOOST_CHECK_EQUAL (u.size (), vsize (5));
140 BOOST_CHECK_EQUAL (u.size (), vsize (7));
150 BOOST_CHECK_EQUAL (u[0], &a[0]);
151 BOOST_CHECK_EQUAL (u[1], &a[1]);
152 BOOST_CHECK_EQUAL (u[2], &a[2]);
153 BOOST_CHECK_EQUAL (u[3], &a[3]);
154 BOOST_CHECK_EQUAL (u[4], &a[4]);
155 BOOST_CHECK_EQUAL (u.size (), vsize (5));
158 BOOST_AUTO_UNIT_TEST (parray_uniq)
164 vector_sort (v, default_compare);
166 BOOST_CHECK_EQUAL (v.size (), vsize (2));
169 BOOST_AUTO_UNIT_TEST (vector_search)
175 vsize i = binary_search (v, 1, &default_compare);
176 BOOST_CHECK_EQUAL (i, vsize (1));
180 init_unit_test_suite (int, char**)
185 binary_search_bounds (v, 1, &default_compare, &i, &j);
186 //binary_search_bounds (v, 1, &default_compare, 0, 0);
188 //Link_array<char> w;
190 binary_search_bounds (w, (char*)1, &default_compare, &i, &j);
192 test_suite *test = BOOST_TEST_SUITE("Flower");
193 test->add (BOOST_TEST_CASE (vector_erase));
194 test->add (BOOST_TEST_CASE (vector_slice));
195 test->add (BOOST_TEST_CASE (vector_sorting));
196 test->add (BOOST_TEST_CASE (vector_insert));
197 test->add (BOOST_TEST_CASE (parray_concat));
198 test->add (BOOST_TEST_CASE (parray_uniq));
199 test->add (BOOST_TEST_CASE (vector_search));