diff --git a/lib/glacier/test/container/vector.cpp b/lib/glacier/test/container/vector.cpp index fc281d6..188a03b 100644 --- a/lib/glacier/test/container/vector.cpp +++ b/lib/glacier/test/container/vector.cpp @@ -116,3 +116,32 @@ TEST_CASE("Data-Type Construction", "[vector]") { REQUIRE(ConstructRecorder::move_cnt == 2); } } + +TEST_CASE("Vector Move", "[vector]") { + ConstructRecorder::Reset(); + + Vector v; + v.PushBack({}); + v.PushBack({}); + v.PushBack({}); + + uint64_t construct = ConstructRecorder::construct_cnt; + uint64_t copy = ConstructRecorder::copy_cnt; + uint64_t move = ConstructRecorder::move_cnt; + + Vector v2(glcr::Move(v)); + + REQUIRE(v2.size() == 3); + REQUIRE(v2.capacity() >= 3); + REQUIRE(ConstructRecorder::construct_cnt == construct); + REQUIRE(ConstructRecorder::copy_cnt == copy); + REQUIRE(ConstructRecorder::move_cnt == move); + + Vector v3 = glcr::Move(v2); + + REQUIRE(v3.size() == 3); + REQUIRE(v3.capacity() >= 3); + REQUIRE(ConstructRecorder::construct_cnt == construct); + REQUIRE(ConstructRecorder::copy_cnt == copy); + REQUIRE(ConstructRecorder::move_cnt == move); +}