### Question:
ASTMod extends ASTFunctionCall { @Override protected Object evaluateNode(Object o) throws Exception { double x = ConversionUtil.toDouble(evaluateChild(0, o), 0.0); double y = ConversionUtil.toDouble(evaluateChild(1, o), 0.0); if(y == 0.0) { return 0.0; } return x % y; } ASTMod(int id);  ASTMod(Expression expression, Expression divisor); @Override Expression shallowCopy();  }### Answer:
@Test public void evaluateNode() throws Exception { ASTObjPath path = new ASTObjPath("intColumn"); ASTMod mod = new ASTMod(path, new ASTScalar(3.0)); TablePrimitives a = new TablePrimitives(); a.setIntColumn(10); Object res = mod.evaluateNode(a); assertTrue(res instanceof Double); assertEquals(1.0, res); }