public void ModuloReal_DivisorIsZero_ThrowsException(double input1, double input2)
        {
            RealLiteralExpression realLit1   = new RealLiteralExpression(input1, 1, 1);
            RealLiteralExpression realLit2   = new RealLiteralExpression(input2, 2, 2);
            ModuloExpression      moduloExpr = new ModuloExpression(realLit1, realLit2, 1, 1);
            IInterpreterReal      parent     = Substitute.For <IInterpreterReal>();

            parent.DispatchReal(realLit1, Arg.Any <List <object> >()).Returns(input1);
            parent.DispatchReal(realLit2, Arg.Any <List <object> >()).Returns(input2);
            RealHelper realHelper = SetUpHelper(parent);

            Assert.ThrowsException <DivisionByZeroException>(() => realHelper.ModuloReal(moduloExpr, new List <object>()));
        }
        public void ModuloReal_TwoReals_ReturnsCorrectResult(double input1, double input2, double expected)
        {
            RealLiteralExpression realLit1   = new RealLiteralExpression(input1, 1, 1);
            RealLiteralExpression realLit2   = new RealLiteralExpression(input2, 2, 2);
            ModuloExpression      moduloExpr = new ModuloExpression(realLit1, realLit2, 1, 1);
            IInterpreterReal      parent     = Substitute.For <IInterpreterReal>();

            parent.DispatchReal(realLit1, Arg.Any <List <object> >()).Returns(input1);
            parent.DispatchReal(realLit2, Arg.Any <List <object> >()).Returns(input2);
            RealHelper realHelper = SetUpHelper(parent);

            double res = realHelper.ModuloReal(moduloExpr, new List <object>());

            Assert.AreEqual(expected, res);
        }