Files
Noja/tests/test.noja
T

105 lines
1.9 KiB
Plaintext

# Test the equal operator
{
assert(1 == 1);
assert(1.0 == 1.0);
assert('--' == '--');
}
# Test assignment.
{
a = 3;
assert(a == 3);
}
# Test operations on integers.
{
# assert(4 == +4); -------------------- FAILING
# assert(0-4 == -4); ------------------ FAILING
assert(1 + 1 == 2);
assert(2 * 3 == 6);
assert(6 / 3 == 2);
assert(4 < 5);
assert(4 > 3);
assert(4 <= 5);
assert(4 <= 4);
assert(4 >= 3);
assert(4 == 4);
assert(4 != 3);
}
# Test operations on floats.
{
# assert(4.0 == +4.0); # -------------------- FAILING
# assert(0-4.0 == -4.0); # ------------------ FAILING
assert(1.0 + 1.0 == 2.0);
assert(2.0 * 3.0 == 6.0);
assert(6.0 / 3.0 == 2.0);
assert(4.0 < 5.0);
assert(4.0 > 3.0);
assert(4.0 <= 5.0);
assert(4.0 <= 4.0);
assert(4.0 >= 3.0);
assert(4.0 == 4.0);
assert(4.0 != 3.0);
}
# Test operations on strings.
{
assert('hey' == 'hey');
assert('hey' != 'hey2');
}
# Test operations on bools.
{
assert(true);
assert(true == true);
assert(true != false);
assert(false == false);
assert(false != true);
assert(true == not false);
assert(false == not true);
assert((true and true ) == true);
assert((true and false) == false);
assert((false and true ) == false);
assert((false and false) == false);
assert((true or true ) == true);
assert((true or false) == true);
assert((false or true ) == true);
assert((false or false) == false);
}
# Test lists.
{
[1]; [1.0]; ['x']; [1, 1]; [1.0, 1.0]; ['x', 'x'];
}
# Test maps.
{
({});
({'': none});
({1: none});
({1.0: none});
({none: none});
({true: none});
({false: none});
({[]: none});
({{}: none});
}
# Test if-else statements.
{
if true: r = true; else r = false;
assert(r);
if true: { r = true; } else { r = false; }
assert(r);
if false: r = false; else r = true;
assert(r);
if false: { r = false; } else { r = true; }
assert(r);
}
print('No assertion failed.\n');