Add erase_if testing for vector and list

This commit is contained in:
Ion Gaztañaga
2025-11-01 10:05:50 +01:00
parent 6911e6adce
commit a9f301bbb1
2 changed files with 21 additions and 2 deletions

View File

@@ -13,6 +13,7 @@
#include <boost/container/detail/config_begin.hpp> #include <boost/container/detail/config_begin.hpp>
#include <boost/container/detail/iterator.hpp> #include <boost/container/detail/iterator.hpp>
#include <boost/container/detail/compare_functors.hpp>
#include "check_equal_containers.hpp" #include "check_equal_containers.hpp"
#include "print_container.hpp" #include "print_container.hpp"
#include "input_from_forward_iterator.hpp" #include "input_from_forward_iterator.hpp"
@@ -102,13 +103,22 @@ bool list_copyable_only(V1 &boostlist, V2 &stdlist, boost::container::dtl::true_
stdlist.insert(stdlist.end(), aux_vect2, aux_vect2 + 50); stdlist.insert(stdlist.end(), aux_vect2, aux_vect2 + 50);
if(!test::CheckEqualContainers(boostlist, stdlist)) return false; if(!test::CheckEqualContainers(boostlist, stdlist)) return false;
//erase
if (1 != erase(boostlist, 25)) if (1 != erase(boostlist, 25))
return 1; return 1;
if (0 != erase(boostlist, 25))
return 1;
stdlist.erase(boost::container::find(stdlist.begin(), stdlist.end(), 25)); stdlist.erase(boost::container::find(stdlist.begin(), stdlist.end(), 25));
if(!test::CheckEqualContainers(boostlist, stdlist)) return false; if(!test::CheckEqualContainers(boostlist, stdlist)) return false;
if (0 != erase(boostlist, 25)) //erase_if
if (1 != erase_if(boostlist, equal_to_value<int>(24)))
return 1; return 1;
if (0 != erase_if(boostlist, equal_to_value<int>(24)))
return 1;
stdlist.erase(boost::container::find(stdlist.begin(), stdlist.end(), 24));
if(!test::CheckEqualContainers(boostlist, stdlist)) return false;
} }
{ //List(const List &, alloc) { //List(const List &, alloc)
::boost::movelib::unique_ptr<V1> const pv1 = ::boost::movelib::make_unique<V1>(boostlist, typename V1::allocator_type()); ::boost::movelib::unique_ptr<V1> const pv1 = ::boost::movelib::make_unique<V1>(boostlist, typename V1::allocator_type());

View File

@@ -20,6 +20,7 @@
#include <boost/move/utility_core.hpp> #include <boost/move/utility_core.hpp>
#include <boost/container/detail/mpl.hpp> #include <boost/container/detail/mpl.hpp>
#include <boost/container/detail/algorithm.hpp> #include <boost/container/detail/algorithm.hpp>
#include <boost/container/detail/compare_functors.hpp>
#include <boost/move/utility_core.hpp> #include <boost/move/utility_core.hpp>
#include <boost/move/iterator.hpp> #include <boost/move/iterator.hpp>
#include <boost/move/make_unique.hpp> #include <boost/move/make_unique.hpp>
@@ -577,13 +578,21 @@ int vector_move_assignable_only(boost::container::dtl::true_type)
,boost::make_move_iterator(aux_vect + 50)); ,boost::make_move_iterator(aux_vect + 50));
stdvector.insert(stdvector.end(), aux_vect2, aux_vect2 + 50); stdvector.insert(stdvector.end(), aux_vect2, aux_vect2 + 50);
//erase
if (1 != erase(boostvector, 25)) if (1 != erase(boostvector, 25))
return 1; return 1;
if (0 != erase(boostvector, 25))
return 1;
stdvector.erase(boost::container::find(stdvector.begin(), stdvector.end(), 25)); stdvector.erase(boost::container::find(stdvector.begin(), stdvector.end(), 25));
if(!test::CheckEqualContainers(boostvector, stdvector)) return false; if(!test::CheckEqualContainers(boostvector, stdvector)) return false;
if (0 != erase(boostvector, 25)) //erase_if
if (1 != erase_if(boostvector, equal_to_value<int>(24)))
return 1; return 1;
if (0 != erase_if(boostvector, equal_to_value<int>(24)))
return 1;
stdvector.erase(boost::container::find(stdvector.begin(), stdvector.end(), 24));
if(!test::CheckEqualContainers(boostvector, stdvector)) return false;
} }
return 0; return 0;
} }