X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Ftest-std.cc;h=4add05a625a863cbb581c4743ded5281e6fcdfa4;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=85e0a372fa040728c1555cf16d150f7010f3dec1;hpb=04b270fd7b1e63fb30c45f661a7492020526f0a9;p=lilypond.git diff --git a/flower/test-std.cc b/flower/test-std.cc index 85e0a372fa..4add05a625 100644 --- a/flower/test-std.cc +++ b/flower/test-std.cc @@ -1,14 +1,12 @@ -#if !STD_VECTOR -#define Array flower_vector -#endif +#define HAVE_BOOST_LAMBDA 1 #include "std-vector.hh" #include -#include -#include +#define YAFFUT_MAIN +#include "yaffut.hh" -using boost::unit_test::test_suite; +using namespace std; template void @@ -16,30 +14,139 @@ print (vector v) { for (vsize i = 0; i < v.size (); i++) cout << "v[" << i << "] = " << v[i] << endl; + cout << endl; } -BOOST_AUTO_UNIT_TEST (vector_erase) +FUNC (vector_erase) { vector v; v.push_back (0); v.push_back (1); - BOOST_CHECK_EQUAL (v.size (), 2u); + EQUAL (v.size (), vsize (2)); v.erase (v.begin () + 1); - BOOST_CHECK_EQUAL (v.size (), 1u); - BOOST_CHECK_EQUAL (v.back (), 0); + EQUAL (v.size (), vsize (1)); + EQUAL (v.back (), 0); v.push_back (1); - BOOST_CHECK_EQUAL (v.size (), 2u); + EQUAL (v.size (), vsize (2)); v.erase (v.begin () + 0); - BOOST_CHECK_EQUAL (v.size (), 1u); - BOOST_CHECK_EQUAL (v.back (), 1); + EQUAL (v.size (), vsize (1)); + EQUAL (v.back (), 1); } +FUNC (vector_slice) +{ + vector v; + v.push_back (0); + v.push_back (1); + v.push_back (2); + v.push_back (3); +#if VECTOR_SLICE + EQUAL (v.slice (0, 0).size (), vsize (0)); + EQUAL (v.slice (0, v.size ()).size (), v.size ()); + EQUAL (v.slice (1, 2).size (), vsize (1)); +#else + EQUAL (vector (v.begin (), v.begin ()).size (), vsize (0)); + EQUAL (vector (v.begin (), v.end ()).size (), v.size ()); + EQUAL (vector (v.begin () + 1, v.begin () + 2).size (), + vsize (1)); +#endif +} + +FUNC (vector_sorting) +{ + vector v; + v.push_back (2); + v.push_back (1); + v.push_back (0); +#if VECTOR_SORT + v.sort (default_compare); +#else + //sort (v.begin (), v.end ()); + vector_sort (v, less ()); +#endif + EQUAL (v[0], 0); + EQUAL (v[1], 1); + EQUAL (v[2], 2); +} -test_suite* -init_unit_test_suite (int, char**) +FUNC (vector_insert) { - test_suite *test = BOOST_TEST_SUITE("std::Flower"); - test->add (BOOST_TEST_CASE (vector_erase)); - return test; + vector v; + v.push_back (0); +#if VECTOR_INSERT + v.insert (1, 0); +#else + v.insert (v.begin (), 1); +#endif + EQUAL (v[0], 1); +#if VECTOR_INSERT + v.insert (2, v.size ()); +#else + v.insert (v.end (), 2); +#endif + EQUAL (v.back (), 2); + vector u; + u.insert (u.begin (), v.begin (), v.end ()); + EQUAL (u.size (), v.size ()); + u.clear (); + u.insert (u.end (), v.begin (), v.end ()); + EQUAL (u.size (), v.size ()); + u.clear (); +} + +FUNC (parray_concat) +{ + vector u, v; + int a[5] = { 0, 1, 2, 3, 4 }; + u.push_back (&a[0]); + u.push_back (&a[1]); + u.push_back (&a[2]); + v.push_back (&a[3]); + v.push_back (&a[4]); + concat (u, v); + EQUAL (u[0], &a[0]); + EQUAL (u[1], &a[1]); + EQUAL (u[2], &a[2]); + EQUAL (u[3], &a[3]); + EQUAL (u[4], &a[4]); + EQUAL (u.size (), vsize (5)); + concat (u, v); + EQUAL (u.size (), vsize (7)); + + u.clear (); + v.clear (); + v.push_back (&a[0]); + v.push_back (&a[1]); + v.push_back (&a[2]); + v.push_back (&a[3]); + v.push_back (&a[4]); + concat (u, v); + EQUAL (u[0], &a[0]); + EQUAL (u[1], &a[1]); + EQUAL (u[2], &a[2]); + EQUAL (u[3], &a[3]); + EQUAL (u[4], &a[4]); + EQUAL (u.size (), vsize (5)); +} + +FUNC (parray_uniq) +{ + vector v; + v.push_back (0); + v.push_back (1); + v.push_back (0); + vector_sort (v, less ()); + uniq (v); + EQUAL (v.size (), vsize (2)); +} + +FUNC (vector_search) +{ + vector v; + v.push_back (0); + v.push_back (1); + v.push_back (2); + vsize i = binary_search (v, 1, less ()); + EQUAL (i, vsize (1)); }