mirror of
https://github.com/JonathanFleischmann/CompilerULTIMATE.git
synced 2024-12-26 17:58:03 +00:00
added tests for i++ etc
This commit is contained in:
parent
cc674625b0
commit
93279743f2
@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
|
||||
import static HelpClasses.TestFileTester.run;
|
||||
|
||||
|
||||
class E2ETests {
|
||||
class AllE2ETests {
|
||||
|
||||
// @Test
|
||||
// void testPublicClass() {
|
@ -54,6 +54,10 @@ public class BytecodeTestUtil {
|
||||
return clazz.getDeclaredConstructors()[index].getParameterCount();
|
||||
}
|
||||
|
||||
public int getConstructorParameterCount(Class<?>[] parameterTypes) throws Exception {
|
||||
return clazz.getDeclaredConstructor(parameterTypes).getParameterCount();
|
||||
}
|
||||
|
||||
public List<String> getConstructorParameterTypes(int index) {
|
||||
List<String> parameterTypes = new ArrayList<>();
|
||||
for (Class<?> parameterType : clazz.getDeclaredConstructors()[index].getParameterTypes()) {
|
||||
|
@ -27,14 +27,22 @@ public class ByteCode_ClassObjects {
|
||||
|
||||
@Test
|
||||
public void testConstructor1() {
|
||||
Assertions.assertEquals("ClassObjects", util.getConstructorNames().get(0));
|
||||
Assertions.assertEquals(0, util.getConstructorParameterCount(0));
|
||||
Assertions.assertTrue(util.getConstructorNames().contains("ClassObjects"));
|
||||
try {
|
||||
Assertions.assertEquals(0, util.getConstructorParameterCount(new Class[]{}));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConstructor2() {
|
||||
Assertions.assertEquals("ClassObjects", util.getConstructorNames().get(1));
|
||||
Assertions.assertEquals(1, util.getConstructorParameterCount(1));
|
||||
Assertions.assertTrue(util.getConstructorNames().contains("ClassObjects"));
|
||||
try {
|
||||
Assertions.assertEquals(1, util.getConstructorParameterCount(new Class[]{int.class}));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -67,19 +67,21 @@ public class ByteCode_For {
|
||||
|
||||
@Test
|
||||
public void testFieldCount() {
|
||||
Assertions.assertEquals(2, util.getFieldCount());
|
||||
Assertions.assertEquals(3, util.getFieldCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFieldNames() {
|
||||
Assertions.assertTrue(util.getFieldNames().contains("repetitionsFirstFor"));
|
||||
Assertions.assertTrue(util.getFieldNames().contains("repetitionsSecondFor"));
|
||||
Assertions.assertTrue(util.getFieldNames().contains("repetitionsThirdFor"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFieldTypes() {
|
||||
Assertions.assertEquals("int", util.getFieldTypes().get(0));
|
||||
Assertions.assertEquals("int", util.getFieldTypes().get(1));
|
||||
Assertions.assertEquals("int", util.getFieldTypes().get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -87,6 +89,7 @@ public class ByteCode_For {
|
||||
try {
|
||||
Assertions.assertEquals(0, util.getFieldValue("repetitionsFirstFor"));
|
||||
Assertions.assertEquals(0, util.getFieldValue("repetitionsSecondFor"));
|
||||
Assertions.assertEquals(0, util.getFieldValue("repetitionsThirdFor"));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
@ -99,6 +102,7 @@ public class ByteCode_For {
|
||||
Assertions.assertEquals(instance.getClass().getName(), "For");
|
||||
Assertions.assertEquals(0, util.getFieldValueOfObject(instance, "repetitionsFirstFor"));
|
||||
Assertions.assertEquals(0, util.getFieldValueOfObject(instance, "repetitionsSecondFor"));
|
||||
Assertions.assertEquals(0, util.getFieldValueOfObject(instance, "repetitionsThirdFor"));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
@ -109,9 +113,11 @@ public class ByteCode_For {
|
||||
try {
|
||||
Assertions.assertEquals(0, util.getFieldValue("repetitionsFirstFor"));
|
||||
Assertions.assertEquals(0, util.getFieldValue("repetitionsSecondFor"));
|
||||
Assertions.assertEquals(0, util.getFieldValue("repetitionsThirdFor"));
|
||||
util.invokeMethod("testFor", new Class<?>[]{}, new Object[]{});
|
||||
Assertions.assertEquals(45, util.getFieldValue("repetitionsFirstFor"));
|
||||
Assertions.assertEquals(45, util.getFieldValue("repetitionsSecondFor"));
|
||||
Assertions.assertEquals(10, util.getFieldValue("repetitionsThirdFor"));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
|
127
src/test/java/E2ETests/Features/ByteCode_InDeCrement.java
Normal file
127
src/test/java/E2ETests/Features/ByteCode_InDeCrement.java
Normal file
@ -0,0 +1,127 @@
|
||||
package E2ETests.Features;
|
||||
|
||||
import E2ETests.BytecodeTestUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ByteCode_InDeCrement {
|
||||
|
||||
private BytecodeTestUtil util;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
try {
|
||||
util = new BytecodeTestUtil(List.of("src/test/testFiles/E2EFeatures/InDeCrement.java"), "InDeCrement");
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConstructorCount() {
|
||||
Assertions.assertEquals(1, util.getConstructorCount());
|
||||
// default constructor
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDefaultConstructor() {
|
||||
Assertions.assertEquals("InDeCrement", util.getConstructorNames().get(0));
|
||||
Assertions.assertEquals(0, util.getConstructorParameterCount(0));
|
||||
try {
|
||||
Assertions.assertEquals("InDeCrement", util.invokeConstructor(new Class<?>[]{}, null).getClass().getName());
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMethodCount() {
|
||||
Assertions.assertEquals(4, util.getMethodCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMethodNames() {
|
||||
Assertions.assertTrue(util.getMethodNames().contains("PP"));
|
||||
Assertions.assertTrue(util.getMethodNames().contains("MM"));
|
||||
Assertions.assertTrue(util.getMethodNames().contains("PE"));
|
||||
Assertions.assertTrue(util.getMethodNames().contains("ME"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMethodReturnType() {
|
||||
try {
|
||||
Assertions.assertEquals("int", util.getMethodReturnType("PP", new Class<?>[]{int.class}));
|
||||
Assertions.assertEquals("int", util.getMethodReturnType("MM", new Class<?>[]{int.class}));
|
||||
Assertions.assertEquals("int", util.getMethodReturnType("PE", new Class<?>[]{int.class, int.class}));
|
||||
Assertions.assertEquals("int", util.getMethodReturnType("ME", new Class<?>[]{int.class, int.class}));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMethodParameters() {
|
||||
try {
|
||||
Assertions.assertEquals(1, util.getMethodParameterCount("PP", new Class<?>[]{int.class}));
|
||||
Assertions.assertEquals(1, util.getMethodParameterCount("MM", new Class<?>[]{int.class}));
|
||||
Assertions.assertEquals(2, util.getMethodParameterCount("PE", new Class<?>[]{int.class, int.class}));
|
||||
Assertions.assertEquals(2, util.getMethodParameterCount("ME", new Class<?>[]{int.class, int.class}));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFieldCount() {
|
||||
Assertions.assertEquals(0, util.getFieldCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInvokeDefaultConstructor() {
|
||||
try {
|
||||
Object instance = util.invokeConstructor(new Class<?>[]{}, null);
|
||||
Assertions.assertEquals(instance.getClass().getName(), "InDeCrement");
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPP() {
|
||||
try {
|
||||
Assertions.assertEquals(13, util.invokeMethod("PP", new Class<?>[]{int.class}, 12));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMM() {
|
||||
try {
|
||||
Assertions.assertEquals(8, util.invokeMethod("MM", new Class<?>[]{int.class}, 9));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPE() {
|
||||
try {
|
||||
Assertions.assertEquals(15, util.invokeMethod("PE", new Class<?>[]{int.class, int.class}, 10, 5));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testME() {
|
||||
try {
|
||||
Assertions.assertEquals(7, util.invokeMethod("ME", new Class<?>[]{int.class, int.class}, 9, 2));
|
||||
} catch (Exception e) {
|
||||
Assertions.fail();
|
||||
}
|
||||
}
|
||||
}
|
@ -105,6 +105,48 @@ public class AST_For {
|
||||
new Block(
|
||||
List.of()
|
||||
)
|
||||
),
|
||||
new Declaration(
|
||||
"k",
|
||||
Type.INT
|
||||
),
|
||||
new For(
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k"
|
||||
),
|
||||
new IntLiteral(0)
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k"
|
||||
),
|
||||
Operator.LT,
|
||||
new IntLiteral(10)
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k"
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k"
|
||||
),
|
||||
Operator.ADD,
|
||||
new IntLiteral(1)
|
||||
)
|
||||
),
|
||||
new Block(
|
||||
List.of()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
154
src/test/java/FeatureTestResources/AST/AST_InDeCrement.java
Normal file
154
src/test/java/FeatureTestResources/AST/AST_InDeCrement.java
Normal file
@ -0,0 +1,154 @@
|
||||
package FeatureTestResources.AST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.ast.records.Class;
|
||||
import de.maishai.ast.records.*;
|
||||
import de.maishai.typedast.Type;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class AST_InDeCrement {
|
||||
public static Program get() {
|
||||
return new Program(
|
||||
List.of(
|
||||
new Class(
|
||||
"InDeCrement",
|
||||
null,
|
||||
List.of(),
|
||||
List.of(),
|
||||
List.of(
|
||||
new Constructor(
|
||||
"InDeCrement",
|
||||
List.of(),
|
||||
new Block(
|
||||
List.of(
|
||||
new Declaration(
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a"
|
||||
),
|
||||
new IntLiteral(5)
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a"
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a"
|
||||
),
|
||||
Operator.ADD,
|
||||
new IntLiteral(1)
|
||||
)
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a"
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a"
|
||||
),
|
||||
Operator.ADD,
|
||||
new IntLiteral(1)
|
||||
)
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a"
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a"
|
||||
),
|
||||
Operator.SUB,
|
||||
new IntLiteral(1)
|
||||
)
|
||||
),
|
||||
new Declaration(
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b"
|
||||
),
|
||||
new IntLiteral(7)
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b"
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b"
|
||||
),
|
||||
Operator.ADD,
|
||||
new IntLiteral(1)
|
||||
)
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b"
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b"
|
||||
),
|
||||
Operator.SUB,
|
||||
new IntLiteral(1)
|
||||
)
|
||||
),
|
||||
new Assignment(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b"
|
||||
),
|
||||
new Binary(
|
||||
new FieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b"
|
||||
),
|
||||
Operator.SUB,
|
||||
new IntLiteral(1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
@ -28,6 +28,10 @@ public class TypedAST_For {
|
||||
new TypedLocalVariable(
|
||||
"j",
|
||||
Type.INT
|
||||
),
|
||||
new TypedLocalVariable(
|
||||
"k",
|
||||
Type.INT
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
@ -146,6 +150,64 @@ public class TypedAST_For {
|
||||
Type.VOID
|
||||
),
|
||||
Type.VOID
|
||||
),
|
||||
new TypedFor(
|
||||
new TypedAssignment(
|
||||
new TypedIntLiteral(
|
||||
0,
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k",
|
||||
Type.INT
|
||||
),
|
||||
Operator.LT,
|
||||
new TypedIntLiteral(
|
||||
10,
|
||||
Type.INT
|
||||
),
|
||||
Type.BOOL
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k",
|
||||
Type.INT
|
||||
),
|
||||
Operator.ADD,
|
||||
new TypedIntLiteral(
|
||||
1,
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"k",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedBlock(
|
||||
List.of(),
|
||||
List.of(),
|
||||
Type.VOID
|
||||
),
|
||||
Type.VOID
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -0,0 +1,214 @@
|
||||
package FeatureTestResources.TypedAST;
|
||||
|
||||
import de.maishai.ast.Operator;
|
||||
import de.maishai.typedast.Type;
|
||||
import de.maishai.typedast.typedclass.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TypedAST_InDeCrement {
|
||||
public static TypedProgram get() {
|
||||
return new TypedProgram(
|
||||
List.of(
|
||||
new TypedClass(
|
||||
"InDeCrement",
|
||||
List.of(),
|
||||
List.of(),
|
||||
List.of(
|
||||
new TypedConstructor(
|
||||
"InDeCrement",
|
||||
List.of(),
|
||||
new TypedBlock(
|
||||
List.of(
|
||||
new TypedLocalVariable(
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
new TypedLocalVariable(
|
||||
"b",
|
||||
Type.INT
|
||||
)
|
||||
),
|
||||
List.of(
|
||||
new TypedAssignment(
|
||||
new TypedIntLiteral(
|
||||
5,
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
Operator.ADD,
|
||||
new TypedIntLiteral(
|
||||
1,
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
Operator.ADD,
|
||||
new TypedIntLiteral(
|
||||
1,
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
Operator.SUB,
|
||||
new TypedIntLiteral(
|
||||
1,
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"a",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedIntLiteral(
|
||||
7,
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
Operator.ADD,
|
||||
new TypedIntLiteral(
|
||||
1,
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
Operator.SUB,
|
||||
new TypedIntLiteral(
|
||||
1,
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedAssignment(
|
||||
new TypedBinary(
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
Operator.SUB,
|
||||
new TypedIntLiteral(
|
||||
1,
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
),
|
||||
new TypedFieldVarAccess(
|
||||
false,
|
||||
null,
|
||||
"b",
|
||||
Type.INT
|
||||
),
|
||||
Type.INT
|
||||
)
|
||||
|
||||
),
|
||||
Type.VOID
|
||||
),
|
||||
Type.VOID,
|
||||
List.of()
|
||||
)
|
||||
),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
Type.REFERENCE("InDeCrement")
|
||||
)
|
||||
),
|
||||
null
|
||||
);
|
||||
}
|
||||
}
|
@ -87,6 +87,12 @@ class ScannerParserTests {
|
||||
assertEquals(AST_If.get(), resultAst);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInDeCrement() {
|
||||
Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/ASTandTypedASTFeatures/InDeCrement.java"));
|
||||
assertEquals(AST_InDeCrement.get(), resultAst);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testLogicExpr() {
|
||||
Program resultAst = Compiler.generateASTFromFiles(List.of("src/test/testFiles/ASTandTypedASTFeatures/LogicExpr.java"));
|
||||
|
@ -87,6 +87,12 @@ class TypingTests {
|
||||
assertEquals(TypedAST_If.get(), resultTypedAst);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInDeCrement() {
|
||||
TypedProgram resultTypedAst = Compiler.generateTypedASTFromAst(AST_InDeCrement.get());
|
||||
assertEquals(TypedAST_InDeCrement.get(), resultTypedAst);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testLogicExpr() {
|
||||
TypedProgram resultTypedAst = Compiler.generateTypedASTFromAst(AST_LogicExpr.get());
|
||||
|
@ -5,5 +5,7 @@ public class For {
|
||||
int j;
|
||||
for (j = 0; j < 10; j += 1) {
|
||||
}
|
||||
for (int k = 0; k < 10; k++) {
|
||||
}
|
||||
}
|
||||
}
|
12
src/test/testFiles/ASTandTypedASTFeatures/InDeCrement.java
Normal file
12
src/test/testFiles/ASTandTypedASTFeatures/InDeCrement.java
Normal file
@ -0,0 +1,12 @@
|
||||
public class InDeCrement {
|
||||
public InDeCrement() {
|
||||
int a = 5;
|
||||
a++;
|
||||
a++;
|
||||
a--;
|
||||
int b = 7;
|
||||
b += 1;
|
||||
b -= 1;
|
||||
b -= 1;
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
public class For {
|
||||
int repetitionsFirstFor;
|
||||
int repetitionsSecondFor;
|
||||
int repetitionsThirdFor;
|
||||
|
||||
public void testFor() {
|
||||
this.repetitionsFirstFor = 0;
|
||||
@ -12,5 +13,9 @@ public class For {
|
||||
for (j = 0; j < 10; j += 1) {
|
||||
this.repetitionsSecondFor = this.repetitionsSecondFor + j;
|
||||
}
|
||||
this.repetitionsThirdFor = 0;
|
||||
for (int k = 0; k < 5; k++) {
|
||||
this.repetitionsThirdFor = this.repetitionsThirdFor + k;
|
||||
}
|
||||
}
|
||||
}
|
21
src/test/testFiles/E2EFeatures/InDeCrement.java
Normal file
21
src/test/testFiles/E2EFeatures/InDeCrement.java
Normal file
@ -0,0 +1,21 @@
|
||||
public class InDeCrement {
|
||||
public int PP(int a) {
|
||||
a++;
|
||||
return a;
|
||||
}
|
||||
|
||||
public int MM(int a) {
|
||||
a--;
|
||||
return a;
|
||||
}
|
||||
|
||||
public int PE(int a, int b) {
|
||||
a += b ;
|
||||
return a;
|
||||
}
|
||||
|
||||
public int ME(int a, int b) {
|
||||
a -= b;
|
||||
return a;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user