tests/test_list.cpp

changeset 704
35f06c5eeb0e
parent 702
3390b58ad15a
child 763
741a2040fa33
     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 +}

mercurial