Add iterator tests

This commit is contained in:
Ion Gaztañaga
2015-04-14 15:03:19 +02:00
parent ad54608d78
commit d01cb72b3f
12 changed files with 217 additions and 12 deletions

View File

@@ -24,6 +24,7 @@
#include "container_common_tests.hpp"
#include <vector>
#include <boost/container/detail/flat_tree.hpp>
#include "../../intrusive/test/iterator_test.hpp"
using namespace boost::container;
@@ -272,6 +273,24 @@ bool flat_tree_ordered_insertion_test()
int_mset4.insert(int_even_mset.begin(), int_even_mset.end());
if(!CheckEqualContainers(int_mset4, fmset))
return false;
//Re-re-insertion using in-place merge
fmset.reserve(fmset.size() + int_mset2.size());
fmset.insert(ordered_range, int_mset2.begin(), int_mset2.end());
std::multiset<int> int_mset5(int_mset2);
int_mset4.insert(int_mset5.begin(), int_mset5.end());
if(!CheckEqualContainers(int_mset4, fmset))
return false;
//Re-re-insertion of even
std::multiset<int> int_even_mset2;
for(std::size_t i = 0; i < NumElements; i+=2){
int_even_mset2.insert(static_cast<int>(i));
}
fmset.reserve(fmset.size() + int_even_mset2.size());
fmset.insert(ordered_range, int_even_mset2.begin(), int_even_mset2.end());
int_mset4.insert(int_even_mset2.begin(), int_even_mset2.end());
if(!CheckEqualContainers(int_mset4, fmset))
return false;
}
//Ordered insertion set
@@ -605,6 +624,26 @@ int main()
if(!boost::container::test::test_propagate_allocator<boost_container_flat_multiset>())
return 1;
////////////////////////////////////
// Iterator testing
////////////////////////////////////
{
typedef boost::container::flat_set<int> cont_int;
cont_int a; a.insert(0); a.insert(1); a.insert(2);
boost::intrusive::test::test_iterator_random< cont_int >(a);
if(boost::report_errors() != 0) {
return 1;
}
}
{
typedef boost::container::flat_multiset<int> cont_int;
cont_int a; a.insert(0); a.insert(1); a.insert(2);
boost::intrusive::test::test_iterator_random< cont_int >(a);
if(boost::report_errors() != 0) {
return 1;
}
}
return 0;
}