char *test_fuzzing() { BSTree *store = BSTree_create(NULL); int i = 0; int j = 0; bstring numbers[100] = {NULL}; bstring data[100] = {NULL}; srand((unsigned int)time(NULL)); for(i = 0; i < 100; i++) { int num = rand(); numbers[i] = bformat("%d", num); data[i] = bformat("data %d", num); BSTree_set(store, numbers[i], data[i]); } for(i = 0; i < 100; i++) { bstring value = BSTree_delete(store, numbers[i]); mu_assert(value == data[i], "Failed to delete the right number."); mu_assert(BSTree_delete(store, numbers[i]) == NULL, "Should get nothing."); for(j = j+1; j < 99 - i; j++) { bstring value = BSTree_get(store, numbers[j]); mu_assert(value == data[j], "Failed to get the right number."); } bdestroy(value); bdestroy(numbers[i]); } BSTree_destroy(store); return NULL; }
BSTree *BSTree_create(BSTree_compare compare) { BSTree *map = calloc(1, sizeof(BSTree)); check_mem(map); map->compare = compare == NULL ? default_compare : compare; return map; error: if (map) { BSTree_destroy(map); } return NULL; }
BSTree *BSTree_create(BSTree_compare compare, BSTree_hash hash) { // Why not malloc? BSTree *map = calloc(1, sizeof(BSTree)); check_mem(map); map->compare = compare == NULL ? default_compare : compare; map->hash = hash == NULL ? default_hash : hash; return map; error: if (map) { BSTree_destroy(map); } return NULL; }
char *test_fuzzing() { BSTree *store = BSTree_create(NULL); int i = 0; int j = 0; /*char *numbers[100] = {NULL};*/ int numbers[100] = {0}; char *data[100] = {NULL}; srand((unsigned int)time(NULL)); for(i = 0; i < 100; i++) { int num = rand(); char *buf = calloc(1, sizeof(char *)); /*sprintf(buf, "%d", num);*/ /*numbers[i] = buf;*/ numbers[i] = num; sprintf(buf, "data %d", i); data[i] = buf; buf = NULL; /*debug("Val: %d", *numbers[i]);*/ BSTree_set(store, &numbers[i], data[i]); } for(i = 0; i < 100; i++) { char *value = BSTree_delete(store, &numbers[i]); mu_assert(value == data[i], "Failed to delete the right number."); mu_assert(BSTree_delete(store, &numbers[i]) == NULL, "Should get nothing."); for(j = i+1; j < 99 - i; j++) { char *value = BSTree_get(store, &numbers[j]); mu_assert(value == data[j], "Failed to get the right number."); } value = NULL; } BSTree_destroy(store); return NULL; }
char *test_destroy() { BSTree_destroy(map); return NULL; }