21 #define BOOST_TEST_MODULE libjmmcg_tests
22 #include <boost/test/included/unit_test.hpp>
24 #include "core/bogo_sort.hpp"
29 using namespace libjmmcg;
33 BOOST_AUTO_TEST_SUITE(bogo_sort_tests)
35 BOOST_AUTO_TEST_CASE(empty)
38 BOOST_CHECK_NO_THROW(bogo_sort(c.begin(), c.end(), std::less<colln_t::value_type>()));
41 BOOST_AUTO_TEST_CASE(sort_one)
45 BOOST_CHECK_NO_THROW(bogo_sort(c.begin(), c.end(), std::less<colln_t::value_type>()));
46 BOOST_CHECK(c==c_cpy);
49 BOOST_AUTO_TEST_CASE(sort_two_sorted)
53 BOOST_CHECK_NO_THROW(bogo_sort(c.begin(), c.end(), std::less<colln_t::value_type>()));
54 BOOST_CHECK(c==c_cpy);
57 BOOST_AUTO_TEST_CASE(sort_two_reversed)
61 std::sort(c_cpy.begin(), c_cpy.end());
62 BOOST_CHECK_NO_THROW(bogo_sort(c.begin(), c.end(), std::less<colln_t::value_type>()));
63 BOOST_CHECK(c==c_cpy);
66 BOOST_AUTO_TEST_CASE(sort_same)
70 BOOST_CHECK_NO_THROW(bogo_sort(c.begin(), c.end(), std::less<colln_t::value_type>()));
71 BOOST_CHECK(c==c_cpy);
74 BOOST_AUTO_TEST_CASE(sort_sorted)
78 BOOST_CHECK_NO_THROW(bogo_sort(c.begin(), c.end(), std::less<colln_t::value_type>()));
79 BOOST_CHECK(c==c_cpy);
82 BOOST_AUTO_TEST_CASE(sort_reversed)
86 std::sort(c_cpy.begin(), c_cpy.end());
87 BOOST_CHECK_NO_THROW(bogo_sort(c.begin(), c.end(), std::less<colln_t::value_type>()));
88 BOOST_CHECK(c==c_cpy);
91 BOOST_AUTO_TEST_SUITE_END()