tests/range-tree: Validate insertions and removals
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/798>
This commit is contained in:
@@ -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
|
gint
|
||||||
main (gint argc,
|
main (gint argc,
|
||||||
gchar *argv[])
|
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/traverse", range_tree_traverse);
|
||||||
g_test_add_func ("/range-tree/smaller-range", range_tree_smaller_range);
|
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/remove-data", range_tree_remove_data);
|
||||||
|
g_test_add_func ("/range-tree/deep-remove", range_tree_deep_remove);
|
||||||
|
|
||||||
return g_test_run ();
|
return g_test_run ();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user