| 18 | struct SC::ArrayTest : public SC::TestCase |
| 19 | { |
| 20 | ArrayTest(SC::TestReport& report) : TestCase(report, "ArrayTest") |
| 21 | { |
| 22 | using namespace SC; |
| 23 | |
| 24 | const StringView testString("Ciao"); |
| 25 | if (test_section("basic")) |
| 26 | { |
| 27 | Array<String, 2> strings; |
| 28 | SC_TEST_EXPECT(strings.resize(2, "ASDF")); |
| 29 | SC_TEST_EXPECT(strings[0] == "ASDF"); |
| 30 | SC_TEST_EXPECT(strings[1] == "ASDF"); |
| 31 | strings.front() = "ASDF1"; |
| 32 | strings.back() = "ASDF2"; |
| 33 | Array<String, 1> strings1; |
| 34 | SC_TEST_EXPECT(not strings1.assignMove(move(strings))); |
| 35 | |
| 36 | Array<String, 4> strings2 = strings; |
| 37 | // TODO: We must disable heap allocation for Array<T, N> |
| 38 | strings.clear(); |
| 39 | SC_TEST_EXPECT(strings.isEmpty()); |
| 40 | SC_TEST_EXPECT(strings2[0] == "ASDF1"); |
| 41 | SC_TEST_EXPECT(strings2[1] == "ASDF2"); |
| 42 | Array<String, 4> strings3; |
| 43 | SC_TEST_EXPECT(strings3.append({"1234", "5678"})); |
| 44 | SC_TEST_EXPECT(strings3.size() == 2); |
| 45 | SC_TEST_EXPECT(strings3.capacity() == 4); |
| 46 | SC_TEST_EXPECT(strings3[0] == "1234"); |
| 47 | SC_TEST_EXPECT(strings3[1] == "5678"); |
| 48 | SC_TEST_EXPECT(strings3.append({"yeah", "ohyeah"})); |
| 49 | SC_TEST_EXPECT(strings3.size() == 4); |
| 50 | SC_TEST_EXPECT(strings3.capacity() == 4); |
| 51 | SC_TEST_EXPECT(strings3[0] == "1234"); |
| 52 | SC_TEST_EXPECT(strings3[1] == "5678"); |
| 53 | SC_TEST_EXPECT(strings3[2] == "yeah"); |
| 54 | SC_TEST_EXPECT(strings3[3] == "ohyeah"); |
| 55 | SC_TEST_EXPECT(strings3.resize(2)); |
| 56 | SC_TEST_EXPECT(strings3.size() == 2); |
| 57 | SC_TEST_EXPECT(strings3.capacity() == 4); |
| 58 | SC_TEST_EXPECT(strings3[0] == "1234"); |
| 59 | SC_TEST_EXPECT(strings3[1] == "5678"); |
| 60 | // SC_TEST_EXPECT(strings3.shrink_to_fit()); |
| 61 | SC_TEST_EXPECT(strings3.size() == 2); |
| 62 | SC_TEST_EXPECT(strings3.capacity() == 4); |
| 63 | SC_TEST_EXPECT(strings3[0] == "1234"); |
| 64 | SC_TEST_EXPECT(strings3[1] == "5678"); |
| 65 | |
| 66 | strings3 = move(strings2); |
| 67 | SC_TEST_EXPECT(strings2.isEmpty()); |
| 68 | SC_TEST_EXPECT(strings3[0] == "ASDF1"); |
| 69 | SC_TEST_EXPECT(strings3[1] == "ASDF2"); |
| 70 | |
| 71 | SC_TEST_EXPECT(strings3.push_back("ASDF3")); |
| 72 | SC_TEST_EXPECT(strings3[2] == "ASDF3"); |
| 73 | } |
| 74 | if (test_section("resize")) |
| 75 | { |
| 76 | Array<int, 10> arr; |
| 77 | SC_TEST_EXPECT(not arr.reserve(11)); |
nothing calls this directly
no test coverage detected