diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/check_ht.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/check_ht.c b/src/test/check_ht.c new file mode 100644 index 0000000..2419ce5 --- /dev/null +++ b/src/test/check_ht.c @@ -0,0 +1,43 @@ +#include <stdio.h> +#include "../ht.h" + +int main(int UNUSED argc, char ** UNUSED argv) +{ + ht *htp = new_ht(HT_INIT_CAP); + + NUM *temp = MYALLOC(NUM, 1), key = 1023; + *temp = 12345; + + if (ht_insert(htp, key, temp)) { + fleprintf0("Fail to insert\n"); + free(temp); + destroy_ht(htp, 1); + return 1; + } + + if ((temp = ht_find(htp, key))) { + fleprintf("We found value %ld for key %ld\n", + *temp, key); + } else + fleprintf("We found no value for key %ld\n", key); + + if (ht_delete(htp, key, 1)) { + fleprintf("Fail to delete key %ld\n", key); + destroy_ht(htp, 1); + return 1; + } + + fleprintf0("After the deletion, "); + + if ((temp = ht_find(htp, key))) { + eprintf("We found value %ld for key %ld\n", + *temp, key); + destroy_ht(htp, 1); + return 1; + } else { + eprintf("We found no value for key %ld\n", key); + } + + destroy_ht(htp, 1); + return 0; +} |