Fixed lower and upper bound tests for std::less comparator

This commit is contained in:
John Wellbelove 2025-07-08 20:47:05 +01:00
parent 67dfd5c0dd
commit 9b3d8dc96e
2 changed files with 38 additions and 127 deletions

View File

@ -45,13 +45,13 @@ static const size_t MAX_SIZE = 10UL;
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN
using Data = etl::multiset<int, MAX_SIZE, std::greater<int>>;
using IData = etl::imultiset<int, std::greater<int>>;
using Compare_Data = std::multiset<int, std::greater<int>>;
using Data = etl::multiset<int, MAX_SIZE, std::greater<int>>;
using IData = etl::imultiset<int, std::greater<int>>;
using Compare_Data = std::multiset<int, std::greater<int>>;
#else
using Data = etl::multiset<int, MAX_SIZE, std::less<int>>;
using IData = etl::multiset<int, std::less<int>>;
using Compare_Data = std::multiset<int, std::less<int>>;
using Data = etl::multiset<int, MAX_SIZE, std::less<int>>;
using IData = etl::imultiset<int, std::less<int>>;
using Compare_Data = std::multiset<int, std::less<int>>;
#endif
using ItemM = TestDataM<int>;
@ -1151,30 +1151,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.lower_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.lower_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.lower_bound(99);
i_data = data.lower_bound(99);
CHECK(i_data != data.end());
if ((i_data != data.end()) && (i_compare != compare_data.end()))
{
CHECK(*i_compare == *i_data);
}
CHECK(i_data == data.begin());
#else
i_compare = compare_data.lower_bound(-1);
i_data = data.lower_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
i_compare = compare_data.lower_bound(99);
CHECK_EQUAL(compare_data.end(), i_compare);
CHECK(data.begin() == i_data);
i_data = data.lower_bound(99);
CHECK_EQUAL(data.end(), i_data);
CHECK(i_data == data.end());
#endif
}
@ -1213,30 +1200,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.lower_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.lower_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.lower_bound(99);
i_data = data.lower_bound(99);
CHECK(i_data != data.end());
if ((i_data != data.end()) && (i_compare != compare_data.end()))
{
CHECK(*i_compare == *i_data);
}
CHECK(i_data == data.begin());
#else
i_compare = compare_data.lower_bound(-1);
i_data = data.lower_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
i_compare = compare_data.lower_bound(99);
CHECK_EQUAL(compare_data.end(), i_compare);
CHECK(data.begin() == i_data);
i_data = data.lower_bound(99);
CHECK_EQUAL(data.end(), i_data);
CHECK(i_data == data.end());
#endif
}
@ -1275,30 +1249,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.upper_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.upper_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.upper_bound(99);
i_data = data.upper_bound(99);
CHECK(i_data != data.end());
if ((i_data != data.end()) && (i_compare != compare_data.end()))
{
CHECK(*i_compare == *i_data);
}
CHECK(i_data == data.begin());
#else
i_compare = compare_data.upper_bound(-1);
i_data = data.upper_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
i_compare = compare_data.upper_bound(99);
CHECK_EQUAL(compare_data.end(), i_compare);
CHECK(data.begin() == i_data);
i_data = data.upper_bound(99);
CHECK_EQUAL(data.end(), i_data);
CHECK(i_data == data.end());
#endif
}
@ -1337,30 +1298,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.upper_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.upper_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.upper_bound(99);
i_data = data.upper_bound(99);
CHECK(i_data != data.end());
if ((i_data != data.end()) && (i_compare != compare_data.end()))
{
CHECK(*i_compare == *i_data);
}
CHECK(i_data == data.begin());
#else
i_compare = compare_data.upper_bound(-1);
i_data = data.upper_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
i_compare = compare_data.upper_bound(99);
CHECK_EQUAL(compare_data.end(), i_compare);
CHECK(data.begin() == i_data);
i_data = data.upper_bound(99);
CHECK_EQUAL(data.end(), i_data);
CHECK(i_data == data.end());
#endif
}

View File

@ -1025,30 +1025,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.lower_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.lower_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.lower_bound(11);
i_data = data.lower_bound(11);
CHECK(i_data != data.end());
if ((i_data != data.end()) && (i_compare != compare_data.end()))
{
CHECK(*i_compare == *i_data);
}
i_data = data.lower_bound(99);
CHECK(i_data == data.begin());
#else
i_compare = compare_data.lower_bound(-1);
i_data = data.lower_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
CHECK(data.begin() == i_data);
i_compare = compare_data.lower_bound(11);
CHECK_EQUAL(compare_data.end(), i_compare);
i_data = data.lower_bound(11);
CHECK_EQUAL(data.end(), i_data);
i_data = data.lower_bound(99);
CHECK(i_data == data.end());
#endif
}
@ -1087,25 +1074,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.lower_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.lower_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.lower_bound(11);
i_data = data.lower_bound(11);
CHECK_EQUAL(*i_compare, *i_data);
i_data = data.lower_bound(99);
CHECK(i_data == data.begin());
#else
i_compare = compare_data.lower_bound(-1);
i_data = data.lower_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
CHECK(data.begin() == i_data);
i_compare = compare_data.lower_bound(11);
CHECK_EQUAL(compare_data.end(), i_compare);
i_data = data.lower_bound(11);
CHECK_EQUAL(data.end(), i_data);
i_data = data.lower_bound(99);
CHECK(i_data == data.end());
#endif
}
@ -1144,25 +1123,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.upper_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.upper_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.upper_bound(11);
i_data = data.upper_bound(11);
CHECK_EQUAL(*i_compare, *i_data);
i_data = data.upper_bound(99);
CHECK(i_data == data.begin());
#else
i_compare = compare_data.upper_bound(-1);
i_data = data.upper_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
CHECK(data.begin() == i_data);
i_compare = compare_data.upper_bound(11);
CHECK_EQUAL(compare_data.end(), i_compare);
i_data = data.upper_bound(11);
CHECK_EQUAL(data.end(), i_data);
i_data = data.upper_bound(99);
CHECK(i_data == data.end());
#endif
}
@ -1201,25 +1172,17 @@ namespace
CHECK_EQUAL(*i_compare, *i_data);
#ifdef TEST_GREATER_THAN
i_compare = compare_data.upper_bound(-1);
CHECK(compare_data.end() == i_compare);
i_data = data.upper_bound(-1);
CHECK(data.end() == i_data);
i_compare = compare_data.upper_bound(11);
i_data = data.upper_bound(11);
CHECK_EQUAL(*i_compare, *i_data);
i_data = data.upper_bound(99);
CHECK(i_data == data.begin());
#else
i_compare = compare_data.upper_bound(-1);
i_data = data.upper_bound(-1);
CHECK_EQUAL(*i_compare, *i_data);
CHECK(data.begin() == i_data);
i_compare = compare_data.upper_bound(11);
CHECK_EQUAL(compare_data.end(), i_compare);
i_data = data.upper_bound(11);
CHECK_EQUAL(data.end(), i_data);
i_data = data.upper_bound(99);
CHECK(i_data == data.end());
#endif
}