X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Ftest-std.cc;h=ed317f7f631a13c4850ed307118a859bb2d7c276;hb=523fe57eb6be805b4184ff6b59ff5c85cd30351d;hp=729073f8c69a08b7d05611c827ae4b5550212cdd;hpb=767e42120b317f7ab2ca3e7a079bc4c2a0f7a776;p=lilypond.git diff --git a/flower/test-std.cc b/flower/test-std.cc index 729073f8c6..ed317f7f63 100644 --- a/flower/test-std.cc +++ b/flower/test-std.cc @@ -1,6 +1,10 @@ +#define STD_VECTOR 1 + #if !STD_VECTOR #define Array flower_vector #endif + +#define HAVE_BOOST_LAMBDA 1 #include "std-vector.hh" #include @@ -8,12 +12,14 @@ #include #include -using boost::unit_test::test_suite; - #if !STD_VECTOR #define vector flower_vector #endif +using namespace std; +using boost::unit_test::test_suite; +using namespace boost::unit_test; + template void print (vector v) @@ -23,6 +29,17 @@ print (vector v) cout << endl; } +#if !STD_VECTOR +template +void +print (Link_array v) +{ + for (vsize i = 0; i < v.size (); i++) + cout << "v[" << i << "] = " << *v[i] << endl; + cout << endl; +} +#endif + BOOST_AUTO_UNIT_TEST (vector_erase) { vector v; @@ -68,20 +85,156 @@ BOOST_AUTO_UNIT_TEST (vector_sorting) #if VECTOR_SORT v.sort (default_compare); #else - vector_sort (v, default_compare); + //sort (v.begin (), v.end ()); + vector_sort (v, less ()); #endif - print (v); BOOST_CHECK_EQUAL (v[0], 0); BOOST_CHECK_EQUAL (v[1], 1); BOOST_CHECK_EQUAL (v[2], 2); } +BOOST_AUTO_UNIT_TEST (vector_insert) +{ + vector v; + v.push_back (0); +#if VECTOR_INSERT + v.insert (1, 0); +#else + v.insert (v.begin (), 1); +#endif + BOOST_CHECK_EQUAL (v[0], 1); +#if VECTOR_INSERT + v.insert (2, v.size ()); +#else + v.insert (v.end (), 2); +#endif + BOOST_CHECK_EQUAL (v.back (), 2); + vector u; + u.insert (u.begin (), v.begin (), v.end ()); + BOOST_CHECK_EQUAL (u.size (), v.size ()); + u.clear (); + u.insert (u.end (), v.begin (), v.end ()); + BOOST_CHECK_EQUAL (u.size (), v.size ()); + u.clear (); +} + +BOOST_AUTO_UNIT_TEST (parray_concat) +{ +#if !STD_VECTOR + Link_array u, v; +#else + vector u, v; +#endif + 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); + BOOST_CHECK_EQUAL (u[0], &a[0]); + BOOST_CHECK_EQUAL (u[1], &a[1]); + BOOST_CHECK_EQUAL (u[2], &a[2]); + BOOST_CHECK_EQUAL (u[3], &a[3]); + BOOST_CHECK_EQUAL (u[4], &a[4]); + BOOST_CHECK_EQUAL (u.size (), vsize (5)); + concat (u, v); + BOOST_CHECK_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); + BOOST_CHECK_EQUAL (u[0], &a[0]); + BOOST_CHECK_EQUAL (u[1], &a[1]); + BOOST_CHECK_EQUAL (u[2], &a[2]); + BOOST_CHECK_EQUAL (u[3], &a[3]); + BOOST_CHECK_EQUAL (u[4], &a[4]); + BOOST_CHECK_EQUAL (u.size (), vsize (5)); +} + +BOOST_AUTO_UNIT_TEST (parray_uniq) +{ + vector v; + v.push_back (0); + v.push_back (1); + v.push_back (0); + vector_sort (v, less ()); + uniq (v); + BOOST_CHECK_EQUAL (v.size (), vsize (2)); +} + +BOOST_AUTO_UNIT_TEST (vector_search) +{ + vector v; + v.push_back (0); + v.push_back (1); + v.push_back (2); + vsize i = binary_search (v, 1, less ()); + BOOST_CHECK_EQUAL (i, vsize (1)); +} + +#if 0 +#include "file-name.hh" +string slashify (string file_name); + +BOOST_AUTO_UNIT_TEST (mingw_slashify) +{ + File_name f = string ("foe.ly"); + string s = slashify (f.to_string ()); + cout << s << endl; + BOOST_CHECK_EQUAL (s, "foe.ly"); + f = string ("/tmp/x.ly"); + s = slashify (f.to_string ()); + cout << s << endl; + BOOST_CHECK_EQUAL (s, "/tmp/x.ly"); + f = string ("c:/tmp/x.ly"); + s = slashify (f.to_string ()); + cout << s << endl; + BOOST_CHECK_EQUAL (s, "c:/tmp/x.ly"); + f = string ("\\tmp\\x.ly"); + s = slashify (f.to_string ()); + cout << s << endl; + BOOST_CHECK_EQUAL (s, "/tmp/x.ly"); +} +#endif + +void mingw_slashify (); +void file_find (); + +#include +#include +#include + test_suite* init_unit_test_suite (int, char**) { - test_suite *test = BOOST_TEST_SUITE("std::Flower"); + vsize i = 0; + vsize j = 0; + vector v; + binary_search (v, 1, less (), i, j); + //binary_search_bounds (v, 1, &default_compare, 0, 0); + + //Link_array w; + vector w; + binary_search (w, (char*)1, less (), i, j); + + test_suite *test = BOOST_TEST_SUITE("Flower"); + + test->add (BOOST_TEST_CASE (vector_erase)); test->add (BOOST_TEST_CASE (vector_slice)); test->add (BOOST_TEST_CASE (vector_sorting)); + test->add (BOOST_TEST_CASE (vector_insert)); + test->add (BOOST_TEST_CASE (parray_concat)); + test->add (BOOST_TEST_CASE (parray_uniq)); + test->add (BOOST_TEST_CASE (vector_search)); + test->add (BOOST_TEST_CASE (mingw_slashify)); + test->add (BOOST_TEST_CASE (file_find)); + return test; }