diff options
| -rw-r--r-- | libs/kstd/kstd/ring_buffer.tests.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libs/kstd/kstd/ring_buffer.tests.cpp b/libs/kstd/kstd/ring_buffer.tests.cpp index 2517ff7b..54120b99 100644 --- a/libs/kstd/kstd/ring_buffer.tests.cpp +++ b/libs/kstd/kstd/ring_buffer.tests.cpp @@ -2434,6 +2434,53 @@ SCENARIO("Ring Buffer zero capacity", "[kstd][ring_buffer]") } } + WHEN("constructing by input-iterator-pair constructor with an empty range") + { + auto first = kstd::tests::test_input_iterator{}; + auto last = kstd::tests::test_input_iterator{}; + auto buffer = kstd::ring_buffer<int, 0>{first, last}; + + THEN("the buffer is empty") + { + REQUIRE(buffer.empty()); + } + } + + WHEN("constructing by input-iterator-pair constructor with a range containing 1 element") + { + THEN("the constructor panics") + { + std::array<int, 1> source{1}; + auto first = kstd::tests::test_input_iterator{source.data(), source.size()}; + auto last = kstd::tests::test_input_iterator{}; + REQUIRE_THROWS_MATCHES( + (kstd::ring_buffer<int, 0>{first, last}), kstd::tests::os_panic, + Catch::Matchers::Message("[KSTD] Tried to construct a ring buffer with more elements than it can support.")); + } + } + + WHEN("constructing by forward-iterator-pair constructor with an empty range") + { + auto source = std::forward_list<int>{}; + auto buffer = kstd::ring_buffer<int, 0>{source.begin(), source.end()}; + + THEN("the buffer is empty") + { + REQUIRE(buffer.empty()); + } + } + + WHEN("constructing by forward-iterator-pair constructor with a range containing 1 element") + { + THEN("the constructor panics") + { + auto source = std::forward_list<int>{1}; + REQUIRE_THROWS_MATCHES( + (kstd::ring_buffer<int, 0>{source.begin(), source.end()}), kstd::tests::os_panic, + Catch::Matchers::Message("[KSTD] Tried to construct a ring buffer with more elements than it can support.")); + } + } + GIVEN("A zero-capacity buffer of static operation trackers") { auto buffer = kstd::ring_buffer<kstd::tests::static_copy_move_tracker, 0>{}; |
