Callbacks redone

This commit is contained in:
Leonardo Vencovsky committed 2023-02-28 16:42:02 +01:00
1 parent a46ba1f255
commit 015d14216f
81 files changed
+378 -1641

No files matched your search

-100
View File
@@ -464,106 +464,6 @@ CMC_CREATE_UNIT(CMCHashMultiMap, true, {
hmm_free(map);
hmm_free(map2);
});
CMC_CREATE_TEST(callbacks, {
struct hashmultimap *map = hmm_new_custom(100, 0.8, hmm_fkey, hmm_fval, NULL, callbacks);
cmc_assert_not_equals(ptr, NULL, map);
total_create = 0;
total_read = 0;
total_update = 0;
total_delete = 0;
total_resize = 0;
cmc_assert(hmm_insert(map, 1, 1));
cmc_assert_equals(int32_t, 1, total_create);
cmc_assert(hmm_update(map, 1, 2, NULL));
cmc_assert_equals(int32_t, 1, total_update);
cmc_assert(hmm_insert(map, 1, 1));
cmc_assert_equals(int32_t, 2, total_create);
cmc_assert_equals(size_t, 2, hmm_update_all(map, 1, 3, NULL));
cmc_assert_equals(int32_t, 2, total_update);
cmc_assert(hmm_remove(map, 1, NULL));
cmc_assert_equals(int32_t, 1, total_delete);
cmc_assert(hmm_insert(map, 1, 2));
cmc_assert_equals(int32_t, 3, total_create);
cmc_assert_equals(size_t, 2, hmm_remove_all(map, 1, NULL));
cmc_assert_equals(int32_t, 2, total_delete);
cmc_assert(hmm_insert(map, 1, 2));
cmc_assert_equals(int32_t, 4, total_create);
cmc_assert(hmm_max(map, NULL, NULL));
cmc_assert_equals(int32_t, 1, total_read);
cmc_assert(hmm_min(map, NULL, NULL));
cmc_assert_equals(int32_t, 2, total_read);
cmc_assert_equals(size_t, 2, hmm_get(map, 1));
cmc_assert_equals(int32_t, 3, total_read);
cmc_assert_not_equals(ptr, NULL, hmm_get_ref(map, 1));
cmc_assert_equals(int32_t, 4, total_read);
cmc_assert(hmm_contains(map, 1));
cmc_assert_equals(int32_t, 5, total_read);
cmc_assert(hmm_resize(map, 1000));
cmc_assert_equals(int32_t, 1, total_resize);
cmc_assert(hmm_resize(map, 100));
cmc_assert_equals(int32_t, 2, total_resize);
cmc_assert_equals(int32_t, 4, total_create);
cmc_assert_equals(int32_t, 5, total_read);
cmc_assert_equals(int32_t, 2, total_update);
cmc_assert_equals(int32_t, 2, total_delete);
cmc_assert_equals(int32_t, 2, total_resize);
hmm_customize(map, NULL, NULL);
cmc_assert_equals(ptr, NULL, map->callbacks);
hmm_clear(map);
cmc_assert(hmm_insert(map, 1, 1));
cmc_assert(hmm_update(map, 1, 2, NULL));
cmc_assert(hmm_insert(map, 1, 1));
cmc_assert_equals(size_t, 2, hmm_update_all(map, 1, 3, NULL));
cmc_assert(hmm_remove(map, 1, NULL));
cmc_assert(hmm_insert(map, 1, 2));
cmc_assert_equals(size_t, 2, hmm_remove_all(map, 1, NULL));
cmc_assert(hmm_insert(map, 1, 2));
cmc_assert(hmm_max(map, NULL, NULL));
cmc_assert(hmm_min(map, NULL, NULL));
cmc_assert_equals(size_t, 2, hmm_get(map, 1));
cmc_assert_not_equals(ptr, NULL, hmm_get_ref(map, 1));
cmc_assert(hmm_contains(map, 1));
cmc_assert(hmm_resize(map, 1000));
cmc_assert(hmm_resize(map, 100));
cmc_assert_equals(int32_t, 4, total_create);
cmc_assert_equals(int32_t, 5, total_read);
cmc_assert_equals(int32_t, 2, total_update);
cmc_assert_equals(int32_t, 2, total_delete);
cmc_assert_equals(int32_t, 2, total_resize);
cmc_assert_equals(ptr, NULL, map->callbacks);
hmm_free(map);
total_create = 0;
total_read = 0;
total_update = 0;
total_delete = 0;
total_resize = 0;
});
});
struct hashmultimap_fkey *hmm_fkey_numhash = &(struct hashmultimap_fkey){