From c8183d99a6af9c1256a177ef8a5fa4b11cefcd15 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 23 Aug 2024 22:13:34 +0100 Subject: [PATCH] Handle empty range insertion --- src/include/interval-map/interval-map.hh | 2 ++ tests/unit/unit_test.cc | 26 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/include/interval-map/interval-map.hh b/src/include/interval-map/interval-map.hh index ce1d9dd..8f806c3 100644 --- a/src/include/interval-map/interval-map.hh +++ b/src/include/interval-map/interval-map.hh @@ -9,6 +9,8 @@ public: interval_map(V const& init) : init_(init) {} void assign(K const& begin, K const& end, V const& val) { + if (!(begin < end)) + return; // TODO: implement } diff --git a/tests/unit/unit_test.cc b/tests/unit/unit_test.cc index 288c811..b2b990e 100644 --- a/tests/unit/unit_test.cc +++ b/tests/unit/unit_test.cc @@ -66,3 +66,29 @@ TEST(interval_map, minimal_interface) { ASSERT_EQ(map[Key(0)], Value(0)); map.assign(Key(0), Key(1), Value(1)); } + +TEST(interval_map, no_insertion) { + auto map = amby::interval_map{0}; + for (int i = std::numeric_limits::min(); + i <= std::numeric_limits::max(); ++i) { + ASSERT_EQ(map[i], 0); + } +} + +TEST(interval_map, insert_begin_equal_end) { + auto map = amby::interval_map{0}; + map.assign(0, 0, 1); + for (int i = std::numeric_limits::min(); + i <= std::numeric_limits::max(); ++i) { + ASSERT_EQ(map[i], 0); + } +} + +TEST(interval_map, insert_begin_bigger_than_end) { + auto map = amby::interval_map{0}; + map.assign(1, 0, 1); + for (int i = std::numeric_limits::min(); + i <= std::numeric_limits::max(); ++i) { + ASSERT_EQ(map[i], 0); + } +}