summaryrefslogtreecommitdiff
path: root/test/test_vector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_vector.cpp')
-rw-r--r--test/test_vector.cpp32
1 files changed, 25 insertions, 7 deletions
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 <size_t Size>
struct TestLinearAllocator : public Allocator {
- virtual ~TestLinearAllocator() override = default;
-
- virtual Result<std::byte*, FudStatus> 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<std::byte*, FudStatus> 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<std::byte*>{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<void>(pointer);
static_cast<void>(bytes);
}
- virtual bool isEqual(const Allocator& rhs) const override {
+ [[nodiscard]] bool isEqual(const Allocator& rhs) const override {
return &rhs == static_cast<const Allocator*>(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<Vector<Vector<FallibleObject>>, FudStatus>
}
+TEST(VectorTest, WithElements)
+{
+ auto vectorResult{Vector<int>::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