private IntegerHelper SetUpHelper(IInterpreterInteger parent) { IntegerHelper integerHelper = new IntegerHelper(); integerHelper.SetInterpreter(parent); return(integerHelper); }
public void LiteralInteger_GivenInteger_ReturnsIntegerLiteral(int input, int expected) { IntegerLiteralExpression intLit = new IntegerLiteralExpression(input.ToString(), 1, 1); IInterpreterInteger parent = Substitute.For <IInterpreterInteger>(); parent.DispatchInt(intLit, Arg.Any <List <object> >()).Returns(input); IntegerHelper integerHelper = SetUpHelper(parent); int res = integerHelper.LiteralInteger(intLit, new List <object>()); Assert.AreEqual(expected, res); }
public void PowerInteger_TwoIntsButNegativeExponent_ThrowsException(int input1, int input2) { IntegerLiteralExpression realLit1 = new IntegerLiteralExpression(input1, 1, 1); IntegerLiteralExpression realLit2 = new IntegerLiteralExpression(input2, 2, 2); PowerExpression powExpr = new PowerExpression(realLit1, realLit2, 1, 1); IInterpreterInteger parent = Substitute.For <IInterpreterInteger>(); parent.DispatchInt(realLit1, Arg.Any <List <object> >()).Returns(input1); parent.DispatchInt(realLit2, Arg.Any <List <object> >()).Returns(input2); IntegerHelper realHelper = SetUpHelper(parent); int res = realHelper.PowerInteger(powExpr, new List <object>()); }
public void MultiplicationInteger_TwoIntegers_ReturnsCorrectResultOfMultiplication(int input1, int input2, int expected) { IntegerLiteralExpression intLit1 = new IntegerLiteralExpression(input1.ToString(), 1, 1); IntegerLiteralExpression intLit2 = new IntegerLiteralExpression(input2.ToString(), 2, 2); MultiplicationExpression multExpr = new MultiplicationExpression(intLit1, intLit2, 1, 1); IInterpreterInteger parent = Substitute.For <IInterpreterInteger>(); parent.DispatchInt(intLit1, Arg.Any <List <object> >()).Returns(input1); parent.DispatchInt(intLit2, Arg.Any <List <object> >()).Returns(input2); IntegerHelper integerHelper = SetUpHelper(parent); int res = integerHelper.MultiplicationInteger(multExpr, new List <object>()); Assert.AreEqual(expected, res); }
public void PowerInteger_TwoInts_ReturnsCorrectResult(int input1, int input2, int expected) { IntegerLiteralExpression realLit1 = new IntegerLiteralExpression(input1, 1, 1); IntegerLiteralExpression realLit2 = new IntegerLiteralExpression(input2, 2, 2); PowerExpression powExpr = new PowerExpression(realLit1, realLit2, 1, 1); IInterpreterInteger parent = Substitute.For <IInterpreterInteger>(); parent.DispatchInt(realLit1, Arg.Any <List <object> >()).Returns(input1); parent.DispatchInt(realLit2, Arg.Any <List <object> >()).Returns(input2); IntegerHelper realHelper = SetUpHelper(parent); int res = realHelper.PowerInteger(powExpr, new List <object>()); Assert.AreEqual(expected, res); }
public void AbsoluteInteger_SetWithEmptyList_ReturnsLength() { IdentifierExpression intLit = new IdentifierExpression("", 1, 1); AbsoluteValueExpression absExpr = new AbsoluteValueExpression(intLit, 1, 1); absExpr.Type = TypeEnum.Set; IInterpreterInteger parent = Substitute.For <IInterpreterInteger>(); parent.DispatchSet(intLit, Arg.Any <List <object> >()).Returns(new Set(new List <Element>())); IntegerHelper integerHelper = SetUpHelper(parent); int res = integerHelper.AbsoluteInteger(absExpr, new List <object>()); Assert.AreEqual(0, res); }
public void AbsoluteInteger_Integer_ReturnsAbsoluteValue(int input, int expected) { IntegerLiteralExpression intLit = new IntegerLiteralExpression(input.ToString(), 1, 1); AbsoluteValueExpression absExpr = new AbsoluteValueExpression(intLit, 1, 1); absExpr.Type = TypeEnum.Integer; IInterpreterInteger parent = Substitute.For <IInterpreterInteger>(); parent.DispatchInt(intLit, Arg.Any <List <object> >()).Returns(input); IntegerHelper integerHelper = SetUpHelper(parent); int res = integerHelper.AbsoluteInteger(absExpr, new List <object>()); Assert.AreEqual(expected, res); }
public void NegativeInteger_Integer_CorrectNegativeValue(int input, int expected) { IntegerLiteralExpression intLitExpr = new IntegerLiteralExpression(input, 0, 0); NegativeExpression negExpr = new NegativeExpression(new List <ExpressionNode>() { intLitExpr }, 0, 0); IInterpreterInteger parent = Substitute.For <IInterpreterInteger>(); parent.DispatchInt(intLitExpr, Arg.Any <List <object> >()).Returns(input); IntegerHelper integerHelper = SetUpHelper(parent); double res = integerHelper.NegativeInteger(negExpr, new List <object>()); Assert.AreEqual(expected, res); }
public void SetInterpreter(IInterpreterInteger interpreter) { _interpreter = interpreter; }