From cb9fa588ba8144fcdd52ba4b83d69d93fb18066f Mon Sep 17 00:00:00 2001 From: Dominick Allen Date: Sun, 30 Mar 2025 23:08:43 -0500 Subject: Add hash map. --- test/test_vector.cpp | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'test/test_vector.cpp') diff --git a/test/test_vector.cpp b/test/test_vector.cpp index ba0272e..3f4e584 100644 --- a/test/test_vector.cpp +++ b/test/test_vector.cpp @@ -24,9 +24,14 @@ namespace fud { template struct TestLinearAllocator : public Allocator { - virtual ~TestLinearAllocator() override = default; - - virtual Result allocate(size_t bytes, size_t alignment = alignof(std::max_align_t)) override + TestLinearAllocator() = default; + TestLinearAllocator(const TestLinearAllocator&) = delete; + TestLinearAllocator(TestLinearAllocator&&) = delete; + TestLinearAllocator& operator=(const TestLinearAllocator&) = delete; + TestLinearAllocator& operator=(TestLinearAllocator&&) = delete; + ~TestLinearAllocator() override = default; + + Result allocate(size_t bytes, size_t alignment = alignof(std::max_align_t)) override { auto allocIndex = m_next; if (allocIndex % alignment != 0) { @@ -39,13 +44,13 @@ struct TestLinearAllocator : public Allocator { return Okay{m_backing.data() + allocIndex}; } - virtual void deallocate(std::byte* pointer, size_t bytes) override + void deallocate(std::byte* pointer, size_t bytes) override { static_cast(pointer); static_cast(bytes); } - virtual bool isEqual(const Allocator& rhs) const override { + [[nodiscard]] bool isEqual(const Allocator& rhs) const override { return &rhs == static_cast(this); } @@ -82,7 +87,7 @@ struct NonTrivial { counter++; } NonTrivial(const NonTrivial&) = delete; - NonTrivial(NonTrivial&& rhs) : value{rhs.value}, destroyed{rhs.destroyed} + NonTrivial(NonTrivial&& rhs) noexcept : value{rhs.value}, destroyed{rhs.destroyed} { rhs.destroyed = true; } @@ -94,7 +99,7 @@ struct NonTrivial { } } NonTrivial& operator=(const NonTrivial& rhs) = delete; - NonTrivial& operator=(NonTrivial&& rhs) + NonTrivial& operator=(NonTrivial&& rhs) noexcept { value = rhs.value; destroyed = rhs.destroyed; @@ -183,4 +188,17 @@ TEST(VectorTest, NestedVector) // Result>, FudStatus> } +TEST(VectorTest, WithElements) +{ + auto vectorResult{Vector::from(NullOpt, 1, 2, 3, 42, -100)}; + ASSERT_TRUE(vectorResult.isOkay()); + auto intVector{vectorResult.takeOkay()}; + ASSERT_EQ(intVector.size(), 5); + ASSERT_EQ(intVector[0], 1); + ASSERT_EQ(intVector[1], 2); + ASSERT_EQ(intVector[2], 3); + ASSERT_EQ(intVector[3], 42); + ASSERT_EQ(intVector[4], -100); +} + } // namespace fud -- cgit v1.2.3