diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-08-07 20:05:36 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-08-07 20:05:36 +0200 |
commit | 5096eaa8455fdacec8e0e23ee5ff76ec06490493 (patch) | |
tree | c3e43109c82e95a91a7d7938db6564a3cf4d2390 /AK/Tests/TestFixedArray.cpp | |
parent | 6bdb81ad87708015be8252b5e431a20b498048ff (diff) | |
download | serenity-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.cpp | 55 |
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) |