1 #include <ccan/intmap/intmap.h>
2 #include <ccan/intmap/intmap.c>
3 #include <ccan/tap/tap.h>
7 SINTMAP(const char *) map;
8 const char *first = "first", *second = "second";
10 /* This is how many tests you plan to run */
14 /* Test boundaries. */
15 ok1(!sintmap_get(&map, 0x7FFFFFFFFFFFFFFFLL));
16 ok1(!sintmap_get(&map, -0x8000000000000000LL));
17 ok1(sintmap_first(&map) == 0x7FFFFFFFFFFFFFFFLL);
19 ok1(sintmap_after(&map, 0x7FFFFFFFFFFFFFFFLL) == 0x7FFFFFFFFFFFFFFFLL);
21 ok1(sintmap_after(&map, -0x8000000000000000LL) == 0x7FFFFFFFFFFFFFFFLL);
23 ok1(sintmap_after(&map, 0x7FFFFFFFFFFFFFFELL) == 0x7FFFFFFFFFFFFFFFLL);
25 ok1(sintmap_add(&map, 0x7FFFFFFFFFFFFFFFLL, first));
26 ok1(sintmap_get(&map, 0x7FFFFFFFFFFFFFFFLL) == first);
27 ok1(sintmap_first(&map) == 0x7FFFFFFFFFFFFFFFLL);
29 ok1(sintmap_add(&map, -0x8000000000000000LL, second));
30 ok1(sintmap_get(&map, 0x7FFFFFFFFFFFFFFFLL) == first);
31 ok1(sintmap_get(&map, -0x8000000000000000LL) == second);
32 ok1(sintmap_first(&map) == -0x8000000000000000LL);
33 ok1(sintmap_after(&map, -0x8000000000000000LL) == 0x7FFFFFFFFFFFFFFFLL);
35 ok1(sintmap_after(&map, 0x7FFFFFFFFFFFFFFELL) == 0x7FFFFFFFFFFFFFFFLL);
37 ok1(sintmap_after(&map, -0x7FFFFFFFFFFFFFFFLL) == 0x7FFFFFFFFFFFFFFFLL);
39 ok1(sintmap_after(&map, 0x7FFFFFFFFFFFFFFFLL) == 0x7FFFFFFFFFFFFFFFLL);
41 ok1(sintmap_del(&map, 0x7FFFFFFFFFFFFFFFLL) == first);
42 ok1(sintmap_after(&map, -0x8000000000000000LL) == 0x7FFFFFFFFFFFFFFFLL);
44 ok1(sintmap_add(&map, 0x7FFFFFFFFFFFFFFFLL, first));
45 ok1(sintmap_del(&map, 0x8000000000000000LL) == second);
46 ok1(sintmap_after(&map, -0x8000000000000000LL) == 0x7FFFFFFFFFFFFFFFLL);
48 ok1(sintmap_del(&map, 0x7FFFFFFFFFFFFFFFLL) == first);
49 ok1(sintmap_empty(&map));
51 /* This exits depending on whether all tests passed */