@Override public void visit(NodeValueDouble nv) { push(new NodeValueDouble(nv.getDouble(), changeNode(nv.asNode()))); }
@Override public String asString() { return toString() ; }
public static NodeValue makeDouble(double d) { return new NodeValueDouble(d) ; }
@Override public String toString() { // Preserve lexical form if ( getNode() != null ) return super.asString() ; return Utils.stringForm(value) ; }
return new NodeValueDouble(d, node) ;
@Override public void visit(NodeValueDouble nv) { push(new NodeValueDouble(nv.getDouble(), changeNode(nv.asNode()))); }
@Test public void test_function_expansion_06() { Expr takeaway = new E_Subtract(new ExprVar("x"), new ExprVar("y")); List<Var> args = new ArrayList<>(); args.add(Var.alloc("x")); args.add(Var.alloc("y")); UserDefinedFunctionFactory.getFactory().add("http://example/takeaway", takeaway, args); //Test that with preserveDependencies set to false (the default) that the definition is expanded appropriately ExprList numArgs = new ExprList(); numArgs.add(new NodeValueInteger(1)); numArgs.add(new NodeValueDouble(2.3)); Expr test = new E_Function("http://example/takeaway", numArgs); UserDefinedFunctionFactory.getFactory().add("http://example/test", test, new ArrayList<Var>()); UserDefinedFunctionDefinition def = UserDefinedFunctionFactory.getFactory().get("http://example/test"); Expr base = def.getBaseExpr(); Assert.assertTrue(base instanceof E_Subtract); E_Subtract subtract = (E_Subtract)base; Assert.assertTrue(subtract.getArg1() instanceof NodeValueInteger); Assert.assertTrue(subtract.getArg2() instanceof NodeValueDouble); }
@Test public void test_function_expansion_07() { Expr takeaway = new E_Subtract(new ExprVar("x"), new ExprVar("y")); List<Var> args = new ArrayList<>(); args.add(Var.alloc("x")); args.add(Var.alloc("y")); UserDefinedFunctionFactory.getFactory().add("http://example/takeaway", takeaway, args); //Test that with preserveDependencies set to false (the default) that the definition is expanded appropriately ExprList numArgs = new ExprList(); numArgs.add(new NodeValueDouble(2.3)); numArgs.add(new NodeValueInteger(1)); Expr test = new E_Function("http://example/takeaway", numArgs); UserDefinedFunctionFactory.getFactory().add("http://example/test", test, new ArrayList<Var>()); UserDefinedFunctionDefinition def = UserDefinedFunctionFactory.getFactory().get("http://example/test"); Expr base = def.getBaseExpr(); Assert.assertTrue(base instanceof E_Subtract); E_Subtract subtract = (E_Subtract)base; Assert.assertTrue(subtract.getArg1() instanceof NodeValueDouble); Assert.assertTrue(subtract.getArg2() instanceof NodeValueInteger); }