mud/fluffos-2.23-ds03/testsuite/single/tests/efuns/reg_assoc.c
2020-09-06 05:43:07 -07:00

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 }))));
}