package nl.tudelft.simulation.dsol.interpreter; import static org.junit.Assert.assertEquals; import org.junit.Test; /** *
* copyright (c) 2002-2019 Delft University of Technology.
* BSD-style license. See DSOL License.
* @author Peter Jacobs
* @author Alexander Verbraeck
*/
public class SupSubTest
{
/**
* Call a number of methods and super-methods when executed and when interpreted.
*/
@Test
public void testInterpretation()
{
System.out.println("SupSubTest");
// Interpreter.DEBUG = true;
SupMethods sup = new SupMethods();
SubMethods sub = new SubMethods();
// integers
assertEquals("Sub.iSub10 (e)", sub.iSub10(), 10);
assertEquals("Sup.iSub10 (e)", sup.iSub10(), 10);
assertEquals("Sub.iOver5 (e)", sub.iOver5(), 10);
assertEquals("Sup.iOver5 (e)", sup.iOver5(), 5);
assertEquals("Sup.iPlus4 (e)", sup.iPlus4(), 7);
assertEquals("Sup.iPl123 (e)", sup.iPl123(0), 6);
assertEquals("Sub.iSub10 (i)", (int) Interpreter.invoke(sub, "iSub10", new Object[] {}, new Class>[] {}), 10);
assertEquals("Sup.iSub10 (i)", (int) Interpreter.invoke(sup, "iSub10", new Object[] {}, new Class>[] {}), 10);
assertEquals("Sub.iOver5 (i)", (int) Interpreter.invoke(sub, "iOver5", new Object[] {}, new Class>[] {}), 10);
assertEquals("Sup.iOver5 (i)", (int) Interpreter.invoke(sup, "iOver5", new Object[] {}, new Class>[] {}), 5);
assertEquals("Sup.iPlus4 (i)", (int) Interpreter.invoke(sup, "iPlus4", new Object[] {}, new Class>[] {}), 7);
assertEquals("Sup.iPl123 (i)",
(int) Interpreter.invoke(sup, "iPl123", new Object[] {Integer.valueOf(0)}, new Class>[] {int.class}), 6);
// TODO strings still contains an error
/*-
assertEquals("Sub.sSubABC (e)", sub.sSubABC(), "ABC");
assertEquals("Sup.sSubABC (e)", sup.sSubABC(), "ABC");
assertEquals("Sup.sPlusDEF (e)", sup.sPlusDEF("ABC"), "ABCDEFABC");
assertEquals("Sub.sSubABC (i)", Interpreter.invoke(sub, "sSubABC", new Object[]{}, new Class>[]{}), "ABC");
assertEquals("Sup.sSubABC (i)", Interpreter.invoke(sup, "sSubABC", new Object[]{}, new Class>[]{}), "ABC");
assertEquals("Sup.splusDEF (i)",
Interpreter.invoke(sup, "sPlusDEF", new Object[]{"ABC"}, new Class>[]{String.class}), "ABCDEFABC");
*/
// new StringBuilder().append("abc");
}
}