libmoost
|
00001 /* vim:set ts=3 sw=3 sts=3 et: */ 00028 #include <boost/test/unit_test.hpp> 00029 #include <boost/test/test_tools.hpp> 00030 00031 #include <functional> 00032 #include <vector> 00033 00034 #include "../../include/moost/algorithm/inplace_set_intersection.hpp" 00035 00036 using namespace moost::algorithm; 00037 00038 BOOST_AUTO_TEST_SUITE( inplace_set_intersection_test ) 00039 00040 BOOST_AUTO_TEST_CASE( test_set_intersection ) 00041 { 00042 std::vector<int> foo; 00043 foo.push_back(2); foo.push_back(3); foo.push_back(5); foo.push_back(6); 00044 foo.push_back(1); foo.push_back(3); foo.push_back(4); foo.push_back(5); 00045 00046 std::vector<int>::iterator it_end = inplace_set_intersection(foo.begin(), foo.begin() + 4, foo.begin() + 4, foo.end()); 00047 00048 BOOST_REQUIRE(it_end == foo.begin() + 2); 00049 BOOST_REQUIRE_EQUAL(foo[0], 3); 00050 BOOST_REQUIRE_EQUAL(foo[1], 5); 00051 } 00052 00053 BOOST_AUTO_TEST_CASE( test_set_intersection_comp ) 00054 { 00055 std::vector<int> foo; 00056 foo.push_back(6); foo.push_back(5); foo.push_back(3); foo.push_back(2); 00057 foo.push_back(5); foo.push_back(4); foo.push_back(3); foo.push_back(1); 00058 00059 std::vector<int>::iterator it_end = inplace_set_intersection(foo.begin(), foo.begin() + 4, 00060 foo.begin() + 4, foo.end(), 00061 std::greater<int>()); 00062 00063 BOOST_REQUIRE(it_end == foo.begin() + 2); 00064 BOOST_REQUIRE_EQUAL(foo[0], 5); 00065 BOOST_REQUIRE_EQUAL(foo[1], 3); 00066 } 00067 00068 BOOST_AUTO_TEST_SUITE_END()