[set] add tests for inverted set equality.
diff --git a/test/api/test-set.c b/test/api/test-set.c
index 94d374e..54a31c2 100644
--- a/test/api/test-set.c
+++ b/test/api/test-set.c
@@ -575,7 +575,6 @@
}
// TODO(garretrieger): Inverted tests:
-// is_equal
//
// Interesting cases:
// - empty inverted (ie. all numbers)
@@ -890,6 +889,60 @@
}
+static void
+test_set_inverted_equality (void)
+{
+ hb_set_t *a = hb_set_create ();
+ hb_set_t *b = hb_set_create ();
+ hb_set_invert (a);
+ hb_set_invert (b);
+
+ g_assert (hb_set_is_equal (a, b));
+ g_assert (hb_set_is_equal (b, a));
+
+ hb_set_add (a, 10);
+ g_assert (hb_set_is_equal (a, b));
+ g_assert (hb_set_is_equal (b, a));
+
+ hb_set_del (a, 42);
+ g_assert (!hb_set_is_equal (a, b));
+ g_assert (!hb_set_is_equal (b, a));
+
+ hb_set_del (b, 42);
+ g_assert (hb_set_is_equal (a, b));
+ g_assert (hb_set_is_equal (b, a));
+
+ hb_set_del_range (a, 43, 50);
+ hb_set_del_range (a, 51, 76);
+ hb_set_del_range (b, 43, 76);
+ g_assert (hb_set_is_equal (a, b));
+ g_assert (hb_set_is_equal (b, a));
+
+ hb_set_del (a, 0);
+ g_assert (!hb_set_is_equal (a, b));
+ g_assert (!hb_set_is_equal (b, a));
+
+ hb_set_del (b, 0);
+ g_assert (hb_set_is_equal (a, b));
+ g_assert (hb_set_is_equal (b, a));
+
+ hb_set_del (a, max_set_elements - 1);
+ g_assert (!hb_set_is_equal (a, b));
+ g_assert (!hb_set_is_equal (b, a));
+
+ hb_set_del (b, max_set_elements - 1);
+ g_assert (hb_set_is_equal (a, b));
+ g_assert (hb_set_is_equal (b, a));
+
+ hb_set_invert (a);
+ g_assert (!hb_set_is_equal (a, b));
+ g_assert (!hb_set_is_equal (b, a));
+
+ hb_set_invert (b);
+ g_assert (hb_set_is_equal (a, b));
+ g_assert (hb_set_is_equal (b, a));
+}
+
int
main (int argc, char **argv)
{
@@ -910,6 +963,7 @@
hb_test_add (test_set_inverted_ranges);
hb_test_add (test_set_inverted_iteration_next);
hb_test_add (test_set_inverted_iteration_prev);
+ hb_test_add (test_set_inverted_equality);
return hb_test_run();
}