diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-09-05 01:35:41 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-12-17 15:36:04 +0000 |
commit | 5e77f3594f3abaf27c10a5b114b6dca2dc2bd3bd (patch) | |
tree | 63ef4d1bd53d8d2d6d73efe0bfde14031ba05c7f /icespider/unittests/testFlatMap.cpp | |
parent | Add missing optional includes (diff) | |
download | icespider-5e77f3594f3abaf27c10a5b114b6dca2dc2bd3bd.tar.bz2 icespider-5e77f3594f3abaf27c10a5b114b6dca2dc2bd3bd.tar.xz icespider-5e77f3594f3abaf27c10a5b114b6dca2dc2bd3bd.zip |
Introduce lightweight flatmap
Diffstat (limited to 'icespider/unittests/testFlatMap.cpp')
-rw-r--r-- | icespider/unittests/testFlatMap.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/icespider/unittests/testFlatMap.cpp b/icespider/unittests/testFlatMap.cpp new file mode 100644 index 0000000..12d6900 --- /dev/null +++ b/icespider/unittests/testFlatMap.cpp @@ -0,0 +1,55 @@ +#define BOOST_TEST_MODULE FlatMap +#include <boost/test/unit_test.hpp> + +#include <flatMap.h> + +using TM = IceSpider::flatmap<std::string_view, int>; + +BOOST_TEST_DONT_PRINT_LOG_VALUE(TM::iterator) +BOOST_TEST_DONT_PRINT_LOG_VALUE(TM::const_iterator) + +BOOST_FIXTURE_TEST_SUITE(sv2int, TM) + +BOOST_AUTO_TEST_CASE(is_empty) +{ + BOOST_CHECK_EQUAL(size(), 0); + BOOST_CHECK(empty()); + + BOOST_CHECK_EQUAL(find(""), end()); +} + +BOOST_AUTO_TEST_CASE(single) +{ + insert({"a", 1}); + + BOOST_CHECK_EQUAL(size(), 1); + BOOST_CHECK(!empty()); + BOOST_CHECK_EQUAL(begin()->first, "a"); + BOOST_CHECK_EQUAL(begin()->second, 1); + BOOST_CHECK_EQUAL(find("a"), begin()); + BOOST_CHECK_EQUAL(find("b"), end()); +} + +BOOST_AUTO_TEST_CASE(several) +{ + insert({"c", 3}); + BOOST_CHECK_EQUAL(lower_bound("a"), begin()); + + insert({"a", 1}); + BOOST_CHECK_EQUAL(begin()->first, "a"); + + insert({"f", 6}); + + BOOST_CHECK_EQUAL(size(), 3); + BOOST_CHECK(!empty()); + BOOST_CHECK_EQUAL(begin()->first, "a"); + BOOST_CHECK_EQUAL(begin()->second, 1); + BOOST_CHECK_EQUAL(find("a"), begin()); + BOOST_CHECK_EQUAL(find("b"), end()); + BOOST_CHECK_NE(find("c"), end()); + BOOST_CHECK_EQUAL(find("c")->second, 3); + BOOST_CHECK_NE(find("f"), end()); + BOOST_CHECK_EQUAL(find("f")->second, 6); +} + +BOOST_AUTO_TEST_SUITE_END() |