package org.reldb.rel.tests.external; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.reldb.rel.tests.BaseOfTest; public class TestExternal08 extends BaseOfTest { @BeforeClass public static void testExternal08() { testEquals("true", "BEGIN; SET VerboseExternalCompilation On; END; true"); String src = "BEGIN;" + "TYPE blah Java FOREIGN\n" + "private int n;\n" + "public blah(Generator generator) {super(generator);};\n" + "public int compareTo(Value v) {\n" + " return new Long((long)n).compareTo(v.longValue());\n" + "}\n" + "public blah(Generator generator, ValueInteger n) {\n" + " super(generator);\n" + " this.n = (int)n.longValue();\n" + "}\n" + "public Value getDefaultValue(Generator generator) {\n" + " return new blah(generator, ValueInteger.select(generator, 0));\n" + "}\n" + "public static ValueInteger N2(Generator generator, blah v) {\n" + " return ValueInteger.select(generator, v.n);\n" + "}\n" + "public static ValueInteger N5(Generator generator) {\n" + " return ValueInteger.select(generator, 0);\n" + "}\n" + "public static ValueInteger N4(Generator generator, blah v, ValueInteger x) {\n" + " return ValueInteger.select(generator, v.n + x.longValue());\n" + "}\n" + "public ValueInteger N3(Generator generator, ValueInteger x) {\n" + " return ValueInteger.select(generator, n + x.longValue());\n" + "}\n" + "public ValueInteger N1(Generator generator) {\n" + " return ValueInteger.select(generator, n);\n" + "}\n" + "END TYPE;\n" + "END;" + "true"; String expected = "true"; testEquals(expected, src); src = "BEGIN; VAR test BASE RELATION {x blah} KEY {x}; END; test"; expected = "RELATION {x blah} {\n}"; testEquals(expected, src); } @Test public void testExternal09() { String src = "BEGIN; OUTPUT blah(3); END; true"; String expected = "true"; testEquals(expected, src); } @Test public void testExternal11() { String src = "THE_N3(blah(2), 5)"; String expected = "7"; testEquals(expected, src); } @Test public void testExternal12() { String src = "N4(blah(2), 5)"; String expected = "7"; testEquals(expected, src); } @AfterClass public static void testExternal13() { String src = "BEGIN;" + "DROP VAR test;" + "DROP TYPE blah;" + "END; true"; String expected = "true"; testEquals(expected, src); } }