diff options
author | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-01-02 19:37:41 +0100 |
---|---|---|
committer | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-01-02 19:46:23 +0100 |
commit | a9f254dcea5cc73112ba4df96ceaf48a33fae216 (patch) | |
tree | d735d931cc99a47123118b7ceed326331f326055 /asl/tests | |
parent | 12b864491fe9750e9fbe09e354374bb441941761 (diff) |
Implement copy move & assign for buffer
Diffstat (limited to 'asl/tests')
-rw-r--r-- | asl/tests/buffer_tests.cpp | 61 |
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);
+}
|