#include "sorted_set.h" #include #include #define REF(dtype, value) ((dtype []){ (value) }) void print_set(const sorted_str_set* set) { for (int i = 0; i < set->size; ++i) { printf("\"%s\": %d\n", set->data[i].key, *(int*)set->data[i].element); } } int main() { sorted_str_set *set = sorted_str_set_new(sizeof(int)); printf("%p\n", sorted_str_set_get(set, "zero")); printf("-%d\n", strcmp("-one", "one")); sorted_str_set_insert(set, "three", REF(int, 3)); sorted_str_set_insert(set, "one", REF(int, 1)); sorted_str_set_insert(set, "-one", REF(int, -1)); sorted_str_set_insert(set, "four", REF(int, 4)); sorted_str_set_insert(set, "two", REF(int, 2)); print_set(set); printf("\nsize: %lu\n", set->size); printf("%d\n", *(int*)sorted_str_set_get(set, "one")); printf("%d\n", *(int*)sorted_str_set_get(set, "two")); printf("%d\n", *(int*)sorted_str_set_get(set, "three")); printf("%d\n", *(int*)sorted_str_set_get(set, "four")); printf("%d\n", *(int*)sorted_str_set_get(set, "-one")); printf("\n%d should be 2\n", *(int*)sorted_str_set_insert(set, "two", REF(int, -2))); printf("size: %lu (should be the same as before)\n", set->size); sorted_str_set_insert(set, "ten", REF(int, 10)); sorted_str_set_insert(set, "eleven", REF(int, 11)); sorted_str_set_insert(set, "negative four", REF(int, -4)); sorted_str_set_insert(set, "fifty", REF(int, 50)); printf("%d\n", *(int*)sorted_str_set_get(set, "ten")); printf("%d\n", *(int*)sorted_str_set_get(set, "eleven")); printf("%d\n", *(int*)sorted_str_set_get(set, "negative four")); printf("%d\n", *(int*)sorted_str_set_get(set, "fifty")); printf("size: %lu\n", set->size); print_set(set); sorted_str_set_remove(set, "three"); sorted_str_set_remove(set, "one"); sorted_str_set_remove(set, "three"); sorted_str_set_remove(set, "four"); sorted_str_set_remove(set, "four"); printf("size: %lu\n", set->size); print_set(set); sorted_str_set_free(set); return 0; }