42 lines
854 B
C
42 lines
854 B
C
#define ERR(x) ASSERT2(catch(restore_variable(x)), sprintf("%O", x))
|
|
#define IS(x, y) ASSERT2(same(restore_variable(x),y), sprintf("%O", x))
|
|
|
|
string *value_errs = ({ "\"\"x", "\"\\", "\"\\x\\", "\"\\x\"x",
|
|
"-x" });
|
|
mapping values = ([
|
|
"\"\r\"" : "\n",
|
|
"\"\\\"\"" : "\"",
|
|
"\"\\\"\\x\r\"" : "\"x\n",
|
|
"-1" : -1,
|
|
"0" : 0,
|
|
"1" : 1,
|
|
"22" : 22,
|
|
"1.2" : 1.2,
|
|
"333" : 333,
|
|
"({})" : ({}),
|
|
"({,})" : ({0})
|
|
]);
|
|
|
|
void do_tests() {
|
|
mixed x, y;
|
|
foreach (x in value_errs) {
|
|
ERR(x);
|
|
}
|
|
|
|
foreach (x, y in values) {
|
|
IS(x, y);
|
|
}
|
|
|
|
// arrays
|
|
foreach (x, y in values) {
|
|
IS("({" + x + ",})", ({ y }));
|
|
IS("({" + x + "," + x + ",})", ({ y, y }));
|
|
}
|
|
|
|
// mappings
|
|
foreach (x, y in values) {
|
|
IS("([1:" + x + ",])", ([1:y ]));
|
|
IS("([" + x + ":" + x + ",])", ([ y: y ]));
|
|
}
|
|
}
|