diff options
Diffstat (limited to 'test/unit/testSplitVector.cxx')
-rw-r--r-- | test/unit/testSplitVector.cxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/test/unit/testSplitVector.cxx b/test/unit/testSplitVector.cxx index 3af51c45e..e01810d33 100644 --- a/test/unit/testSplitVector.cxx +++ b/test/unit/testSplitVector.cxx @@ -3,6 +3,7 @@ #include <cstring> #include <stdexcept> +#include <vector> #include <algorithm> #include <memory> @@ -280,11 +281,19 @@ TEST_CASE("SplitVector") { } SECTION("BufferPointer") { + // Low-level access to the data sv.InsertFromArray(0, testArray, 0, lengthTestArray); + sv.Insert(0, 99); // This moves the gap so that BufferPointer() must also move + REQUIRE(1 == sv.GapPosition()); + const int lengthAfterInsertion = 1 + lengthTestArray; + REQUIRE(lengthAfterInsertion == (sv.Length())); int *retrievePointer = sv.BufferPointer(); - for (int i=0; i<sv.Length(); i++) { - REQUIRE((i+3) == retrievePointer[i]); + for (int i=1; i<sv.Length(); i++) { + REQUIRE((i+3-1) == retrievePointer[i]); } + REQUIRE(lengthAfterInsertion == sv.Length()); + // Gap was moved to end. + REQUIRE(lengthAfterInsertion == sv.GapPosition()); } SECTION("DeleteBackAndForth") { |