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

79 lines
1.8 KiB
C

void do_tests() {
string tmp = "this is a test";
mixed *ret;
ret = explode(tmp, "");
ASSERT(sizeof(ret) == sizeof(filter(ret, (: strlen($1) == 1 :))));
ret = explode(tmp, " ");
ASSERT(sizeof(ret) == 4);
ASSERT(ret[1] == "is");
ASSERT(ret[3] == "test");
ret = explode(" " + tmp, " ");
#ifndef __REVERSIBLE_EXPLODE_STRING__
ASSERT(sizeof(ret) == 4);
ASSERT(ret[1] == "is");
ASSERT(ret[3] == "test");
#else
ASSERT(sizeof(ret) == 5);
ASSERT(ret[2] == "is");
ASSERT(ret[4] == "test");
#endif
ret = explode(" " + tmp, " ");
#ifndef __REVERSIBLE_EXPLODE_STRING__
#ifdef __SANE_EXPLODE_STRING__
ASSERT(sizeof(ret) == 8);
ASSERT(ret[5] == "is");
ASSERT(ret[7] == "test");
#else
ASSERT(sizeof(ret) == 4);
ASSERT(ret[1] == "is");
ASSERT(ret[3] == "test");
#endif
#else
ASSERT(sizeof(ret) == 9);
ASSERT(ret[6] == "is");
ASSERT(ret[8] == "test");
#endif
tmp = "this is a test ";
ret = explode(tmp, " ");
#ifndef __REVERSIBLE_EXPLODE_STRING__
ASSERT(sizeof(ret) == 4);
#else
ASSERT(sizeof(ret) == 5);
#endif
ASSERT(ret[1] == "is");
ASSERT(ret[3] == "test");
ret = explode(" " + tmp, " ");
#ifndef __REVERSIBLE_EXPLODE_STRING__
ASSERT(sizeof(ret) == 4);
ASSERT(ret[1] == "is");
ASSERT(ret[3] == "test");
#else
ASSERT(sizeof(ret) == 6);
ASSERT(ret[2] == "is");
ASSERT(ret[4] == "test");
#endif
ret = explode(" " + tmp, " ");
#ifndef __REVERSIBLE_EXPLODE_STRING__
#ifdef __SANE_EXPLODE_STRING__
ASSERT(sizeof(ret) == 6);
ASSERT(ret[3] == "is");
ASSERT(ret[5] == "test");
#else
ASSERT(sizeof(ret) == 4);
ASSERT(ret[1] == "is");
ASSERT(ret[3] == "test");
#endif
#else
ASSERT(sizeof(ret) == 8);
ASSERT(ret[4] == "is");
ASSERT(ret[6] == "test");
#endif
}