/** Test of getInstance method, of class ScriptingContainer. */ @Test public void testGetInstance() { System.out.println("getInstance"); Object receiver = null; Class<Object> clazz = null; ScriptingContainer instance = new ScriptingContainer(); Object expResult = null; Object result = instance.getInstance(receiver, clazz); assertEquals(expResult, result); // calculates Plutonium decay instance.put("$h", 24100.0); // half-life of Plutonium is 24100 years. String filename = "org/jruby/embed/ruby/radioactive_decay.rb"; receiver = instance.runScriptlet(PathType.CLASSPATH, filename); result = instance.getInstance(receiver, RadioActiveDecay.class); double initial = 10.0; // 10.0 g double years = 1000; // 1000 years double amount_left = ((RadioActiveDecay) result).amountAfterYears(initial, years); assertEquals(9.716483752784367, amount_left, 0.00000000001); amount_left = 1.0; years = ((RadioActiveDecay) result).yearsToAmount(initial, amount_left); assertEquals(80058.46708678544, years, 0.00000000001); // calculates position and velocity after some seconds have past instance.put("initial_velocity", 16.0); instance.put("initial_height", 32.0); instance.put("system", "english"); filename = "org/jruby/embed/ruby/position_function.rb"; receiver = instance.runScriptlet(PathType.CLASSPATH, filename); result = instance.getInstance(receiver, PositionFunction.class); double time = 2.0; double position = ((PositionFunction) result).getPosition(time); assertEquals(0.0, position, 0.01); double velocity = ((PositionFunction) result).getVelocity(time); assertEquals(-48.0, velocity, 0.01); List<String> units = ((PositionFunction) result).getUnits(); assertEquals("ft./sec", units.get(0)); assertEquals("ft.", units.get(1)); }