From b68fc957410d6bad3a94989ff73ed812e2bcd41b Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Tue, 2 Apr 2013 02:36:55 +0000 Subject: [PATCH] rtree test: added test of parameters after copy/move/swap [SVN r83707] --- test/index/rtree/test_rtree.hpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/test/index/rtree/test_rtree.hpp b/test/index/rtree/test_rtree.hpp index 4dcf8fe31..c5d41bf1f 100644 --- a/test/index/rtree/test_rtree.hpp +++ b/test/index/rtree/test_rtree.hpp @@ -923,8 +923,10 @@ template void test_copy_assignment_swap_move(Rtree const& tree, Box const& qbox) { typedef typename Rtree::value_type Value; + typedef typename Rtree::parameters_type Params; size_t s = tree.size(); + Params params = tree.parameters(); std::vector expected_output; tree.query(bgi::intersects(qbox), std::back_inserter(expected_output)); @@ -934,6 +936,8 @@ void test_copy_assignment_swap_move(Rtree const& tree, Box const& qbox) BOOST_CHECK(tree.empty() == t1.empty()); BOOST_CHECK(tree.size() == t1.size()); + BOOST_CHECK(t1.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t1.parameters().get_min_elements() == params.get_min_elements()); std::vector output; t1.query(bgi::intersects(qbox), std::back_inserter(output)); @@ -944,17 +948,24 @@ void test_copy_assignment_swap_move(Rtree const& tree, Box const& qbox) BOOST_CHECK(tree.empty() == t1.empty()); BOOST_CHECK(tree.size() == t1.size()); + BOOST_CHECK(t1.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t1.parameters().get_min_elements() == params.get_min_elements()); output.clear(); t1.query(bgi::intersects(qbox), std::back_inserter(output)); test_exactly_the_same_outputs(t1, output, expected_output); - + Rtree t2(tree.parameters(), tree.indexable_get(), tree.value_eq(), tree.get_allocator()); t2.swap(t1); BOOST_CHECK(tree.empty() == t2.empty()); BOOST_CHECK(tree.size() == t2.size()); BOOST_CHECK(true == t1.empty()); BOOST_CHECK(0 == t1.size()); + // those fails e.g. on darwin 4.2.1 because it can't copy base obejcts properly + BOOST_CHECK(t1.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t1.parameters().get_min_elements() == params.get_min_elements()); + BOOST_CHECK(t2.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t2.parameters().get_min_elements() == params.get_min_elements()); output.clear(); t1.query(bgi::intersects(qbox), std::back_inserter(output)); @@ -964,12 +975,19 @@ void test_copy_assignment_swap_move(Rtree const& tree, Box const& qbox) t2.query(bgi::intersects(qbox), std::back_inserter(output)); test_exactly_the_same_outputs(t2, output, expected_output); t2.swap(t1); + // those fails e.g. on darwin 4.2.1 because it can't copy base obejcts properly + BOOST_CHECK(t1.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t1.parameters().get_min_elements() == params.get_min_elements()); + BOOST_CHECK(t2.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t2.parameters().get_min_elements() == params.get_min_elements()); // moving constructor Rtree t3(boost::move(t1), tree.get_allocator()); BOOST_CHECK(t3.size() == s); BOOST_CHECK(t1.size() == 0); + BOOST_CHECK(t3.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t3.parameters().get_min_elements() == params.get_min_elements()); output.clear(); t3.query(bgi::intersects(qbox), std::back_inserter(output)); @@ -980,6 +998,8 @@ void test_copy_assignment_swap_move(Rtree const& tree, Box const& qbox) BOOST_CHECK(t1.size() == s); BOOST_CHECK(t3.size() == 0); + BOOST_CHECK(t1.parameters().get_max_elements() == params.get_max_elements()); + BOOST_CHECK(t1.parameters().get_min_elements() == params.get_min_elements()); output.clear(); t1.query(bgi::intersects(qbox), std::back_inserter(output));