Added some more tests
This commit is contained in:
+6
-1
@@ -14,10 +14,15 @@ class Main {
|
||||
new Benchmark("Test", 1000);
|
||||
#else
|
||||
Sys.println("Beginning tests");
|
||||
if(!Main.SHOW_KNOWN_BUGS) {
|
||||
Sys.println("Hiding known bugs [TEMPORARY]");
|
||||
}
|
||||
runTest("Array", new ArrayCase());
|
||||
runTest("BinOp", new BinOpCase());
|
||||
runTest("EvalOrder", new EvalOrderCase());
|
||||
runTest("Math", new MathCase());
|
||||
runTest("Float", new FloatCase());
|
||||
runTest("IntIterator", new IntIteratorCase());
|
||||
runTest("Misc", new MiscCase());
|
||||
Util.printTestResults();
|
||||
#end
|
||||
@@ -25,7 +30,7 @@ class Main {
|
||||
|
||||
#if !BENCHMARK
|
||||
static function runTest(name:String, test:TestCase) {
|
||||
Util.startUnitTest("Math");
|
||||
Util.startUnitTest(name);
|
||||
test.setup();
|
||||
test.run();
|
||||
test.teardown();
|
||||
|
||||
+36
-2
@@ -13,7 +13,13 @@ class Util {
|
||||
}
|
||||
|
||||
public static function assertEq(value:Dynamic, expected:Dynamic, message:String) {
|
||||
if (value == expected) {
|
||||
var passed = value == expected;
|
||||
if (Std.isOfType(value, Array) && Std.isOfType(expected, Array)) {
|
||||
if (deepCompareArrays(value, expected))
|
||||
passed = true;
|
||||
}
|
||||
|
||||
if (passed) {
|
||||
passedTestUnits++;
|
||||
} else {
|
||||
Sys.println("Assertion failed: " + message + " Expected: " + expected + " Got: " + value);
|
||||
@@ -22,7 +28,15 @@ class Util {
|
||||
}
|
||||
|
||||
public static function assertNeq(value:Dynamic, expected:Dynamic, message:String) {
|
||||
if (value != expected) {
|
||||
var passed = value != expected;
|
||||
if (Std.isOfType(value, Array) && Std.isOfType(expected, Array)) {
|
||||
if (!deepCompareArrays(value, expected))
|
||||
passed = true;
|
||||
}
|
||||
|
||||
// WARNING THIS MIGHT NOT WORK
|
||||
|
||||
if (passed) {
|
||||
passedTestUnits++;
|
||||
} else {
|
||||
Sys.println("Assertion failed: " + message + " Expected: " + expected + " Got: " + value);
|
||||
@@ -121,4 +135,24 @@ class Util {
|
||||
// Logs.logText(err, RED)
|
||||
//], ERROR);
|
||||
}
|
||||
|
||||
public static function deepCompareArrays(a1: Array<Dynamic>, a2: Array<Dynamic>): Bool {
|
||||
if (a1.length != a2.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i in 0...a1.length) {
|
||||
var item1 = a1[i];
|
||||
var item2 = a2[i];
|
||||
|
||||
if (Std.isOfType(item1, Array) && Std.isOfType(item2, Array)) {
|
||||
if (!deepCompareArrays(item1, item2))
|
||||
return false;
|
||||
} else if (item1 != item2) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,68 +1,68 @@
|
||||
package benchmark;
|
||||
|
||||
class Benchmark {
|
||||
public var times:Array<Float> = [];
|
||||
public var times:Array<Float> = [];
|
||||
|
||||
public function new(name:String, iterations:Int) {
|
||||
times = cast new haxe.ds.Vector<Float>(iterations);
|
||||
|
||||
for (i in 0...iterations) {
|
||||
var startTime:Float = Util.getTime();
|
||||
benchmark();
|
||||
var endTime:Float = Util.getTime();
|
||||
times[i] = endTime-startTime;
|
||||
}
|
||||
times.sort(Reflect.compare);
|
||||
public function new(name:String, iterations:Int) {
|
||||
times = cast new haxe.ds.Vector<Float>(iterations);
|
||||
|
||||
for (i in 0...iterations) {
|
||||
var startTime:Float = Util.getTime();
|
||||
benchmark();
|
||||
var endTime:Float = Util.getTime();
|
||||
times[i] = endTime-startTime;
|
||||
}
|
||||
times.sort(Reflect.compare);
|
||||
|
||||
var total:Float = 0;
|
||||
for (time in times)
|
||||
total += time;
|
||||
var total:Float = 0;
|
||||
for (time in times)
|
||||
total += time;
|
||||
|
||||
Sys.println('--------------------$name BENCHMARK--------------------');
|
||||
Sys.println('Running $iterations times...');
|
||||
// Sys.println('Lowest Time: ${Util.exScienceN(times[0])}');
|
||||
// Sys.println('Average Time: ${Util.exScienceN(total/iterations)}');
|
||||
// Sys.println('Highest Time: ${Util.exScienceN(times[times.length-1])}');
|
||||
Sys.println('Lowest Time: ${Util.convertToReadableTime(times[0])}');
|
||||
Sys.println('Average Time: ${Util.convertToReadableTime(total/iterations)}');
|
||||
Sys.println('Highest Time: ${Util.convertToReadableTime(times[times.length-1])}');
|
||||
graph();
|
||||
Sys.println('--------------------$name BENCHMARK--------------------');
|
||||
}
|
||||
Sys.println('--------------------$name BENCHMARK--------------------');
|
||||
Sys.println('Running $iterations times...');
|
||||
// Sys.println('Lowest Time: ${Util.exScienceN(times[0])}');
|
||||
// Sys.println('Average Time: ${Util.exScienceN(total/iterations)}');
|
||||
// Sys.println('Highest Time: ${Util.exScienceN(times[times.length-1])}');
|
||||
Sys.println('Lowest Time: ${Util.convertToReadableTime(times[0])}');
|
||||
Sys.println('Average Time: ${Util.convertToReadableTime(total/iterations)}');
|
||||
Sys.println('Highest Time: ${Util.convertToReadableTime(times[times.length-1])}');
|
||||
graph();
|
||||
Sys.println('--------------------$name BENCHMARK--------------------');
|
||||
}
|
||||
|
||||
public function graph() {
|
||||
var size:{width:Int, height:Int} = {width: 20, height: 14};
|
||||
public function graph() {
|
||||
var size:{width:Int, height:Int} = {width: 20, height: 14};
|
||||
|
||||
var collumRange:Float = times[times.length-1]-times[0];
|
||||
var counts:Array<Int> = cast new haxe.ds.Vector<Int>(size.width);
|
||||
var collumRange:Float = times[times.length-1]-times[0];
|
||||
var counts:Array<Int> = cast new haxe.ds.Vector<Int>(size.width);
|
||||
|
||||
for (time in times) {
|
||||
var index:Int = Std.int((time - times[0]) / (collumRange / size.width));
|
||||
counts[index]++;
|
||||
}
|
||||
for (time in times) {
|
||||
var index:Int = Std.int((time - times[0]) / (collumRange / size.width));
|
||||
counts[index]++;
|
||||
}
|
||||
|
||||
var normalizedCounts:Array<Float> = [for (count in counts) count / times.length];
|
||||
var gridFilling:Array<Int> = [for (count in normalizedCounts) Math.round(count*size.height)];
|
||||
var normalizedCounts:Array<Float> = [for (count in counts) count / times.length];
|
||||
var gridFilling:Array<Int> = [for (count in normalizedCounts) Math.round(count*size.height)];
|
||||
|
||||
trace(normalizedCounts,gridFilling);
|
||||
for (y in 0...size.height) {
|
||||
for (x in 0...size.width) {
|
||||
Sys.print("*");
|
||||
}
|
||||
Sys.print("\n");
|
||||
|
||||
}
|
||||
}
|
||||
trace(normalizedCounts,gridFilling);
|
||||
for (y in 0...size.height) {
|
||||
for (x in 0...size.width) {
|
||||
Sys.print("*");
|
||||
}
|
||||
Sys.print("\n");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// public static function remapToRange(value:Float, start1:Float, stop1:Float, start2:Float, stop2:Float):Float
|
||||
// {
|
||||
// return start2 + (value - start1) * ((stop2 - start2) / (stop1 - start1));
|
||||
// }
|
||||
// public static function remapToRange(value:Float, start1:Float, stop1:Float, start2:Float, stop2:Float):Float
|
||||
// {
|
||||
// return start2 + (value - start1) * ((stop2 - start2) / (stop1 - start1));
|
||||
// }
|
||||
|
||||
public function benchmark() {
|
||||
var array:Array<Float> = [];
|
||||
public function benchmark() {
|
||||
var array:Array<Float> = [];
|
||||
|
||||
for (i in 0...10000)
|
||||
array.push(Math.random());
|
||||
}
|
||||
for (i in 0...10000)
|
||||
array.push(Math.random());
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,6 @@ class EvalOrderCase extends TestCase {
|
||||
super.setup();
|
||||
|
||||
headerCode = '
|
||||
var a = 1;
|
||||
var b = 2;
|
||||
var c = 3;
|
||||
|
||||
function func(i1:Dynamic, i2:Dynamic, i3:Dynamic) {
|
||||
return i1 + ";" + i2 + ";" + i3;
|
||||
}
|
||||
@@ -26,14 +22,12 @@ function func(i1:Dynamic, i2:Dynamic, i3:Dynamic) {
|
||||
return i1 + ";" + i2 + ";" + i3;
|
||||
}
|
||||
|
||||
assertEq("func(a, b, c)", func(a, b, c));
|
||||
|
||||
clearPrevious = true;
|
||||
|
||||
var i = 0;
|
||||
assertEq("var i = 0; func(i++, i++, i++)", func(i++, i++, i++));
|
||||
var i = 0;
|
||||
assertEq("var i = 0; var a = [i++, i++, i++]; a.join(';')", [i++, i++, i++].join(";"));
|
||||
assertEq("var i = 0; [i++, i++, i++].join(';')", [i++, i++, i++].join(";"));
|
||||
|
||||
var i = 0;
|
||||
var obj = {
|
||||
@@ -56,9 +50,6 @@ function func(i1:Dynamic, i2:Dynamic, i3:Dynamic) {
|
||||
var buf:Array<Int> = [];
|
||||
|
||||
function a() {
|
||||
trace("cock");
|
||||
trace(buf);
|
||||
trace(buf.push);
|
||||
buf.push(1);
|
||||
return 1;
|
||||
}
|
||||
@@ -94,13 +85,6 @@ function begin() {
|
||||
return buf.join("_");
|
||||
}
|
||||
}
|
||||
|
||||
function begin2() {
|
||||
buf = [];
|
||||
return () -> {
|
||||
return buf.join("_");
|
||||
}
|
||||
}
|
||||
';
|
||||
|
||||
var buf:Array<Int> = [];
|
||||
@@ -142,34 +126,151 @@ function begin() {
|
||||
}
|
||||
}
|
||||
|
||||
function begin2() {
|
||||
buf = [];
|
||||
return () -> {
|
||||
return buf.join("_");
|
||||
// &&
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 99 && (c() + d()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 99 && (c() + d()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 0 && (e() + f()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 0 && (e() + f()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 99 && (c() + d()) >= 0 && (e() + f()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 99 && (c() + d()) >= 0 && (e() + f()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 99 && (e() + f()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 99 && (e() + f()) >= 0;
|
||||
end()', end());
|
||||
|
||||
// ||
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 0 || (c() + d()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 0 || (c() + d()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 99 || (c() + d()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 99 || (c() + d()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 0 || (c() + d()) >= 0 || (e() + f()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 0 || (c() + d()) >= 0 || (e() + f()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 99 || (c() + d()) >= 0 || (e() + f()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 99 || (c() + d()) >= 0 || (e() + f()) >= 0;
|
||||
end()', end());
|
||||
|
||||
var end = begin();
|
||||
(a() + b()) >= 99 || (c() + d()) >= 99 || (e() + f()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 99 || (c() + d()) >= 99 || (e() + f()) >= 0;
|
||||
end()', end());
|
||||
|
||||
headerCode += '
|
||||
function arr(x, y) {
|
||||
return [];
|
||||
}
|
||||
|
||||
function idx(x, y) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
function f1() {
|
||||
buf.push(1);
|
||||
return function(i) { };
|
||||
}
|
||||
|
||||
function f2() {
|
||||
buf.push(2);
|
||||
return 2;
|
||||
}
|
||||
';
|
||||
// []
|
||||
|
||||
function arr(x, y) {
|
||||
return [];
|
||||
}
|
||||
|
||||
function idx(x, y) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
function f1() {
|
||||
buf.push(1);
|
||||
return function(i) { };
|
||||
}
|
||||
|
||||
function f2() {
|
||||
buf.push(2);
|
||||
return 2;
|
||||
}
|
||||
|
||||
var end = begin();
|
||||
var _ = (arr(a(), b()))[idx(c(), d())];
|
||||
assertEq('var end = begin();
|
||||
var _ = (arr(a(), b()))[idx(c(), d())];
|
||||
end()', end());
|
||||
|
||||
headerCode += '
|
||||
var d:Dynamic = { f1: f1 };
|
||||
|
||||
function f3() {
|
||||
buf.push(3);
|
||||
d.f1 = function f3df1(i) {
|
||||
buf.push(4);
|
||||
return 4;
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
';
|
||||
|
||||
var d:Dynamic = { f1: f1 };
|
||||
|
||||
function f3() {
|
||||
buf.push(3);
|
||||
d.f1 = function(i) {
|
||||
buf.push(4);
|
||||
return 4;
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
|
||||
if(Main.SHOW_KNOWN_BUGS) {
|
||||
var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
d.f1()(f3());
|
||||
d.f1(f2());
|
||||
assertEq('var end = begin();
|
||||
(a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
//var func = d.f1();
|
||||
//func(f3());
|
||||
|
||||
d.f1()(f3());
|
||||
d.f1(f2());
|
||||
end()', end());
|
||||
}
|
||||
|
||||
var end = begin();
|
||||
var _ = (a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
assertEq('var end = begin();
|
||||
var test = (a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
trace(buf);
|
||||
end()', end());
|
||||
|
||||
var end = begin2();
|
||||
var _ = (a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
assertEq('var end = begin2();
|
||||
var test = (a() + b()) >= 0 && (c() + d()) >= 0;
|
||||
trace(buf, a());
|
||||
end()', end());
|
||||
}
|
||||
|
||||
override function teardown() {
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
package tests;
|
||||
|
||||
class FloatCase extends TestCase {
|
||||
override function setup() {
|
||||
super.setup();
|
||||
|
||||
headerCode = "
|
||||
var nan = Math.NaN;
|
||||
var pinf = Math.POSITIVE_INFINITY;
|
||||
var ninf = Math.NEGATIVE_INFINITY;
|
||||
var fl:Float = 0.0;
|
||||
";
|
||||
}
|
||||
|
||||
override function run() {
|
||||
var nan = Math.NaN;
|
||||
var pinf = Math.POSITIVE_INFINITY;
|
||||
var ninf = Math.NEGATIVE_INFINITY;
|
||||
var fl:Float = 0.0;
|
||||
|
||||
assertEq("fl > nan", fl > nan);
|
||||
assertEq("fl < nan", fl < nan);
|
||||
assertEq("fl >= nan", fl >= nan);
|
||||
assertEq("fl <= nan", fl <= nan);
|
||||
assertEq("fl == nan", fl == nan);
|
||||
assertEq("fl != nan", fl != nan);
|
||||
|
||||
assertEq("nan > nan", nan > nan);
|
||||
assertEq("nan < nan", nan < nan);
|
||||
assertEq("nan >= nan", nan >= nan);
|
||||
assertEq("nan <= nan", nan <= nan);
|
||||
assertEq("nan == nan", nan == nan);
|
||||
assertEq("nan != nan", nan != nan);
|
||||
|
||||
assertEq("pinf > nan", pinf > nan);
|
||||
assertEq("pinf < nan", pinf < nan);
|
||||
assertEq("pinf >= nan", pinf >= nan);
|
||||
assertEq("pinf <= nan", pinf <= nan);
|
||||
assertEq("pinf == nan", pinf == nan);
|
||||
assertEq("pinf != nan", pinf != nan);
|
||||
|
||||
assertEq("ninf > nan", ninf > nan);
|
||||
assertEq("ninf < nan", ninf < nan);
|
||||
assertEq("ninf >= nan", ninf >= nan);
|
||||
assertEq("ninf <= nan", ninf <= nan);
|
||||
assertEq("ninf == nan", ninf == nan);
|
||||
assertEq("ninf != nan", ninf != nan);
|
||||
|
||||
assertEq("nan > fl", nan > fl);
|
||||
assertEq("nan < fl", nan < fl);
|
||||
assertEq("nan >= fl", nan >= fl);
|
||||
assertEq("nan <= fl", nan <= fl);
|
||||
assertEq("nan == fl", nan == fl);
|
||||
assertEq("nan != fl", nan != fl);
|
||||
|
||||
assertEq("nan > pinf", nan > pinf);
|
||||
assertEq("nan < pinf", nan < pinf);
|
||||
assertEq("nan >= pinf", nan >= pinf);
|
||||
assertEq("nan <= pinf", nan <= pinf);
|
||||
assertEq("nan == pinf", nan == pinf);
|
||||
assertEq("nan != pinf", nan != pinf);
|
||||
|
||||
assertEq("nan > ninf", nan > ninf);
|
||||
assertEq("nan < ninf", nan < ninf);
|
||||
assertEq("nan >= ninf", nan >= ninf);
|
||||
assertEq("nan <= ninf", nan <= ninf);
|
||||
assertEq("nan == ninf", nan == ninf);
|
||||
assertEq("nan != ninf", nan != ninf);
|
||||
}
|
||||
|
||||
override function teardown() {
|
||||
super.teardown();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package tests;
|
||||
|
||||
class IntIteratorCase extends TestCase {
|
||||
override function setup() {
|
||||
super.setup();
|
||||
}
|
||||
|
||||
override function getNewInterp() {
|
||||
var interp = super.getNewInterp();
|
||||
interp.variables.set("assertEq", Util.assertEq);
|
||||
interp.variables.set("IntIterator", IntIterator);
|
||||
return interp;
|
||||
}
|
||||
|
||||
override function run() {
|
||||
var ii = new IntIterator(0, 2);
|
||||
var line = 19;
|
||||
execute('
|
||||
var ii = new IntIterator(0, 2);
|
||||
assertEq(ii.hasNext(), ${ii.hasNext()}, "l${line++}");
|
||||
assertEq(ii.next(), ${ii.next()}, "l${line++}");
|
||||
assertEq(ii.hasNext(), ${ii.hasNext()}, "l${line++}");
|
||||
assertEq(ii.next(), ${ii.next()}, "l${line++}");
|
||||
assertEq(ii.hasNext(), ${ii.hasNext()}, "l${line++}");
|
||||
');
|
||||
|
||||
var ii = new IntIterator(0, 2);
|
||||
var r = [];
|
||||
for (i in ii)
|
||||
r.push(i);
|
||||
assertEq('
|
||||
var ii = new IntIterator(0, 2);
|
||||
var r = [];
|
||||
for (i in ii)
|
||||
r.push(i);
|
||||
r
|
||||
', r);
|
||||
|
||||
var ii = new IntIterator(0, 2);
|
||||
var r = [];
|
||||
for (i in ii)
|
||||
r.push(i);
|
||||
for (i in ii)
|
||||
r.push(i);
|
||||
assertEq('
|
||||
var ii = new IntIterator(0, 2);
|
||||
var r = [];
|
||||
for (i in ii)
|
||||
r.push(i);
|
||||
for (i in ii)
|
||||
r.push(i);
|
||||
r
|
||||
', r);
|
||||
}
|
||||
|
||||
override function teardown() {
|
||||
super.teardown();
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,15 @@ class MiscCase extends TestCase {
|
||||
assertEq("true", true);
|
||||
assertEq("false", false);
|
||||
assertEq("null", null);
|
||||
|
||||
if(Main.SHOW_KNOWN_BUGS) {
|
||||
// Redefining a function with the same name as a variable
|
||||
var a = 1; function a() { return 4; }
|
||||
assertEq("var a = 1; function a() { return 4; }; a", a);
|
||||
}
|
||||
|
||||
var a = 1; var a = 2;
|
||||
assertEq("var a = 1; var a = 2; a", a);
|
||||
}
|
||||
|
||||
override function teardown() {
|
||||
|
||||
+32
-28
@@ -1,41 +1,45 @@
|
||||
package tests;
|
||||
|
||||
@:access(hscript.Interp)
|
||||
@:access(hscript.Parser)
|
||||
class TestCase {
|
||||
public var interp:Interp;
|
||||
public var headerCode:String = "";
|
||||
public var tailCode:String = "";
|
||||
public var interp:Interp;
|
||||
public var headerCode:String = "";
|
||||
public var tailCode:String = "";
|
||||
|
||||
public var clearPrevious:Bool = true;
|
||||
public var clearPrevious:Bool = true;
|
||||
|
||||
public function new() {}
|
||||
public function new() {}
|
||||
|
||||
public function getNewInterp() {
|
||||
var interp = Util.getInterp();
|
||||
interp.errorHandler = Util.errorHandler;
|
||||
return interp;
|
||||
}
|
||||
public function getNewInterp() {
|
||||
var interp = Util.getInterp();
|
||||
interp.errorHandler = Util.errorHandler;
|
||||
return interp;
|
||||
}
|
||||
|
||||
public function setup() {
|
||||
interp = getNewInterp();
|
||||
}
|
||||
interp = getNewInterp();
|
||||
}
|
||||
public function run() {}
|
||||
public function teardown() {}
|
||||
|
||||
public function assertEq(script:String, expected:Dynamic, ?message:String) {
|
||||
if(message == null)
|
||||
message = script;
|
||||
Util.assertEq(execute(headerCode + script + tailCode), expected, message);
|
||||
}
|
||||
public function assertNeq(script:String, expected:Dynamic, ?message:String) {
|
||||
if(message == null)
|
||||
message = script;
|
||||
Util.assertNeq(execute(headerCode + script + tailCode), expected, message);
|
||||
}
|
||||
public function assertEq(script:String, expected:Dynamic, ?message:String) {
|
||||
if(message == null)
|
||||
message = script;
|
||||
Util.assertEq(execute(headerCode + script + tailCode), expected, message);
|
||||
}
|
||||
public function assertNeq(script:String, expected:Dynamic, ?message:String) {
|
||||
if(message == null)
|
||||
message = script;
|
||||
Util.assertNeq(execute(headerCode + script + tailCode), expected, message);
|
||||
}
|
||||
|
||||
public function execute(script:String) {
|
||||
if (clearPrevious)
|
||||
return getNewInterp().execute(Util.parse(headerCode + script + tailCode));
|
||||
else
|
||||
@:privateAccess return interp.exprReturn(Util.parse(headerCode + script + tailCode));
|
||||
}
|
||||
public function execute(script:String) {
|
||||
var interp = clearPrevious ? getNewInterp() : this.interp;
|
||||
var expr = Util.parse(headerCode + script + tailCode);
|
||||
if (clearPrevious)
|
||||
return interp.execute(expr);
|
||||
else
|
||||
return interp.exprReturn(expr);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user