libmoost
/home/mhx/git/github/libmoost/test/algorithm/inplace_set_intersection.cpp
Go to the documentation of this file.
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()