|
@@ -143,6 +143,83 @@ static void testForRange() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static int arrayListInstances = 0;
|
|
|
+
|
|
|
+struct ArrayListTest final {
|
|
|
+ int value;
|
|
|
+
|
|
|
+ ArrayListTest(int i) : value(i) {
|
|
|
+ arrayListInstances++;
|
|
|
+ }
|
|
|
+
|
|
|
+ ArrayListTest(const ArrayListTest& o) = delete;
|
|
|
+
|
|
|
+ ArrayListTest(ArrayListTest&& o) noexcept : value(o.value) {
|
|
|
+ arrayListInstances++;
|
|
|
+ }
|
|
|
+
|
|
|
+ ~ArrayListTest() {
|
|
|
+ arrayListInstances--;
|
|
|
+ }
|
|
|
+
|
|
|
+ ArrayListTest& operator=(ArrayListTest&& o) noexcept {
|
|
|
+ value = o.value;
|
|
|
+ return *this;
|
|
|
+ }
|
|
|
+
|
|
|
+ ArrayListTest& operator=(const ArrayListTest& o) = delete;
|
|
|
+};
|
|
|
+
|
|
|
+static void testInsert() {
|
|
|
+ Core::ArrayList<ArrayListTest, 5> l;
|
|
|
+ l.addAt(0, 1);
|
|
|
+ TEST(1, l.getLength());
|
|
|
+ TEST(1, l[0].value);
|
|
|
+ TEST(1, arrayListInstances);
|
|
|
+
|
|
|
+ l.addAt(0, 2);
|
|
|
+ TEST(2, l.getLength());
|
|
|
+ TEST(2, l[0].value);
|
|
|
+ TEST(1, l[1].value);
|
|
|
+ TEST(2, arrayListInstances);
|
|
|
+
|
|
|
+ l.addAt(0, 3);
|
|
|
+ TEST(3, l.getLength());
|
|
|
+ TEST(3, l[0].value);
|
|
|
+ TEST(2, l[1].value);
|
|
|
+ TEST(1, l[2].value);
|
|
|
+ TEST(3, arrayListInstances);
|
|
|
+
|
|
|
+ l.addAt(1, 4);
|
|
|
+ TEST(4, l.getLength());
|
|
|
+ TEST(3, l[0].value);
|
|
|
+ TEST(4, l[1].value);
|
|
|
+ TEST(2, l[2].value);
|
|
|
+ TEST(1, l[3].value);
|
|
|
+ TEST(4, arrayListInstances);
|
|
|
+
|
|
|
+ l.addAt(2, 5);
|
|
|
+ TEST(5, l.getLength());
|
|
|
+ TEST(3, l[0].value);
|
|
|
+ TEST(4, l[1].value);
|
|
|
+ TEST(5, l[2].value);
|
|
|
+ TEST(2, l[3].value);
|
|
|
+ TEST(1, l[4].value);
|
|
|
+ TEST(5, arrayListInstances);
|
|
|
+
|
|
|
+ l.addAt(5, 4);
|
|
|
+ TEST(5, l.getLength());
|
|
|
+ TEST(3, l[0].value);
|
|
|
+ TEST(4, l[1].value);
|
|
|
+ TEST(5, l[2].value);
|
|
|
+ TEST(2, l[3].value);
|
|
|
+ TEST(1, l[4].value);
|
|
|
+ TEST(5, arrayListInstances);
|
|
|
+
|
|
|
+ l.clear();
|
|
|
+ TEST(0, arrayListInstances);
|
|
|
+}
|
|
|
+
|
|
|
void testArrayList(bool light) {
|
|
|
testAdd();
|
|
|
testMultipleAdd();
|
|
@@ -157,4 +234,5 @@ void testArrayList(bool light) {
|
|
|
testRemoveBySwap();
|
|
|
testRemove();
|
|
|
testForRange();
|
|
|
+ testInsert();
|
|
|
}
|