tests/range-tree: Validate insertions and removals

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/798>
This commit is contained in:
Niklas Wimmer
2026-07-22 14:13:36 +00:00
committed by Marge Bot
parent b83a89a2e7
commit a1b55b5ca9
+47
View File
@@ -185,6 +185,52 @@ range_tree_remove_data (void)
/*********************************************************************************************************************/
static void
range_tree_deep_remove (void)
{
static struct
{
const gchar *start;
const gchar *end;
} ranges[] = {
{ "2026-03-05T00:00:00", "2026-03-10T00:00:00" },
{ "2026-03-07T00:00:00", "2026-03-18T00:00:00" },
{ "2026-03-19T00:00:00", "2026-04-02T00:00:00" },
};
g_autoptr (GcalRangeTree) range_tree = NULL;
g_autoptr (GcalRange) range = NULL;
g_autoptr (GTimeZone) utc = NULL;
gint i;
g_test_bug ("1615");
range_tree = gcal_range_tree_new ();
g_assert_nonnull (range_tree);
utc = g_time_zone_new_utc ();
for (i = 0; i < G_N_ELEMENTS (ranges); i++)
{
g_clear_pointer (&range, gcal_range_unref);
range = gcal_range_new_take (g_date_time_new_from_iso8601 (ranges[i].start, utc),
g_date_time_new_from_iso8601 (ranges[i].end, utc),
GCAL_RANGE_DEFAULT);
gcal_range_tree_add_range (range_tree, range, GINT_TO_POINTER (i));
}
i--;
g_assert_true (gcal_range_tree_has_entries_at_range (range_tree, range));
gcal_range_tree_remove_range (range_tree, range, GINT_TO_POINTER (i));
g_assert_false (gcal_range_tree_has_entries_at_range (range_tree, range));
}
/*********************************************************************************************************************/
gint
main (gint argc,
gchar *argv[])
@@ -199,6 +245,7 @@ main (gint argc,
g_test_add_func ("/range-tree/traverse", range_tree_traverse);
g_test_add_func ("/range-tree/smaller-range", range_tree_smaller_range);
g_test_add_func ("/range-tree/remove-data", range_tree_remove_data);
g_test_add_func ("/range-tree/deep-remove", range_tree_deep_remove);
return g_test_run ();
}