87 lines
5.9 KiB
Java
87 lines
5.9 KiB
Java
// Compile the test sources first, then run this driver against the generated classes.
|
|
// Example:
|
|
// ./src/Main src/Testsuite/javaFiles/ArithmeticTest.java
|
|
// javac -cp out/javac:. TestDriver.java
|
|
// java -ea -cp .:out/javac TestDriver
|
|
|
|
public class TestDriver {
|
|
public static void main(String[] args)
|
|
{
|
|
EmptyTest empty = new EmptyTest();
|
|
empty.hashCode();
|
|
FieldsTest fields = new FieldsTest();
|
|
ConstructorTest constructor = new ConstructorTest(42);
|
|
ArithmeticTest arithmetic = new ArithmeticTest();
|
|
MultipleClassesTest multipleClasses = new MultipleClassesTest();
|
|
RecursionTest recursion = new RecursionTest(10);
|
|
MaliciousTest malicious = new MaliciousTest();
|
|
LoopTest loop = new LoopTest();
|
|
MethodOverloadTest overload = new MethodOverloadTest();
|
|
ShenaniganceTest shenanigance = new ShenaniganceTest();
|
|
AllSyntaxTest allSyntax = new AllSyntaxTest(0);
|
|
CombinedControlTest combined = new CombinedControlTest(6);
|
|
ExpressionTest expression = new ExpressionTest();
|
|
IfTest ifTest = new IfTest();
|
|
MultiClassTest multiClass = new MultiClassTest();
|
|
multiClass.hashCode();
|
|
SingletonTest singleton = new SingletonTest();
|
|
WhileTest whileTest = new WhileTest();
|
|
|
|
// constructing a basic class works
|
|
System.out.println("test empty non-null. Expected: non-null, Real: non-null");
|
|
// initializers (and default initializers to 0/null) work
|
|
System.out.println("test fields initializers. Expected: a==0 and b==42, Real: a=" + fields.a + " and b=" + fields.b);
|
|
// constructor parameters override initializers
|
|
System.out.println("test constructor a. Expected result: 42, Real result: " + constructor.a);
|
|
// basic arithmetics
|
|
System.out.println("test arithmetic basic(1,2,3). Expected: 2, Real: " + arithmetic.basic(1, 2, 3));
|
|
// we have boolean logic as well
|
|
System.out.println("test arithmetic logic(false,false,true). Expected: true, Real: " + arithmetic.logic(false, false, true));
|
|
// multiple classes within one file work. Referencing another classes fields/methods works.
|
|
System.out.println("test multiple classes field. Expected: 42, Real: " + multipleClasses.a.a);
|
|
// self-referencing classes work.
|
|
System.out.println("test nested child value. Expected: 5, Real: " + recursion.child.child.child.child.child.value);
|
|
// self-referencing methods work.
|
|
System.out.println("test recursion fibonacci(15). Expected: 610, Real: " + recursion.fibonacci(15));
|
|
System.out.println("test factorial(5). Expected: 120, Real: " + loop.factorial(5));
|
|
System.out.println("test weirdFor(). Expected: 5, Real: " + loop.weirdFor());
|
|
// methods with the same name but different parameters work
|
|
System.out.println("test MethodOverload(). Expected: 42, Real: " + overload.MethodOverload());
|
|
System.out.println("test MethodOverload(15). Expected: 57, Real: " + overload.MethodOverload(15));
|
|
// constructor overloading works, too.
|
|
System.out.println("test ctor overload default. Expected: 42, Real: " + (new ConstructorOverloadTest()).a);
|
|
System.out.println("test ctor overload with arg. Expected: 12, Real: " + (new ConstructorOverloadTest(12)).a);
|
|
// intentionally dodgy expressions work
|
|
for(int i = 0; i < 3; i++)
|
|
{
|
|
System.out.println("test cursedFormatting i=" + i + ". Expected: " + i + ", Real: " + malicious.cursedFormatting(i));
|
|
}
|
|
// other syntactic sugar
|
|
System.out.println("test shenanigance.testAssignment(). Expected: 5, Real: " + shenanigance.testAssignment());
|
|
System.out.println("test shenanigance.divEqual(). Expected: " + (234_343_000 / 4) + ", Real: " + shenanigance.divEqual());
|
|
// AllSyntaxTest tests
|
|
System.out.println("test AllSyntaxTest constructor state. Expected: x=0 and counter=1, Real: x=" + allSyntax.x + " and counter=" + allSyntax.counter);
|
|
System.out.println("test AllSyntaxTest.inc(). Expected: 1, Real: " + allSyntax.inc());
|
|
System.out.println("test AllSyntaxTest.inc(4). Expected: 5, Real: " + allSyntax.inc(4));
|
|
System.out.println("test AllSyntaxTest.sumUpTo(5). Expected: 15, Real: " + allSyntax.sumUpTo(5));
|
|
System.out.println("test AllSyntaxTest.predicate('a'). Expected: true, Real: " + allSyntax.predicate('a'));
|
|
System.out.println("test AllSyntaxTest.predicate('z'). Expected: false, Real: " + allSyntax.predicate('z'));
|
|
// CombinedControlTest tests
|
|
System.out.println("test CombinedControlTest.compute(). Expected: -3, Real: " + combined.compute());
|
|
// ExpressionTest tests
|
|
System.out.println("test ExpressionTest instance created. Expected: non-null, Real: non-null");
|
|
System.out.println("test ExpressionTest.shortCircuit(2, 1). Expected: true, Real: " + expression.shortCircuit(2, 1));
|
|
System.out.println("test ExpressionTest.shortCircuit(0, 1). Expected: false, Real: " + expression.shortCircuit(0, 1));
|
|
// IfTest tests
|
|
System.out.println("test IfTest instance created. Expected: non-null, Real: non-null");
|
|
System.out.println("test IfTest.ifElseTest(-1). Expected: false, Real: " + ifTest.ifElseTest(-1));
|
|
System.out.println("test IfTest.ifElseTest(0). Expected: true, Real: " + ifTest.ifElseTest(0));
|
|
System.out.println("test IfTest.ifElseTest(11). Expected: true, Real: " + ifTest.ifElseTest(11));
|
|
// MultiClassTest tests
|
|
System.out.println("test MultiClassTest instance created. Expected: non-null, Real: non-null");
|
|
// SingletonTest tests
|
|
System.out.println("test SingletonTest.getInstance(). Expected: true, Real: " + (singleton.getInstance() != null));
|
|
// WhileTest tests
|
|
System.out.println("test WhileTest.whileLoopTest(5). Expected: 15, Real: " + whileTest.whileLoopTest(5));
|
|
}
|
|
} |