[llvm] [ADT] Add unit tests for set_subtract (PR #99561)

Jakub Kuderski via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 18 15:29:38 PDT 2024


================
@@ -199,6 +201,42 @@ TEST(SetOperationsTest, SetSubtract) {
   EXPECT_EQ(ExpectedSet2, Set2);
 }
 
+TEST(SetOperationsTest, SetSubtractSmallPtrSet) {
+  int A[4];
+
+  // Set1.size() < Set2.size()
+  SmallPtrSet<int *, 4> Set1 = {&A[0], &A[1]};
+  SmallPtrSet<int *, 4> Set2 = {&A[1], &A[2], &A[3]};
+  SmallPtrSet<int *, 4> ExpectedSet1 = {&A[0]};
+  set_subtract(Set1, Set2);
+  EXPECT_EQ(ExpectedSet1, Set1);
+
+  // Set1.size() > Set2.size()
+  Set1 = {&A[0], &A[1], &A[2]};
+  Set2 = {&A[0], &A[2]};
+  ExpectedSet1 = {&A[1]};
+  set_subtract(Set1, Set2);
+  EXPECT_EQ(ExpectedSet1, Set1);
----------------
kuhar wrote:

You can also do `EXPECT_THAT(Set1, UnorderedElementsAre(&A[1]));`
Same for the test below

https://github.com/llvm/llvm-project/pull/99561


More information about the llvm-commits mailing list