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>()); ``` See [microsoft remainder operator doc](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/arithmetic-operators#remainder-operator-)