tests/test_list.cpp

changeset 764
ccbdbd088455
parent 763
741a2040fa33
child 790
42877968260c
     1.1 --- a/tests/test_list.cpp	Mon Dec 18 16:14:07 2023 +0100
     1.2 +++ b/tests/test_list.cpp	Mon Dec 18 18:22:53 2023 +0100
     1.3 @@ -699,6 +699,27 @@
     1.4          EXPECT_NE(cxListRemove(list, testdata_len), 0);
     1.5      }
     1.6  
     1.7 +    void verifyFindRemove(CxList *list) const {
     1.8 +        size_t exp = rand() % testdata_len; // NOLINT(cert-msc50-cpp)
     1.9 +        int val = testdata.data[exp];
    1.10 +        // randomly picked number could occur earlier in list - find first position
    1.11 +        cx_for_n (i, exp) {
    1.12 +            if (testdata.data[i] == val) {
    1.13 +                exp = i;
    1.14 +                break;
    1.15 +            }
    1.16 +        }
    1.17 +        EXPECT_EQ(cxListSize(list), testdata_len);
    1.18 +        EXPECT_EQ(cxListFind(list, &val), exp);
    1.19 +        EXPECT_EQ(cxListFindRemove(list, &val), exp);
    1.20 +        EXPECT_EQ(cxListSize(list), testdata_len - 1);
    1.21 +        EXPECT_NE(cxListFind(list, &val), exp);
    1.22 +
    1.23 +        int notinlist = -1;
    1.24 +        EXPECT_LT(cxListFindRemove(list, &notinlist), 0);
    1.25 +        EXPECT_EQ(cxListSize(list), testdata_len - 1);
    1.26 +    }
    1.27 +
    1.28      static void verifyClear(CxList *list) {
    1.29          cxListClear(list);
    1.30          EXPECT_EQ(0, cxListSize(list));
    1.31 @@ -1133,6 +1154,22 @@
    1.32      verifyRemove(pointerArrayListFromTestData());
    1.33  }
    1.34  
    1.35 +TEST_F(LinkedList, cxListFindRemove) {
    1.36 +    verifyFindRemove(linkedListFromTestData());
    1.37 +}
    1.38 +
    1.39 +TEST_F(PointerLinkedList, cxListFindRemove) {
    1.40 +    verifyFindRemove(pointerLinkedListFromTestData());
    1.41 +}
    1.42 +
    1.43 +TEST_F(ArrayList, cxListFindRemove) {
    1.44 +    verifyFindRemove(arrayListFromTestData());
    1.45 +}
    1.46 +
    1.47 +TEST_F(PointerArrayList, cxListFindRemove) {
    1.48 +    verifyFindRemove(pointerArrayListFromTestData());
    1.49 +}
    1.50 +
    1.51  TEST_F(LinkedList, cxListClear) {
    1.52      verifyClear(linkedListFromTestData());
    1.53  }

mercurial