public void VisitAssignmentReturnsCorrectResult(int y, CalculationVisitor sut) { var left = new Variable("x"); var right = new Constant(y); var assignment = new Assignment(left, right); sut.Visit(assignment); var expected = y; Assert.Equal(expected, sut.Result); }
public void VisitDivisionExpressionReturnsCorrectResult(int x, int y, CalculationVisitor sut) { var left = new Constant(x); var right = new Constant(y); var division = new DivisionExpression(left, right); sut.Visit(division); var expected = x / y; Assert.Equal(expected, sut.Result); }
static void Calculate() { //a=5*b+2 var expression = new Assignment(new Variable("a"), new AdditionExpression(new MultiplicationExpression(new Constant(5), new Variable("b", 2)), new Constant(2))); var equationPrintingVisitor = new EquationPrintingVisitor(); equationPrintingVisitor.Visit(expression); var calculationVisitor = new CalculationVisitor(); calculationVisitor.Visit(expression); Console.WriteLine($"Expression: {equationPrintingVisitor.Equation}"); Console.WriteLine($"The result is: {calculationVisitor.Result}"); }
public void VisitConstantReturnsCorrectResult(Constant constant, CalculationVisitor sut) { sut.Visit(constant); Assert.Equal(constant.Value, sut.Result); }
public void VisitVariableReturnsCorrectResult(Variable variable, CalculationVisitor sut) { sut.Visit(variable); Assert.Equal(variable.Value, sut.Result); }
public void SutIsVisitor(CalculationVisitor sut) { Assert.IsAssignableFrom <Visitor>(sut); }