| | #include "util/joint_sort.hh" |
| |
|
| | #define BOOST_TEST_MODULE JointSortTest |
| | #include <boost/test/unit_test.hpp> |
| |
|
| | namespace util { namespace { |
| |
|
| | BOOST_AUTO_TEST_CASE(just_flip) { |
| | char keys[2]; |
| | int values[2]; |
| | keys[0] = 1; values[0] = 327; |
| | keys[1] = 0; values[1] = 87897; |
| | JointSort<char *, int *>(keys + 0, keys + 2, values + 0); |
| | BOOST_CHECK_EQUAL(0, keys[0]); |
| | BOOST_CHECK_EQUAL(87897, values[0]); |
| | BOOST_CHECK_EQUAL(1, keys[1]); |
| | BOOST_CHECK_EQUAL(327, values[1]); |
| | } |
| |
|
| | BOOST_AUTO_TEST_CASE(three) { |
| | char keys[3]; |
| | int values[3]; |
| | keys[0] = 1; values[0] = 327; |
| | keys[1] = 2; values[1] = 87897; |
| | keys[2] = 0; values[2] = 10; |
| | JointSort<char *, int *>(keys + 0, keys + 3, values + 0); |
| | BOOST_CHECK_EQUAL(0, keys[0]); |
| | BOOST_CHECK_EQUAL(1, keys[1]); |
| | BOOST_CHECK_EQUAL(2, keys[2]); |
| | } |
| |
|
| | BOOST_AUTO_TEST_CASE(char_int) { |
| | char keys[4]; |
| | int values[4]; |
| | keys[0] = 3; values[0] = 327; |
| | keys[1] = 1; values[1] = 87897; |
| | keys[2] = 2; values[2] = 10; |
| | keys[3] = 0; values[3] = 24347; |
| | JointSort<char *, int *>(keys + 0, keys + 4, values + 0); |
| | BOOST_CHECK_EQUAL(0, keys[0]); |
| | BOOST_CHECK_EQUAL(24347, values[0]); |
| | BOOST_CHECK_EQUAL(1, keys[1]); |
| | BOOST_CHECK_EQUAL(87897, values[1]); |
| | BOOST_CHECK_EQUAL(2, keys[2]); |
| | BOOST_CHECK_EQUAL(10, values[2]); |
| | BOOST_CHECK_EQUAL(3, keys[3]); |
| | BOOST_CHECK_EQUAL(327, values[3]); |
| | } |
| |
|
| | BOOST_AUTO_TEST_CASE(swap_proxy) { |
| | char keys[2] = {0, 1}; |
| | int values[2] = {2, 3}; |
| | detail::JointProxy<char *, int *> first(keys, values); |
| | detail::JointProxy<char *, int *> second(keys + 1, values + 1); |
| | swap(first, second); |
| | BOOST_CHECK_EQUAL(1, keys[0]); |
| | BOOST_CHECK_EQUAL(0, keys[1]); |
| | BOOST_CHECK_EQUAL(3, values[0]); |
| | BOOST_CHECK_EQUAL(2, values[1]); |
| | } |
| |
|
| | }} |
| |
|