OAuth2Lib/util/test_sorted_str_set.c

68 lines
1.9 KiB
C

#include "sorted_set.h"
#include <stdio.h>
#include <string.h>
#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;
}