Remove the per-array type category so arrays can mix types like structs. Add 13 passing and 125 expected-failure duskscript test fixtures with a table-driven runner. Also includes the in-progress entity/physics and archive moves from the working tree. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
70 lines
2.0 KiB
Plaintext
70 lines
2.0 KiB
Plaintext
// tostr
|
|
assert(tostr(5) == "5");
|
|
assert(tostr(-5) == "-5");
|
|
assert(tostr(0) == "0");
|
|
assert(tostr(1.5) == "1.5");
|
|
assert(tostr(0.25) == "0.25");
|
|
assert(tostr(100) == "100");
|
|
assert(tostr(true) == "true");
|
|
assert(tostr(false) == "false");
|
|
assert(tostr(null) == "null");
|
|
assert(tostr(undefined) == "undefined");
|
|
assert(tostr("same") == "same");
|
|
assert(tostr([1, "a", true]) == "[1, \"a\", true]");
|
|
assert(tostr([]) == "[]");
|
|
assert(tostr({}) == "{}");
|
|
assert(tostr({a: 1}) == "{\"a\": 1}");
|
|
assert(tostr({a: 1, b: "x"}) == "{\"a\": 1, \"b\": \"x\"}");
|
|
assert(tostr([[1], [2, 3]]) == "[[1], [2, 3]]");
|
|
assert(tostr([1, null, [true]]) == "[1, null, [true]]");
|
|
|
|
// tostr with decimals
|
|
assert(tostr(3.14159, 2) == "3.14");
|
|
assert(tostr(3, 2) == "3.00");
|
|
assert(tostr(2.5, 0) == "2" || tostr(2.5, 0) == "3");
|
|
assert(tostr(1.5, 1) == "1.5");
|
|
assert(tostr(0, 3) == "0.000");
|
|
assert(tostr(-1.25, 2) == "-1.25");
|
|
|
|
// tobase
|
|
assert(tobase(255, 16) == "FF");
|
|
assert(tobase(255, 2) == "11111111");
|
|
assert(tobase(8, 8) == "10");
|
|
assert(tobase(0, 2) == "0");
|
|
assert(tobase(-5, 2) == "-101");
|
|
assert(tobase(35, 36) == "Z");
|
|
assert(tobase(true, 2) == "1");
|
|
assert(tobase(false, 2) == "0");
|
|
assert(tobase(10, 10) == "10");
|
|
|
|
// tonum
|
|
assert(tonum("42") == 42);
|
|
assert(tonum("-42") == -42);
|
|
assert(tonum("3.5") == 3.5);
|
|
assert(tonum("-0.5") == -0.5);
|
|
assert(tonum("0") == 0);
|
|
assert(tonum("007") == 7);
|
|
assert(tonum(5) == 5);
|
|
assert(tonum("ff", 16) == 255);
|
|
assert(tonum("FF", 16) == 255);
|
|
assert(tonum("0xff", 16) == 255);
|
|
assert(tonum("101", 2) == 5);
|
|
assert(tonum("0b101", 2) == 5);
|
|
assert(tonum("z", 36) == 35);
|
|
assert(tonum("-10", 10) == -10);
|
|
assert(tonum(tostr(1234)) == 1234);
|
|
assert(tonum(tobase(77, 2), 2) == 77);
|
|
|
|
// tobool
|
|
assert(tobool(true) == true);
|
|
assert(tobool(false) == false);
|
|
assert(tobool(1) == true);
|
|
assert(tobool(0) == false);
|
|
assert(tobool(-3) == true);
|
|
assert(tobool("true") == true);
|
|
assert(tobool("false") == false);
|
|
|
|
// Round trips
|
|
assert(tonum(tostr(12.5)) == 12.5);
|
|
assert(tobool(tostr(true)) == true);
|