The RemainderOperator does not handle negative numbers the same way as the .net remainder operator.
These test fail.
Expression expr4 = new Expression("5%-4");
Assert.AreEqual(1M, expr4.Eval<decimal>());
Expression expr5 = new Expression("-5%4");
Assert.AreEqual(-1M, expr5.Eval<decimal>());
Expression expr6 = new Expression("-5.2%2.0");
Assert.AreEqual(-1.2M, expr6.Eval<decimal>());