Revised tests
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
//NOTE: these tests are all passing - failing tests can be found under the 'mustfails' directory
|
||||
|
||||
//basic assert statement
|
||||
assert true;
|
||||
|
||||
//assert on a string (tests for it's truthiness)
|
||||
assert "Hello world";
|
||||
|
||||
//assert on a condition
|
||||
assert 1 < 2;
|
||||
|
||||
//assert with an optional message
|
||||
assert true, "Assertion message";
|
||||
|
||||
//TODO: add mustfails
|
||||
@@ -0,0 +1,5 @@
|
||||
//WARN: empty test script
|
||||
|
||||
//TODO: test iteration on arrays, tables, closures
|
||||
|
||||
//TODO: test break, continue
|
||||
@@ -0,0 +1,62 @@
|
||||
//literals
|
||||
if (true) {
|
||||
assert true, "if-then-else 1";
|
||||
}
|
||||
else {
|
||||
assert false, "if-then-else 1";
|
||||
}
|
||||
|
||||
//false literals
|
||||
if (false) {
|
||||
assert false, "if-then-else 2";
|
||||
}
|
||||
else {
|
||||
assert true, "if-then-else 2";
|
||||
}
|
||||
|
||||
//conditionals
|
||||
if (1 < 2) {
|
||||
assert true, "if-then-else 3";
|
||||
}
|
||||
if (1 > 2) {
|
||||
assert false, "if-then-else 3";
|
||||
}
|
||||
|
||||
//variables
|
||||
var a = 42;
|
||||
|
||||
if (a) {
|
||||
assert true, "if-then-else 4";
|
||||
}
|
||||
else {
|
||||
assert false, "if-then-else 4";
|
||||
}
|
||||
|
||||
if (a == 42) {
|
||||
assert true, "if-then-else 5";
|
||||
}
|
||||
else {
|
||||
assert false, "if-then-else 5";
|
||||
}
|
||||
|
||||
//concatenated strings
|
||||
if ("foo" .. "bar" == "foobar") {
|
||||
assert true, "if-then-else 6";
|
||||
}
|
||||
else {
|
||||
assert false, "if-then-else 6";
|
||||
}
|
||||
|
||||
if ("foobar" == "foo" .. "bar") {
|
||||
assert true, "if-then-else 7";
|
||||
}
|
||||
else {
|
||||
assert false, "if-then-else 7";
|
||||
}
|
||||
|
||||
if ("fizz" .. "le" == "fi" .. "zzle") {
|
||||
assert true, "if-then-else 8";
|
||||
}
|
||||
else {
|
||||
assert false, "if-then-else 8";
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
//literals
|
||||
if (true)
|
||||
assert true, "if-then-else 1";
|
||||
else
|
||||
assert false, "if-then-else 1";
|
||||
|
||||
//false literals
|
||||
if (false)
|
||||
assert false, "if-then-else 2";
|
||||
else
|
||||
assert true, "if-then-else 2";
|
||||
|
||||
//conditionals
|
||||
if (1 < 2)
|
||||
assert true, "if-then-else 3";
|
||||
if (1 > 2)
|
||||
assert false, "if-then-else 3";
|
||||
|
||||
//variables
|
||||
var a = 42;
|
||||
|
||||
if (a)
|
||||
assert true, "if-then-else 4";
|
||||
else
|
||||
assert false, "if-then-else 4";
|
||||
|
||||
if (a == 42)
|
||||
assert true, "if-then-else 5";
|
||||
else
|
||||
assert false, "if-then-else 5";
|
||||
|
||||
//concatenated strings
|
||||
if ("foo" .. "bar" == "foobar")
|
||||
assert true, "if-then-else 6";
|
||||
else
|
||||
assert false, "if-then-else 6";
|
||||
|
||||
if ("foobar" == "foo" .. "bar")
|
||||
assert true, "if-then-else 7";
|
||||
else
|
||||
assert false, "if-then-else 7";
|
||||
|
||||
if ("fizz" .. "le" == "fi" .. "zzle")
|
||||
assert true, "if-then-else 8";
|
||||
else
|
||||
assert false, "if-then-else 8";
|
||||
@@ -0,0 +1 @@
|
||||
pass;
|
||||
@@ -0,0 +1,21 @@
|
||||
//basic print statement
|
||||
print 42;
|
||||
|
||||
//print compount expressions
|
||||
print 3 * 5;
|
||||
|
||||
//print a string
|
||||
print "Hello world!";
|
||||
|
||||
//print a concatenated string
|
||||
print "Hello" .. "world!";
|
||||
|
||||
//print with escaped characters
|
||||
print "\tHello\nworld!";
|
||||
|
||||
//print from a substring string
|
||||
print "Hello world"[0,5];
|
||||
|
||||
//print from a substring, after a concat
|
||||
print ("hello" .. "world")[3,3]; //should print "low"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
fn empty() {
|
||||
//
|
||||
}
|
||||
|
||||
fn almostEmpty() {
|
||||
return;
|
||||
}
|
||||
|
||||
fn notEmpty() {
|
||||
return 42;
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
//make sure it works with multiple repititions
|
||||
|
||||
//-------------------------
|
||||
|
||||
//test break
|
||||
while (true) {
|
||||
break;
|
||||
assert false, "break failed";
|
||||
}
|
||||
|
||||
//test continue
|
||||
var flag1: Bool = true;
|
||||
while (flag1) {
|
||||
flag1 = false;
|
||||
continue;
|
||||
assert false, "continue failed";
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
|
||||
//test break
|
||||
while (true) {
|
||||
break;
|
||||
assert false, "break failed";
|
||||
}
|
||||
|
||||
//test continue
|
||||
var flag2: Bool = true;
|
||||
while (flag2) {
|
||||
flag2 = false;
|
||||
continue;
|
||||
assert false, "continue failed";
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
|
||||
//test break
|
||||
while (true) {
|
||||
break;
|
||||
assert false, "break failed";
|
||||
}
|
||||
|
||||
//test continue
|
||||
var flag3: Bool = true;
|
||||
while (flag3) {
|
||||
flag3 = false;
|
||||
continue;
|
||||
assert false, "continue failed";
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
|
||||
{
|
||||
//test break
|
||||
while (true) {
|
||||
break;
|
||||
assert false, "break failed";
|
||||
}
|
||||
|
||||
//test continue
|
||||
var flag4: Bool = true;
|
||||
while (flag4) {
|
||||
flag4 = false;
|
||||
continue;
|
||||
assert false, "continue failed";
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
|
||||
{
|
||||
//test break
|
||||
while (true) {
|
||||
{
|
||||
break;
|
||||
}
|
||||
assert false, "break failed";
|
||||
}
|
||||
|
||||
//test continue
|
||||
var flag5: Bool = true;
|
||||
while (flag5) {
|
||||
flag5 = false;
|
||||
{
|
||||
continue;
|
||||
}
|
||||
assert false, "continue failed";
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
|
||||
{
|
||||
//iteration
|
||||
var iteration = 0;
|
||||
while(iteration < 10) {
|
||||
print iteration;
|
||||
iteration += 1;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
//if and while work together
|
||||
var count = 1;
|
||||
while (count <= 10) {
|
||||
if (count % 2 == 0) {
|
||||
print "even";
|
||||
}
|
||||
else {
|
||||
print "odd";
|
||||
}
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
|
||||
{
|
||||
//make sure break and continue point to the correct locations
|
||||
var loops = 0;
|
||||
|
||||
while (true) {
|
||||
if (++loops < 15532) {
|
||||
continue;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
assert loops == 15532, "Yuki loop failed (break + continue)";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user