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

33 lines
937 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() {
mapping x = ([ 1 : "bazz" ]);
ASSERT(catch(regexp("foo", "bar", x[1])));
ASSERT(catch(regexp("foo", "bar", 1)));
ASSERT(regexp("tabba", "a*b"));
ASSERT(!regexp("tbba", "a+b"));
ASSERT(same_array(
regexp( ({ "foo", "bar", "bazz" }), "b"),
({ "bar", "bazz" })));
ASSERT(same_array(
regexp( ({ "foo", "bar", "bazz" }), "^...$"),
({ "foo", "bar" }) ));
ASSERT(same_array(regexp( ({ "foo", "bar", "bazz" }), "(oo|zz)", 1),
({ "foo", 1, "bazz", 3 })));
ASSERT(catch(regexp("foo", "+")));
ASSERT(catch(regexp( ({ "foo", "bar" }), "+")));
}