X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fbinheap-test.c;h=bfd28a012793fef72fcee86fc391e0961ff6c940;hb=d775f3ca9c8619bc1f0d2f98a9518fed60fe6658;hp=703fac87980b0f58f635c88c595db23bc7b1faaa;hpb=1aa5b092dce1eabfc4ac2460abf9454341bc79f1;p=libucw.git diff --git a/lib/binheap-test.c b/lib/binheap-test.c index 703fac87..bfd28a01 100644 --- a/lib/binheap-test.c +++ b/lib/binheap-test.c @@ -1,5 +1,5 @@ /* - * Sherlock Library -- Binomial Heaps: Testing + * UCW Library -- Binomial Heaps: Testing * * (c) 2003 Martin Mares * @@ -19,36 +19,36 @@ #include "lib/binheap-node.h" struct item { - struct bht_node n; + struct bh_node n; uns key; }; -static inline uns bht_key(struct bht_node *n) +static inline uns bht_key(struct bh_node *n) { return ((struct item *)n)->key; } -static inline uns bht_less(struct bht_node *a, struct bht_node *b) +static inline uns bht_less(struct bh_node *a, struct bh_node *b) { return bht_key(a) < bht_key(b); } static void -bht_do_dump(struct bht_node *a, struct bht_node *expected_last, uns offset) +bht_do_dump(struct bh_node *a, struct bh_node *expected_last, uns offset) { if (!a) return; printf("%*s", offset, ""); printf("[%d](%d)%s\n", a->order, bht_key(a), a == expected_last ? " L" : ""); - for (struct bht_node *b=a->first_son; b; b=b->next_sibling) + for (struct bh_node *b=a->first_son; b; b=b->next_sibling) bht_do_dump(b, a->last_son, offset+1); } static void -bht_dump(struct bht_heap *h) +bht_dump(struct bh_heap *h) { printf("root\n"); - for (struct bht_node *b=h->root.first_son; b; b=b->next_sibling) + for (struct bh_node *b=h->root.first_son; b; b=b->next_sibling) bht_do_dump(b, b->last_son, 1); } @@ -57,7 +57,7 @@ bht_dump(struct bht_heap *h) int main(void) { uns i; - struct bht_heap h; + struct bh_heap h; #define N 1048576 #define K(i) ((259309*i+1009)%N) @@ -71,8 +71,16 @@ int main(void) bht_insert(&h, &a->n); // bht_dump(&h); } - bht_dump(&h); + // bht_dump(&h); ASSERT(bht_key(bht_findmin(&h)) == 0); + uns cnt = 0; + BH_FOR_ALL(bht_, &h, a) + { + cnt++; + } + BH_END_FOR; + printf("cnt=%d\n", cnt); + ASSERT(cnt == N); for (i=0; i