1.1 --- a/tests/test_list.cpp Sun May 21 11:52:58 2023 +0200 1.2 +++ b/tests/test_list.cpp Sun May 21 14:03:21 2023 +0200 1.3 @@ -1477,3 +1477,80 @@ 1.4 EXPECT_TRUE(testingAllocator.verify()); 1.5 } 1.6 1.7 +TEST(EmptyList, Size) { 1.8 + auto list = cxEmptyList; 1.9 + 1.10 + EXPECT_EQ(list->size, 0); 1.11 + EXPECT_EQ(cxListSize(list), 0); 1.12 +} 1.13 + 1.14 +TEST(EmptyList, Iterator) { 1.15 + auto list = cxEmptyList; 1.16 + 1.17 + auto it1 = cxListIterator(list); 1.18 + auto it2 = cxListBackwardsIterator(list); 1.19 + auto it3 = cxListMutIterator(list); 1.20 + auto it4 = cxListMutBackwardsIterator(list); 1.21 + 1.22 + EXPECT_FALSE(cxIteratorValid(it1)); 1.23 + EXPECT_FALSE(cxIteratorValid(it2)); 1.24 + EXPECT_FALSE(cxIteratorValid(it3)); 1.25 + EXPECT_FALSE(cxIteratorValid(it4)); 1.26 + 1.27 + int c = 0; 1.28 + cx_foreach(void*, data, it1) c++; 1.29 + cx_foreach(void*, data, it2) c++; 1.30 + cx_foreach(void*, data, it3) c++; 1.31 + cx_foreach(void*, data, it4) c++; 1.32 + EXPECT_EQ(c, 0); 1.33 +} 1.34 + 1.35 +TEST(EmptyList, NoOps) { 1.36 + auto list = cxEmptyList; 1.37 + 1.38 + ASSERT_NO_FATAL_FAILURE(cxListSort(list)); 1.39 + ASSERT_NO_FATAL_FAILURE(cxListClear(list)); 1.40 + ASSERT_NO_FATAL_FAILURE(cxListDestroy(list)); 1.41 +} 1.42 + 1.43 +TEST(EmptyList, At) { 1.44 + auto list = cxEmptyList; 1.45 + 1.46 + EXPECT_EQ(cxListAt(list, 0), nullptr); 1.47 + EXPECT_EQ(cxListAt(list, 1), nullptr); 1.48 +} 1.49 + 1.50 +TEST(EmptyList, Find) { 1.51 + auto list = cxEmptyList; 1.52 + 1.53 + int x = 42, y = 1337; 1.54 + 1.55 + EXPECT_LT(cxListFind(list, &x), 0); 1.56 + EXPECT_LT(cxListFind(list, &y), 0); 1.57 +} 1.58 + 1.59 +TEST(EmptyList, Compare) { 1.60 + auto empty = cxEmptyList; 1.61 + 1.62 + auto ll = cxLinkedListCreateSimple(sizeof(int)); 1.63 + auto al = cxArrayListCreateSimple(sizeof(int), 8); 1.64 + 1.65 + int x = 5; 1.66 + 1.67 + EXPECT_EQ(cxListCompare(empty, cxEmptyList), 0); 1.68 + EXPECT_EQ(cxListCompare(ll, cxEmptyList), 0); 1.69 + EXPECT_EQ(cxListCompare(al, cxEmptyList), 0); 1.70 + EXPECT_EQ(cxListCompare(cxEmptyList, ll), 0); 1.71 + EXPECT_EQ(cxListCompare(cxEmptyList, al), 0); 1.72 + 1.73 + cxListAdd(ll, &x); 1.74 + cxListAdd(al, &x); 1.75 + 1.76 + EXPECT_GT(cxListCompare(ll, cxEmptyList), 0); 1.77 + EXPECT_GT(cxListCompare(al, cxEmptyList), 0); 1.78 + EXPECT_LT(cxListCompare(cxEmptyList, ll), 0); 1.79 + EXPECT_LT(cxListCompare(cxEmptyList, al), 0); 1.80 + 1.81 + cxListDestroy(ll); 1.82 + cxListDestroy(al); 1.83 +}