/* * First test: size = 64 */ static void test1(void) { uint32_t x; printf("\n" "=================\n" " TEST 1\n" "=================\n\n"); // 50 initial elements init_test_set(&set, 6, 50); printf("=== Initial set: 50 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 40 initial elements add_random(&set, 40, 63); printf("\n=== After 40 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_large_bvset(&set); }
/* * Size = 2048 */ static void test3(void) { uint32_t x; printf("\n" "=================\n" " TEST 3\n" "=================\n\n"); // 1000 initial additions init_test_set(&set, 11, 1000); printf("=== Initial set: 1000 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 2000 initial additions add_random(&set, 2000, 2047); printf("\n=== After 2000 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_large_bvset(&set); }
/* * Size = 2^40 */ static void test3(void) { uint32_t x, n; printf("\n" "=================\n" " TEST 3\n" "=================\n\n"); // 1000 initial additions init_test_set(&set, 40, 1000); printf("=== Initial set: 1000 additions ===\n"); print_bvset(&set); printf("\n"); // 50 calls to get_fresh n = 50; do { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); n --; } while (n > 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 2000 initial additions add_random(&set, 2000, UINT32_MAX); printf("\n=== After 2000 additions ===\n"); print_bvset(&set); printf("\n"); // 2000000 calls to get fresh n = 2000000; do { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); n --; } while (n > 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 200000 calls to get fresh n = 200000; do { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); n --; } while (n > 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_rb_bvset(&set); }
/* * First test: size = 64 */ static void test1(void) { uint32_t x; printf("\n" "=================\n" " TEST 1\n" "=================\n\n"); // 50 initial elements init_test_set(&set, 6, 50); printf("=== Initial set: 50 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 40 initial elements add_random(&set, 40, 63); printf("\n=== After 40 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_rb_bvset(&set); }
/* * Second test: size = 256 */ static void test2(void) { uint32_t x; printf("\n" "=================\n" " TEST 2\n" "=================\n\n"); // 200 initial additions init_test_set(&set, 8, 200); printf("=== Initial set: 200 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 240 initial elements add_random(&set, 240, 255); printf("\n=== After 240 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_rb_bvset(&set); }