@Test public void testNaNAndInf() throws ParseException { final Variable x = SymbolFactory.createVariable("x", 0.0); ((WritableNamespace) parser.getDefaultNamespace()).registerSymbol(x); Term term = parser.parse("inf(x) || nan(x)"); x.assignD(env, 0.0); assertEquals(false, term.evalB(env)); x.assignD(env, Math.log(0)); assertEquals(true, term.evalB(env)); x.assignD(env, (double) (float) Math.log(0)); assertEquals(true, term.evalB(env)); x.assignD(env, 0.0); assertEquals(false, term.evalB(env)); x.assignD(env, Math.sqrt(-1)); assertEquals(true, term.evalB(env)); x.assignD(env, (double) (float) Math.sqrt(-1)); assertEquals(true, term.evalB(env)); }
private void testConditional(String code) throws ParseException { final Variable x = SymbolFactory.createVariable("x", 0.0); ((WritableNamespace) parser.getDefaultNamespace()).registerSymbol(x); Term term = parser.parse(code); assertNotNull(term); assertNotNull(term.getChildren()); int i = term.getChildren().length; assertEquals(3, i); x.assignI(null, -10); assertEquals(0, term.evalI(env)); x.assignI(null, 0); assertEquals(0, term.evalI(env)); x.assignI(null, 10); assertEquals(1, term.evalI(env)); }
private void testNestedConditional(String code) throws ParseException { final Variable x = SymbolFactory.createVariable("x", 0.0); ((WritableNamespace) parser.getDefaultNamespace()).registerSymbol(x); Term term = parser.parse(code); assertNotNull(term); assertNotNull(term.getChildren()); int i = term.getChildren().length; assertEquals(3, i); x.assignI(null, -10); assertEquals(-1, term.evalI(env)); x.assignI(null, 0); assertEquals(0, term.evalI(env)); x.assignI(null, 10); assertEquals(1, term.evalI(env)); }