summaryrefslogtreecommitdiff
path: root/AK/Tests/TestFixedArray.cpp
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-08-07 20:05:36 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-08-07 20:05:36 +0200
commit5096eaa8455fdacec8e0e23ee5ff76ec06490493 (patch)
treec3e43109c82e95a91a7d7938db6564a3cf4d2390 /AK/Tests/TestFixedArray.cpp
parent6bdb81ad87708015be8252b5e431a20b498048ff (diff)
downloadserenity-5096eaa8455fdacec8e0e23ee5ff76ec06490493.zip
AK: Add a FixedArray<T> container
This is a simple array wrapper that knows its size. It has begin/end so you can use range-for. It also has a resize() that reallocates.
Diffstat (limited to 'AK/Tests/TestFixedArray.cpp')
-rw-r--r--AK/Tests/TestFixedArray.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/AK/Tests/TestFixedArray.cpp b/AK/Tests/TestFixedArray.cpp
new file mode 100644
index 0000000000..92fe01b24c
--- /dev/null
+++ b/AK/Tests/TestFixedArray.cpp
@@ -0,0 +1,55 @@
+#include <AK/TestSuite.h>
+
+#include <AK/AKString.h>
+#include <AK/FixedArray.h>
+
+TEST_CASE(construct)
+{
+ EXPECT(FixedArray<int>().size() == 0);
+}
+
+TEST_CASE(ints)
+{
+ FixedArray<int> ints(3);
+ ints[0] = 0;
+ ints[1] = 1;
+ ints[2] = 2;
+ EXPECT_EQ(ints[0], 0);
+ EXPECT_EQ(ints[1], 1);
+ EXPECT_EQ(ints[2], 2);
+
+ ints.clear();
+ EXPECT_EQ(ints.size(), 0u);
+}
+
+TEST_CASE(resize)
+{
+ FixedArray<String> strings(2);
+ strings[0] = "ABC";
+ strings[1] = "DEF";
+
+ EXPECT_EQ(strings.size(), 2u);
+ EXPECT_EQ(strings[0], "ABC");
+ EXPECT_EQ(strings[1], "DEF");
+
+ strings.resize(4);
+
+ EXPECT_EQ(strings.size(), 4u);
+ EXPECT_EQ(strings[0], "ABC");
+ EXPECT_EQ(strings[1], "DEF");
+
+ EXPECT_EQ(strings[2].is_null(), true);
+ EXPECT_EQ(strings[3].is_null(), true);
+
+ strings[2] = "GHI";
+ strings[3] = "JKL";
+
+ EXPECT_EQ(strings[2], "GHI");
+ EXPECT_EQ(strings[3], "JKL");
+
+ strings.resize(1);
+ EXPECT_EQ(strings.size(), 1u);
+ EXPECT_EQ(strings[0], "ABC");
+}
+
+TEST_MAIN(FixedArray)