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, ¬inlist), 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 }