summaryrefslogtreecommitdiff
path: root/asl/tests
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2025-01-02 19:37:41 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2025-01-02 19:46:23 +0100
commita9f254dcea5cc73112ba4df96ceaf48a33fae216 (patch)
treed735d931cc99a47123118b7ceed326331f326055 /asl/tests
parent12b864491fe9750e9fbe09e354374bb441941761 (diff)
Implement copy move & assign for buffer
Diffstat (limited to 'asl/tests')
-rw-r--r--asl/tests/buffer_tests.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/asl/tests/buffer_tests.cpp b/asl/tests/buffer_tests.cpp
index 1a08554..ad26c96 100644
--- a/asl/tests/buffer_tests.cpp
+++ b/asl/tests/buffer_tests.cpp
@@ -469,3 +469,64 @@ ASL_TEST(move_assign_from_inline_incompatible_allocator)
ASL_TEST_EXPECT(d[4] == true);
ASL_TEST_EXPECT(d[5] == true);
}
+
+ASL_TEST(copy_construct_inline)
+{
+ asl::buffer<int> buf;
+ buf.push(0);
+ buf.push(1);
+ buf.push(2);
+
+ asl::buffer<int> buf2{buf};
+
+ ASL_TEST_EXPECT(buf.size() == buf2.size());
+ ASL_TEST_EXPECT(buf.size() == 3);
+ ASL_TEST_EXPECT(buf[0] == 0);
+ ASL_TEST_EXPECT(buf[1] == 1);
+ ASL_TEST_EXPECT(buf[2] == 2);
+ ASL_TEST_EXPECT(buf2[0] == 0);
+ ASL_TEST_EXPECT(buf2[1] == 1);
+ ASL_TEST_EXPECT(buf2[2] == 2);
+}
+
+ASL_TEST(copy_assign_into_smaller)
+{
+ asl::buffer<int> buf;
+ buf.push(0);
+ buf.push(1);
+ buf.push(2);
+
+ asl::buffer<int> buf2;
+ buf2.push(4);
+
+ buf2 = buf;
+
+ ASL_TEST_EXPECT(buf.size() == 3);
+ ASL_TEST_EXPECT(buf2.size() == 3);
+
+ ASL_TEST_EXPECT(buf[0] == 0);
+ ASL_TEST_EXPECT(buf[1] == 1);
+ ASL_TEST_EXPECT(buf[2] == 2);
+ ASL_TEST_EXPECT(buf2[0] == 0);
+ ASL_TEST_EXPECT(buf2[1] == 1);
+ ASL_TEST_EXPECT(buf2[2] == 2);
+}
+
+ASL_TEST(copy_assign_into_larger)
+{
+ asl::buffer<int> buf;
+ buf.push(0);
+ buf.push(1);
+ buf.push(2);
+
+ asl::buffer<int> buf2;
+ buf2.push(4);
+
+ buf = buf2;
+
+ ASL_TEST_EXPECT(buf.size() == 1);
+ ASL_TEST_EXPECT(buf2.size() == 1);
+
+ ASL_TEST_EXPECT(buf[0] == 4);
+ ASL_TEST_EXPECT(buf2[0] == 4);
+}