23 lines
688 B
C
23 lines
688 B
C
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 }))));
|
|
}
|