Improve test suite by performing no op swap operation randomly

This commit is contained in:
Patrick Pelissier committed 2022-07-24 21:12:59 +02:00
1 parent dab085e3a7
commit 22b18830f7
1 file changed
+10 -1
+10 -1
View File
@@ -261,6 +261,7 @@ static void insert(unsigned cmd, unsigned ref)
assert( cmd < 5); assert( cmd < 5);
assert( ref <= g_num); assert( ref <= g_num);
int val = (int) g_num + 1; int val = (int) g_num + 1;
//printf("Command %d for value %d at %d\n", cmd, val, ref);
switch (cmd) { switch (cmd) {
case 0: case 0:
g_tree[++g_num] = tree_insert_up( g_tree[ref], val); 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) static void test_gen(void)
{ {
tree_t t; tree_t t, t0;
string_t s; string_t s;
tree_init(t); tree_init(t);
tree_init(t0);
string_init(s); string_init(s);
g_root = g_tree[++ g_num] = tree_set_root(t, 1); g_root = g_tree[++ g_num] = tree_set_root(t, 1);
tree_get_str(s, t, false); tree_get_str(s, t, false);
@@ -310,8 +312,15 @@ static void test_gen(void)
unsigned ref = 1 + (rand_get() % g_num); unsigned ref = 1 + (rand_get() % g_num);
insert(cmd, ref); insert(cmd, ref);
tree_get_str(s, t, false); 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); string_clear(s);
tree_clear(t0);
tree_clear(t); tree_clear(t);
} }