aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-21 08:13:45 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-21 08:13:45 +0000
commitfe113241971cfe87b163a9eb4dc51e9d5e32410e (patch)
treef9e435c44020ffbbb9231df79719a4d407ea8000 /src/test/java/org/zwobble/couscous/tests/frontends
parent22f5765125eea28ae158bab4d9e96ae6472b73d4 (diff)
Move standard type definitions into a Types class
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/frontends')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java39
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/FreeVariablesTests.java9
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java28
3 files changed, 35 insertions, 41 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java
index cc36c20..3ad255b 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/ExpressionReadingTests.java
@@ -3,10 +3,7 @@ package org.zwobble.couscous.tests.frontends.java;
import org.junit.Test;
import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.types.ScalarType;
-import org.zwobble.couscous.values.BooleanValue;
-import org.zwobble.couscous.values.IntegerValue;
-import org.zwobble.couscous.values.ObjectValues;
-import org.zwobble.couscous.values.StringValue;
+import org.zwobble.couscous.types.Types;
import java.util.List;
@@ -38,7 +35,7 @@ public class ExpressionReadingTests {
assertEquals(literal(false), readBooleanExpression("false"));
assertEquals(literal(42), readIntExpression("42"));
assertEquals(literal('h'), readIntExpression("'h'"));
- assertEquals(literal(StringValue.REF), readExpression("Class<String>", "String.class"));
+ assertEquals(literal(Types.STRING), readExpression("Class<String>", "String.class"));
}
@Test
@@ -51,7 +48,7 @@ public class ExpressionReadingTests {
@Test
public void canReadCasts() {
assertEquals(
- cast(literal(42), ObjectValues.OBJECT),
+ cast(literal(42), Types.OBJECT),
readExpression("Object", "(Object)42"));
}
@Test
@@ -96,7 +93,7 @@ public class ExpressionReadingTests {
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"name",
- StringValue.REF),
+ Types.STRING),
returnNode.getValue());
}
@@ -122,21 +119,21 @@ public class ExpressionReadingTests {
fieldAccess(
ScalarType.of("com.example.Example"),
"name",
- StringValue.REF),
+ Types.STRING),
returnNode.getValue());
}
@Test
public void canReadInstanceMethodCalls() {
assertEquals(
- methodCall(literal("hello"), "startsWith", list(literal("h")), BooleanValue.REF),
+ methodCall(literal("hello"), "startsWith", list(literal("h")), Types.BOOLEAN),
readBooleanExpression("\"hello\".startsWith(\"h\")"));
List<StatementNode> statements = readStatements("int", "Object x = 1; return x.hashCode();");
LocalVariableDeclarationNode declaration = (LocalVariableDeclarationNode) statements.get(0);
ReturnNode returnNode = (ReturnNode) statements.get(1);
assertEquals(
- methodCall(reference(declaration), "hashCode", list(), IntegerValue.REF),
+ methodCall(reference(declaration), "hashCode", list(), Types.INT),
returnNode.getValue());
}
@@ -153,7 +150,7 @@ public class ExpressionReadingTests {
ThisReferenceNode.thisReference(ScalarType.of("com.example.Example")),
"loop",
list(),
- StringValue.REF),
+ Types.STRING),
returnNode.getValue());
}
@@ -164,7 +161,7 @@ public class ExpressionReadingTests {
ScalarType.of("java.lang.Integer"),
"parseInt",
list(literal("42")),
- IntegerValue.REF),
+ Types.INT),
readIntExpression("Integer.parseInt(\"42\")"));
}
@@ -181,7 +178,7 @@ public class ExpressionReadingTests {
ScalarType.of("com.example.Example"),
"loop",
list(),
- StringValue.REF),
+ Types.STRING),
returnNode.getValue());
}
@@ -198,7 +195,7 @@ public class ExpressionReadingTests {
"String",
"java.util.Objects.toString(42)");
assertEquals(
- typeCoercion(literal(42), ObjectValues.OBJECT),
+ typeCoercion(literal(42), Types.OBJECT),
expression.getArguments().get(0));
}
@@ -285,14 +282,14 @@ public class ExpressionReadingTests {
public void equalityOperatorDoesNotUnboxIfBothOperandsAreBoxed() {
assertEquals(
same(
- typeCoercion(constructorCall(ObjectValues.BOXED_INT, list(literal(1))), ObjectValues.OBJECT),
- typeCoercion(constructorCall(ObjectValues.BOXED_INT, list(literal(2))), ObjectValues.OBJECT)),
+ typeCoercion(constructorCall(Types.BOXED_INT, list(literal(1))), Types.OBJECT),
+ typeCoercion(constructorCall(Types.BOXED_INT, list(literal(2))), Types.OBJECT)),
readBooleanExpression("new Integer(1) == new Integer(2)"));
assertEquals(
not(same(
- typeCoercion(constructorCall(ObjectValues.BOXED_INT, list(literal(1))), ObjectValues.OBJECT),
- typeCoercion(constructorCall(ObjectValues.BOXED_INT, list(literal(2))), ObjectValues.OBJECT))),
+ typeCoercion(constructorCall(Types.BOXED_INT, list(literal(1))), Types.OBJECT),
+ typeCoercion(constructorCall(Types.BOXED_INT, list(literal(2))), Types.OBJECT))),
readBooleanExpression("new Integer(1) != new Integer(2)"));
}
@@ -326,7 +323,7 @@ public class ExpressionReadingTests {
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"name",
- StringValue.REF),
+ Types.STRING),
literal("blah")),
returnNode.getValue());
}
@@ -345,8 +342,8 @@ public class ExpressionReadingTests {
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"value",
- ObjectValues.OBJECT),
- typeCoercion(literal(4), ObjectValues.OBJECT)),
+ Types.OBJECT),
+ typeCoercion(literal(4), Types.OBJECT)),
returnNode.getValue());
}
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/FreeVariablesTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/FreeVariablesTests.java
index 84e9508..8bcf38d 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/FreeVariablesTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/FreeVariablesTests.java
@@ -4,11 +4,10 @@ import org.junit.Test;
import org.zwobble.couscous.ast.ReferenceNode;
import org.zwobble.couscous.ast.VariableDeclaration;
import org.zwobble.couscous.tests.TestIds;
-import org.zwobble.couscous.values.StringValue;
+import org.zwobble.couscous.types.Types;
import java.util.List;
-import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static org.junit.Assert.assertEquals;
import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg;
@@ -22,14 +21,14 @@ import static org.zwobble.couscous.util.ExtraLists.list;
public class FreeVariablesTests {
@Test
public void referenceIsFreeIfThereIsNoAssociatedDeclaration() {
- VariableDeclaration declaration = var(TestIds.ANY_ID, "[name]", StringValue.REF);
+ VariableDeclaration declaration = var(TestIds.ANY_ID, "[name]", Types.STRING);
List<ReferenceNode> freeVariables = findFreeVariables(list(reference(declaration)));
assertEquals(list(reference(declaration)), freeVariables);
}
@Test
public void referenceIsNotFreeIfIsDeclaredAsArgument() {
- VariableDeclaration declaration = var(TestIds.ANY_ID, "[name]", StringValue.REF);
+ VariableDeclaration declaration = var(TestIds.ANY_ID, "[name]", Types.STRING);
List<ReferenceNode> freeVariables = findFreeVariables(
list(formalArg(declaration), reference(declaration)));
assertEquals(emptyList(), freeVariables);
@@ -37,7 +36,7 @@ public class FreeVariablesTests {
@Test
public void referenceIsNotFreeIfIsReferenceToLocalDefinedInBody() {
- VariableDeclaration declaration = var(TestIds.ANY_ID, "[name]", StringValue.REF);
+ VariableDeclaration declaration = var(TestIds.ANY_ID, "[name]", Types.STRING);
List<ReferenceNode> freeVariables = findFreeVariables(
list(
localVariableDeclaration(declaration, literal("[value]")),
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
index c3b83a0..97b8b66 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java
@@ -3,9 +3,7 @@ package org.zwobble.couscous.tests.frontends.java;
import org.junit.Test;
import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.types.ScalarType;
-import org.zwobble.couscous.values.IntegerValue;
-import org.zwobble.couscous.values.ObjectValues;
-import org.zwobble.couscous.values.StringValue;
+import org.zwobble.couscous.types.Types;
import java.util.List;
@@ -41,7 +39,7 @@ public class JavaReaderTests {
LocalVariableDeclarationNode declaration = (LocalVariableDeclarationNode) statements.get(0);
assertEquals("x", declaration.getName());
- assertEquals(IntegerValue.REF, declaration.getType());
+ assertEquals(Types.INT, declaration.getType());
assertEquals(literal(4), declaration.getInitialValue());
ReturnNode returnNode = (ReturnNode) statements.get(1);
assertEquals(
@@ -54,7 +52,7 @@ public class JavaReaderTests {
StatementNode statement = readStatement("void", "Object x = 4;");
LocalVariableDeclarationNode declaration = (LocalVariableDeclarationNode) statement;
- assertEquals(typeCoercion(literal(4), ObjectValues.OBJECT), declaration.getInitialValue());
+ assertEquals(typeCoercion(literal(4), Types.OBJECT), declaration.getInitialValue());
}
@Test
@@ -65,7 +63,7 @@ public class JavaReaderTests {
"}");
MethodNode method = classNode.getMethods().get(0);
- assertEquals(IntegerValue.REF, method.getReturnType());
+ assertEquals(Types.INT, method.getReturnType());
}
@Test
@@ -93,7 +91,7 @@ public class JavaReaderTests {
ScalarType.of("java.lang.Integer"),
"parseInt",
list(literal("42")),
- IntegerValue.REF)),
+ Types.INT)),
readStatement("void", "Integer.parseInt(\"42\");"));
}
@@ -182,7 +180,7 @@ public class JavaReaderTests {
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"name",
- StringValue.REF),
+ Types.STRING),
literal("Flaws"))),
constructor.getBody());
}
@@ -205,13 +203,13 @@ public class JavaReaderTests {
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"year",
- IntegerValue.REF),
+ Types.INT),
literal(2013)),
assignStatement(
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"name",
- StringValue.REF),
+ Types.STRING),
literal("Flaws"))),
constructor.getBody());
}
@@ -233,13 +231,13 @@ public class JavaReaderTests {
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"year",
- IntegerValue.REF),
+ Types.INT),
literal(2013)),
assignStatement(
fieldAccess(
thisReference(ScalarType.of("com.example.Example")),
"name",
- StringValue.REF),
+ Types.STRING),
literal("Flaws"))),
constructor.getBody());
}
@@ -259,7 +257,7 @@ public class JavaReaderTests {
fieldAccess(
ScalarType.of("com.example.Example"),
"name",
- StringValue.REF),
+ Types.STRING),
literal("Flaws"))),
staticConstructor);
}
@@ -276,7 +274,7 @@ public class JavaReaderTests {
fieldAccess(
ScalarType.of("com.example.Example"),
"name",
- StringValue.REF),
+ Types.STRING),
literal("Flaws"))),
staticConstructor);
}
@@ -362,7 +360,7 @@ public class JavaReaderTests {
MethodNode expectedMethod = MethodNode.builder("get")
.isAbstract()
- .returns(IntegerValue.REF)
+ .returns(Types.INT)
.build();
assertEquals(list(expectedMethod), classNode.getMethods());
}