package nl.tudelft.simulation.dsol.interpreter; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; /** *

* (c) copyright 2002-2014 Delft University of Technology.
* BSD-style license. See DSOL License.
* @author Peter Jacobs * @author Alexander Verbraeck * @version Aug 31, 2014 */ public class ObjectTest { /** * Compare a number of methods when executed and when interpreted. */ @Test public void testInterpretation() { System.out.println("ObjectTest"); String eabc = new String("ABC"); String iabc = new String("ABC"); ObjectMethods e1 = new ObjectMethods(eabc); ObjectMethods i1 = new ObjectMethods(iabc); ObjectMethods e2 = new ObjectMethods(eabc); ObjectMethods i2 = new ObjectMethods(iabc); ObjectMethods e3 = new ObjectMethods(new String("DEF")); ObjectMethods i3 = new ObjectMethods(new String("DEF")); ObjectMethods e4 = new ObjectMethods(new String("DEF")); ObjectMethods i4 = new ObjectMethods(new String("DEF")); // System.out.println("========================================="); // Interpreter.DEBUG = true; // Interpreter.invoke(i1, "getC", new Object[]{}, new Class[]{}); // System.out.println("========================================="); // object methods assertFalse("Object equals content (e)", e1.equals(e3)); boolean iq = 1 == (int) Interpreter.invoke(i1, "equals", new Object[]{null}, new Class[]{Object.class}); assertFalse("Object equals content (i)", iq); assertTrue("Object equals same content (e)", e1.equals(e2)); iq = 1 == (int) Interpreter.invoke(i1, "equals", new Object[]{i2}, new Class[]{Object.class}); assertTrue("Object equals same content (i)", iq); assertTrue("Object equals hashCode content (e)", e1.equalsHC(e2)); iq = 1 == (int) Interpreter.invoke(i1, "equalsHC", new Object[]{i2}, new Class[]{Object.class}); assertTrue("Object equals hashCode content (i)", iq); assertFalse("Object equals hashCode other (e)", e1.equalsHC(e3)); iq = 1 == (int) Interpreter.invoke(i1, "equalsHC", new Object[]{i3}, new Class[]{Object.class}); assertFalse("Object equals hashCode other (i)", iq); e4.set(null); assertTrue("Object null (e)", e4.get() == null); Interpreter.invoke(i4, "set", new Object[]{null}, new Class[]{Object.class}); assertTrue("Object null (i)", i4.get() == null); // TODO strings still contains an error /*- String se1 = ObjectMethods.concat5(e1, e2, e2, e3, e3); String se2 = ObjectMethods.concatN(e1, e2, e2, e3, e3); assertEquals("Object concat (e)", se1, se2); String si1 = (String) Interpreter.invoke(ObjectMethods.class, "concat5", new Object[]{e1, e2, e2, e3, e3}, new Class[]{Object.class, Object.class, Object.class, Object.class, Object.class}); String si2 = (String) Interpreter.invoke(ObjectMethods.class, "concatN", new Object[]{new Object[]{e1, e2, e2, e3, e3}}, new Class[]{Object[].class}); assertEquals("Object concat (i)", si1, si2); */ } }