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]>
84 lines
2.0 KiB
Plaintext
84 lines
2.0 KiB
Plaintext
assert(abs(-5) == 5);
|
|
assert(abs(5) == 5);
|
|
assert(abs(0) == 0);
|
|
assert(abs(-2.5) == 2.5);
|
|
|
|
assert(sign(-9) == -1);
|
|
assert(sign(9) == 1);
|
|
assert(sign(0) == 0);
|
|
assert(sign(-0.1) == -1);
|
|
|
|
assert(min(1, 2) == 1);
|
|
assert(min(2, 1) == 1);
|
|
assert(min(-1, 1) == -1);
|
|
assert(min(3, 3) == 3);
|
|
assert(max(1, 2) == 2);
|
|
assert(max(2, 1) == 2);
|
|
assert(max(-1, -2) == -1);
|
|
|
|
assert(clamp(5, 0, 10) == 5);
|
|
assert(clamp(-5, 0, 10) == 0);
|
|
assert(clamp(50, 0, 10) == 10);
|
|
assert(clamp(0, 0, 10) == 0);
|
|
assert(clamp(10, 0, 10) == 10);
|
|
|
|
assert(pow(2, 0) == 1);
|
|
assert(pow(2, 1) == 2);
|
|
assert(pow(2, 10) == 1024);
|
|
assert(pow(3, 3) == 27);
|
|
assert(pow(-2, 3) == -8);
|
|
assert(pow(0, 0) == 1);
|
|
assert(pow(1.5, 2) == 2.25);
|
|
assert(pow(2, -1) == 0.5);
|
|
|
|
assert(floor(3.7) == 3);
|
|
assert(floor(3) == 3);
|
|
assert(floor(-3.2) == -4);
|
|
assert(ceil(3.2) == 4);
|
|
assert(ceil(3) == 3);
|
|
assert(ceil(-3.7) == -3);
|
|
assert(round(3.4) == 3);
|
|
assert(round(3.6) == 4);
|
|
assert(round(-3.4) == -3);
|
|
assert(round(-3.6) == -4);
|
|
assert(round(2.5) == 3);
|
|
|
|
assert(sqrt(16) == 4);
|
|
assert(sqrt(0) == 0);
|
|
assert(sqrt(2.25) == 1.5);
|
|
assert(abs(sin(0)) < 0.0001);
|
|
assert(abs(cos(0) - 1) < 0.0001);
|
|
assert(abs(tan(0)) < 0.0001);
|
|
assert(abs(sin(PI / 2) - 1) < 0.0001);
|
|
assert(abs(cos(PI) + 1) < 0.0001);
|
|
assert(abs(atan2(1, 1) - PI / 4) < 0.0001);
|
|
assert(abs(PI - 3.14159) < 0.0001);
|
|
|
|
// Random numbers stay in range
|
|
for(var i = 0; i < 200; i++) {
|
|
var r = rand(5, 10);
|
|
assert(r >= 5 && r < 10);
|
|
assert(r == floor(r));
|
|
var f = randf(0, 1);
|
|
assert(f >= 0 && f <= 1);
|
|
}
|
|
assert(rand(3, 4) == 3);
|
|
|
|
// The same seed gives the same numbers
|
|
randseed(1234);
|
|
var seedA = [rand(0, 1000), rand(0, 1000), rand(0, 1000)];
|
|
randseed(1234);
|
|
var seedB = [rand(0, 1000), rand(0, 1000), rand(0, 1000)];
|
|
assert(deepequal(seedA, seedB));
|
|
randseed(0);
|
|
var zeroSeeded = rand(0, 1000);
|
|
assert(zeroSeeded >= 0 && zeroSeeded < 1000);
|
|
|
|
// Shuffle keeps every element
|
|
var deck = [1, 2, 3, 4, 5, 6, 7, 8];
|
|
shuffle(deck);
|
|
assert(len(deck) == 8);
|
|
var sum = 0;
|
|
foreach(var card : deck) sum += card;
|
|
assert(sum == 36);
|