#include #include "Data/Containers/StableVector.hpp" using namespace OpenVulkano; //struct Test //{ // uint32_t mValue; // Test(uint32_t value) : mValue(value) {} // Test() : mValue(0) {} //}; // //static int incrementCounter = 0; //static int decrementCounter = 0; // //struct TestCount //{ // TestCount() : m_value("") { ++incrementCounter; } // TestCount(const std::string& val) : m_value(val) { ++incrementCounter; } // TestCount(TestCount&& other) noexcept : m_value(std::move(other.m_value)) { ++incrementCounter; } // TestCount(const TestCount& other) : m_value(other.m_value) { ++incrementCounter; } // // TestCount& operator=(const TestCount& other) // { // m_value = other.m_value; // return *this; // } // // TestCount& operator=(TestCount&& other) noexcept // { // m_value = std::move(other.m_value); // return *this; // } // // ~TestCount() { ++decrementCounter; } // // std::string m_value; //}; // //TEST_CASE("ChunkVector") //{ // SECTION("PushBack") // { // StableVector vec; // // REQUIRE(vec.Size() == 0); // REQUIRE(vec.Capacity() == 32); // // for (uint32_t i = 0; i < 100; ++i) // { // vec.PushBack(i); // } // // REQUIRE(vec.Size() == 100); // REQUIRE(vec.Capacity() == 224); // 32 + 64 + 128 = 3 | previous chunk size multiplied by 2 // } // // SECTION("EmplaceBack") // { // StableVector vec; // // REQUIRE(vec.Size() == 0); // REQUIRE(vec.Capacity() == 32); // // for (uint32_t i = 0; i < 100; ++i) // { // vec.EmplaceBack(i); // } // // REQUIRE(vec.Size() == 100); // // for (uint32_t i = 0; i < 100; ++i) // { // REQUIRE(vec[i].mValue == i); // } // } // // SECTION("PopBack") // { // StableVector vec; // // REQUIRE(vec.Size() == 0); // REQUIRE(vec.Capacity() == 32); // // for (uint32_t i = 0; i < 100; ++i) // { // vec.PushBack(i); // } // // REQUIRE(vec.Size() == 100); // // uint64_t tempVal = vec.Capacity(); // // for (uint32_t i = 0; i < 50; ++i) // { // vec.PopBack(); // } // // REQUIRE(vec.Size() == 50); // REQUIRE(vec.Capacity() == tempVal); // } // // SECTION("Clear") // { // StableVector vec; // // REQUIRE(vec.Size() == 0); // REQUIRE(vec.Capacity() == 32); // // for (uint32_t i = 0; i < 100; ++i) // { // vec.PushBack(i); // } // // REQUIRE(vec.Size() == 100); // // vec.Clear(); // // REQUIRE(vec.Size() == 0); // REQUIRE(vec.Capacity() == 32); // } // // SECTION("Add/Fill") // { // StableVector vec; // // REQUIRE(vec.Size() == 0); // REQUIRE(vec.Capacity() == 32); // // for (uint32_t i = 0; i < 100; ++i) // { // vec.PushBack("a"); // } // // REQUIRE(vec.Size() == 100); // // vec.Remove(56); // REQUIRE(vec[56] == "a"); // // vec.Add("z"); // // REQUIRE(vec.Size() == 100); // REQUIRE(vec[56] == "z"); // } // // SECTION("Correct Initialization") // { // StableVector vec; // // REQUIRE(incrementCounter == 0); // REQUIRE(decrementCounter == 0); // // vec.EmplaceBack("a"); // // REQUIRE(incrementCounter == 1); // REQUIRE(decrementCounter == 0); // // vec.PushBack(TestCount("b")); // // REQUIRE(incrementCounter == 3); // REQUIRE(decrementCounter == 1); // // TestCount testClass = TestCount("c"); // vec.PushBack(std::move(testClass)); // // REQUIRE(incrementCounter == 5); // REQUIRE(decrementCounter == 1); // // vec.Clear(); // // REQUIRE(incrementCounter == 5); // REQUIRE(decrementCounter == 4); // // vec.PushBack(TestCount("d")); // // REQUIRE(incrementCounter == 7); // REQUIRE(decrementCounter == 5); // // TestCount testClass2 = TestCount("e"); // vec.PushBack(testClass2); // // REQUIRE(incrementCounter == 9); // REQUIRE(decrementCounter == 5); // } // // SECTION("Out of scope check") // { // REQUIRE(incrementCounter == 9); // REQUIRE(decrementCounter == 9); // } //}