diff --git a/tests/test-mtree.c b/tests/test-mtree.c index 9a53409d..a53012a8 100644 --- a/tests/test-mtree.c +++ b/tests/test-mtree.c @@ -261,6 +261,7 @@ static void insert(unsigned cmd, unsigned ref) assert( cmd < 5); assert( ref <= g_num); int val = (int) g_num + 1; + //printf("Command %d for value %d at %d\n", cmd, val, ref); switch (cmd) { case 0: g_tree[++g_num] = tree_insert_up( g_tree[ref], val); @@ -299,9 +300,10 @@ static inline unsigned int rand_get(void) static void test_gen(void) { - tree_t t; + tree_t t, t0; string_t s; tree_init(t); + tree_init(t0); string_init(s); g_root = g_tree[++ g_num] = tree_set_root(t, 1); tree_get_str(s, t, false); @@ -310,8 +312,15 @@ static void test_gen(void) unsigned ref = 1 + (rand_get() % g_num); insert(cmd, ref); tree_get_str(s, t, false); + tree_set(t0, t); + unsigned ref1 = 1 + (rand_get() % g_num); + unsigned ref2 = 1 + (rand_get() % g_num); + tree_swap_at(g_tree[ref1], g_tree[ref2], false); + tree_swap_at(g_tree[ref1], g_tree[ref2], false); + assert(tree_equal_p(t, t0)); } string_clear(s); + tree_clear(t0); tree_clear(t); }