X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flibpspp%2Fabt-test.c;h=1b0d00998be621d3959a9f4c2a2b4e7eac5ad6d3;hb=56a9bab76d340530048bf0dea1e858701299fa29;hp=8bbe7d76e401af79d6a93a10560ce942552415fa;hpb=a258e53c63a08b0ec48aea8f03808eb651729424;p=pspp diff --git a/tests/libpspp/abt-test.c b/tests/libpspp/abt-test.c index 8bbe7d76e4..1b0d00998b 100644 --- a/tests/libpspp/abt-test.c +++ b/tests/libpspp/abt-test.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2007, 2010 Free Software Foundation, Inc. + Copyright (C) 2007, 2010, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +26,6 @@ #include -#include #include #include #include @@ -119,7 +118,7 @@ static int aux_data; static struct element * abt_node_to_element (const struct abt_node *node) { - return abt_data (node, struct element, node); + return ABT_DATA (node, struct element, node); } /* Compares the `x' values in A and B and returns a strcmp-type @@ -138,20 +137,17 @@ compare_elements (const struct abt_node *a_, const struct abt_node *b_, /* Recalculates the count for NODE's subtree by adding up the counts for its LEFT and RIGHT child subtrees. */ static void -reaugment_elements (struct abt_node *node_, - const struct abt_node *left, - const struct abt_node *right, - const void *aux) +reaugment_elements (struct abt_node *node_, const void *aux) { struct element *node = abt_node_to_element (node_); check (aux == &aux_data); node->count = 1; - if (left != NULL) - node->count += abt_node_to_element (left)->count; - if (right != NULL) - node->count += abt_node_to_element (right)->count; + if (node->node.down[0] != NULL) + node->count += abt_node_to_element (node->node.down[0])->count; + if (node->node.down[1] != NULL) + node->count += abt_node_to_element (node->node.down[1])->count; } /* Compares A and B and returns a strcmp-type return value. */ @@ -256,7 +252,7 @@ static struct element * find_by_position (struct abt *abt, int position) { struct abt_node *p; - for (p = abt->root; p != NULL; ) + for (p = abt->root; p != NULL;) { int p_pos = p->down[0] ? abt_node_to_element (p->down[0])->count : 0; if (position == p_pos) @@ -374,6 +370,7 @@ check_abt (struct abt *abt, const int data[], size_t cnt) check (abt_node_to_element (p)->data == order[cnt - i - 1]); check (p == NULL); } + check (abt_is_empty (abt) == (cnt == 0)); free (order); }