@Test public void testTypeStrings() { assertEquals("any", BuiltinTypes.ANY_TYPE.getType().toString(false)); assertEquals("class any {\n any()}", BuiltinTypes.ANY_TYPE.getType().toString(true)); assertEquals("void", BuiltinTypes.VOID_TYPE.getType().toString(false)); assertEquals("class void {}", BuiltinTypes.VOID_TYPE.getType().toString(true)); assertEquals("boolean", BuiltinTypes.BOOLEAN_TYPE.getType().toString(false)); assertEquals( "class boolean extends any {\n boolean and(boolean)\n" + " boolean or(boolean)\n boolean xor(boolean)\n boolean not()\n" + " boolean equals(boolean)}", BuiltinTypes.BOOLEAN_TYPE.getType().toString(true)); assertEquals("int", BuiltinTypes.INTEGER_TYPE.getType().toString(false)); assertEquals( "class int extends any {\n int negate()\n int add(int)\n" + " int subtract(int)\n int multiply(int)\n int divide(int)\n" + " int modulo(int)\n boolean equals(int)\n boolean notEqual(int)\n" + " boolean greater(int)\n boolean greaterOrEqual(int)\n" + " boolean less(int)\n boolean lessOrEqual(int)}", BuiltinTypes.INTEGER_TYPE.getType().toString(true)); assertEquals("string", BuiltinTypes.STRING_TYPE.getType().toString(false)); assertEquals( "class string extends any {\n int length()\n" + " string concat(string)\n boolean equals(string)}", BuiltinTypes.STRING_TYPE.getType().toString(true)); assertEquals("maybe", BuiltinTypes.MAYBE_TYPE.getType().getName()); assertEquals("maybe<T>", BuiltinTypes.MAYBE_TYPE.getType().toString(false)); assertEquals( "class maybe<T> extends any {\n boolean isDefined()\n" + " T value()\n maybe(T)\n maybe()}", BuiltinTypes.MAYBE_TYPE.getType().toString(true)); }
@Test public void testTypeProperties() { assertEquals("any", BuiltinTypes.ANY_TYPE.getName()); assertNull(BuiltinTypes.ANY_TYPE.getSupertype()); assertEquals("void", BuiltinTypes.VOID_TYPE.getName()); if (BuiltinTypes.VOID_TYPE.getSupertype() != null) { System.err.println("It is " + BuiltinTypes.VOID_TYPE.getSupertype()); } assertNull(BuiltinTypes.VOID_TYPE.getSupertype()); assertEquals("int", BuiltinTypes.INTEGER_TYPE.getName()); assertEquals(BuiltinTypes.INTEGER_TYPE.getSupertype(), BuiltinTypes.ANY_TYPE.getType()); assertEquals("boolean", BuiltinTypes.BOOLEAN_TYPE.getName()); assertEquals(BuiltinTypes.BOOLEAN_TYPE.getSupertype(), BuiltinTypes.ANY_TYPE.getType()); assertEquals("string", BuiltinTypes.STRING_TYPE.getName()); assertEquals(BuiltinTypes.STRING_TYPE.getSupertype(), BuiltinTypes.ANY_TYPE.getType()); }