v22.2b14/
v22.2b14/Win32/
v22.2b14/compat/
v22.2b14/testsuite/
v22.2b14/testsuite/clone/
v22.2b14/testsuite/command/
v22.2b14/testsuite/data/
v22.2b14/testsuite/etc/
v22.2b14/testsuite/include/
v22.2b14/testsuite/inherit/
v22.2b14/testsuite/inherit/master/
v22.2b14/testsuite/log/
v22.2b14/testsuite/single/
v22.2b14/testsuite/single/tests/compiler/
v22.2b14/testsuite/single/tests/efuns/
v22.2b14/testsuite/single/tests/operators/
v22.2b14/testsuite/u/
v22.2b14/tmp/
int same_array(mixed *x, mixed *y) {
    if (!arrayp(x) || !arrayp(y)) return 0;
    if (sizeof(x) != sizeof(y)) return 0;
    for (int i = 0; i < sizeof(x); i++) {
	if (arrayp(x[i])) {
	    if (!same_array(x[i], y[i]))
		return 0;
	} else if (x[i] != y[i])
	    return 0;
    }
    return 1;
}

void do_tests() {
    ASSERT(same_array(
	       reg_assoc("testhahatest", ({ "haha", "te" }), ({ 2, 3 }), 4),
	       ({ ({ "", "te", "st", "haha", "", "te", "st" }),
		  ({ 4, 3, 4, 2, 4, 3, 4 }) })));
    ASSERT(catch(reg_assoc("foo", ({ 1 }), ({ 2, 3 }))));
    ASSERT(catch(reg_assoc("foo", ({ 1, 2 }), ({ 2, 3 }))));
    ASSERT(catch(reg_assoc("foo", ({ "bar", "+" }), ({ 0, 1 }))));
}