mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-30 19:37:14 +02:00
Unordered: Fix some errors in the equality tests.
[SVN r71363]
This commit is contained in:
@ -98,8 +98,8 @@ namespace boost { namespace unordered { namespace detail {
|
|||||||
{
|
{
|
||||||
value_type const& v = node::get_value(n1);
|
value_type const& v = node::get_value(n1);
|
||||||
if (find(start, n1, v)) continue;
|
if (find(start, n1, v)) continue;
|
||||||
std::size_t matches = count(n2, end2, v);
|
std::size_t matches = count_equal(n2, end2, v);
|
||||||
if (!matches or matches != 1 + count(n1->next_, end1, v))
|
if (!matches or matches != 1 + count_equal(n1->next_, end1, v))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ namespace boost { namespace unordered { namespace detail {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::size_t count(node_ptr n, node_ptr end, value_type const& v)
|
static std::size_t count_equal(node_ptr n, node_ptr end, value_type const& v)
|
||||||
{
|
{
|
||||||
std::size_t count = 0;
|
std::size_t count = 0;
|
||||||
for(;n != end; n = n->next_)
|
for(;n != end; n = n->next_)
|
||||||
|
@ -68,16 +68,17 @@ UNORDERED_AUTO_TEST(test0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
UNORDERED_AUTO_TEST(equality_tests) {
|
UNORDERED_AUTO_TEST(equality_tests) {
|
||||||
typedef std::pair<test::minimal::assignable const,
|
typedef std::pair<
|
||||||
|
test::minimal::copy_constructible_equality_comparable const,
|
||||||
test::minimal::copy_constructible> value_type;
|
test::minimal::copy_constructible> value_type;
|
||||||
|
|
||||||
boost::unordered_map<int, int> int_map;
|
boost::unordered_map<int, int> int_map;
|
||||||
|
|
||||||
boost::unordered_map<
|
boost::unordered_map<
|
||||||
test::minimal::assignable,
|
|
||||||
test::minimal::copy_constructible_equality_comparable,
|
test::minimal::copy_constructible_equality_comparable,
|
||||||
test::minimal::hash<test::minimal::assignable>,
|
test::minimal::copy_constructible_equality_comparable,
|
||||||
test::minimal::equal_to<test::minimal::assignable>,
|
test::minimal::hash<test::minimal::copy_constructible_equality_comparable>,
|
||||||
|
test::minimal::equal_to<test::minimal::copy_constructible_equality_comparable>,
|
||||||
test::minimal::allocator<value_type> > map;
|
test::minimal::allocator<value_type> > map;
|
||||||
|
|
||||||
equality_test(int_map);
|
equality_test(int_map);
|
||||||
@ -86,10 +87,10 @@ UNORDERED_AUTO_TEST(equality_tests) {
|
|||||||
boost::unordered_multimap<int, int> int_multimap;
|
boost::unordered_multimap<int, int> int_multimap;
|
||||||
|
|
||||||
boost::unordered_multimap<
|
boost::unordered_multimap<
|
||||||
test::minimal::assignable,
|
|
||||||
test::minimal::copy_constructible_equality_comparable,
|
test::minimal::copy_constructible_equality_comparable,
|
||||||
test::minimal::hash<test::minimal::assignable>,
|
test::minimal::copy_constructible_equality_comparable,
|
||||||
test::minimal::equal_to<test::minimal::assignable>,
|
test::minimal::hash<test::minimal::copy_constructible_equality_comparable>,
|
||||||
|
test::minimal::equal_to<test::minimal::copy_constructible_equality_comparable>,
|
||||||
test::minimal::allocator<value_type> > multimap;
|
test::minimal::allocator<value_type> > multimap;
|
||||||
|
|
||||||
equality_test(int_multimap);
|
equality_test(int_multimap);
|
||||||
|
@ -56,14 +56,14 @@ UNORDERED_AUTO_TEST(test0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
UNORDERED_AUTO_TEST(equality_tests) {
|
UNORDERED_AUTO_TEST(equality_tests) {
|
||||||
typedef test::minimal::assignable value_type;
|
typedef test::minimal::copy_constructible_equality_comparable value_type;
|
||||||
|
|
||||||
boost::unordered_set<int> int_set;
|
boost::unordered_set<int> int_set;
|
||||||
|
|
||||||
boost::unordered_set<
|
boost::unordered_set<
|
||||||
test::minimal::assignable,
|
test::minimal::copy_constructible_equality_comparable,
|
||||||
test::minimal::hash<test::minimal::assignable>,
|
test::minimal::hash<test::minimal::copy_constructible_equality_comparable>,
|
||||||
test::minimal::equal_to<test::minimal::assignable>,
|
test::minimal::equal_to<test::minimal::copy_constructible_equality_comparable>,
|
||||||
test::minimal::allocator<value_type> > set;
|
test::minimal::allocator<value_type> > set;
|
||||||
|
|
||||||
equality_test(int_set);
|
equality_test(int_set);
|
||||||
@ -72,9 +72,9 @@ UNORDERED_AUTO_TEST(equality_tests) {
|
|||||||
boost::unordered_multiset<int> int_multiset;
|
boost::unordered_multiset<int> int_multiset;
|
||||||
|
|
||||||
boost::unordered_multiset<
|
boost::unordered_multiset<
|
||||||
test::minimal::assignable,
|
test::minimal::copy_constructible_equality_comparable,
|
||||||
test::minimal::hash<test::minimal::assignable>,
|
test::minimal::hash<test::minimal::copy_constructible_equality_comparable>,
|
||||||
test::minimal::equal_to<test::minimal::assignable>,
|
test::minimal::equal_to<test::minimal::copy_constructible_equality_comparable>,
|
||||||
test::minimal::allocator<value_type> > multiset;
|
test::minimal::allocator<value_type> > multiset;
|
||||||
|
|
||||||
equality_test(int_multiset);
|
equality_test(int_multiset);
|
||||||
|
Reference in New Issue
Block a user