From e5acc1eaa7e342b64ccfaaef5ea502cd623e41d5 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Thu, 23 Jan 2025 00:17:27 +0100 Subject: Add string_builder --- asl/tests/buffer_tests.cpp | 18 ++++++++++++++++++ asl/tests/string_builder_tests.cpp | 23 +++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 asl/tests/string_builder_tests.cpp (limited to 'asl/tests') diff --git a/asl/tests/buffer_tests.cpp b/asl/tests/buffer_tests.cpp index 20acad5..dfa0bcb 100644 --- a/asl/tests/buffer_tests.cpp +++ b/asl/tests/buffer_tests.cpp @@ -583,3 +583,21 @@ ASL_TEST(resize) ASL_TEST_EXPECT(buf[1] == 6); } +ASL_TEST(resize_zero) +{ + asl::buffer buf; + for (int i = 0; i < 100; ++i) + { + buf.push(i); + } + + buf.resize_zero(200); + ASL_TEST_ASSERT(buf.size() == 200); + + for (int i = 0; i < 100; ++i) + { + ASL_TEST_EXPECT(buf[i] == i); + ASL_TEST_EXPECT(buf[100 + i] == 0); + } +} + diff --git a/asl/tests/string_builder_tests.cpp b/asl/tests/string_builder_tests.cpp new file mode 100644 index 0000000..9bb25bd --- /dev/null +++ b/asl/tests/string_builder_tests.cpp @@ -0,0 +1,23 @@ +#include "asl/string_builder.hpp" +#include "asl/testing/testing.hpp" + +ASL_TEST(string_builder) +{ + asl::string_builder b; + b.push('a'); + b.push("bcdef"); + b.push('g'); + + ASL_TEST_EXPECT(b.as_string_view() == "abcdefg"); + + asl::string s = b.as_string(); + ASL_TEST_EXPECT(s == "abcdefg"); +} + +ASL_TEST(string_builder_rvalue) +{ + asl::string s = asl::string_builder{}.push('a').push("bcdef").push('g').finish(); + + ASL_TEST_EXPECT(s == "abcdefg"); +} + -- cgit