diff options
Diffstat (limited to 'icespider/unittests')
-rw-r--r-- | icespider/unittests/Jamfile.jam | 5 | ||||
-rw-r--r-- | icespider/unittests/testFlatMap.cpp | 55 |
2 files changed, 60 insertions, 0 deletions
diff --git a/icespider/unittests/Jamfile.jam b/icespider/unittests/Jamfile.jam index 8dd497a..879d56a 100644 --- a/icespider/unittests/Jamfile.jam +++ b/icespider/unittests/Jamfile.jam @@ -149,3 +149,8 @@ lib test-api-lib : <include>. ; +run testFlatMap.cpp : : : + <library>boost_utf + <define>BOOST_TEST_DYN_LINK + <use>../core//icespider-core + ; 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() |