public void Expressao_complexa() { var converter = new InfixToPostfixConverter(); var result = converter.Convert("3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3"); result.Should().Be("3 4 2 * 1 5 - 2 3 ^ ^ / +"); }
public void Soma_com_dois_operandos() { var converter = new InfixToPostfixConverter(); var result = converter.Convert("2 + 2"); result.Should().Be("2 2 +"); }
public void Maior_precedencia_com_associatividade_direita_para_esquerda() { var converter = new InfixToPostfixConverter(); var result = converter.Convert("4 * 5 ^ 2"); result.Should().Be("4 5 2 ^ *"); }
public void Soma_com_parentesis_e_multiplicacao() { var converter = new InfixToPostfixConverter(); var result = converter.Convert("(2 + 2) * 4"); result.Should().Be("2 2 + 4 *"); }
public void Soma_e_multiplicacao() { var converter = new InfixToPostfixConverter(); var result = converter.Convert("2 + 2 * 4"); result.Should().Be("2 2 4 * +"); }
public void ConversionTest(string infixExpression, string expected) { var postfixList = InfixToPostfixConverter.Convert(infixExpression); string postfixExpression = ""; foreach (var unit in postfixList) { postfixExpression += unit + " "; } Assert.AreEqual(expected, postfixExpression); }
public void EvaluatesCorrectly(string expressionString, float expectedResult) { // arrange var expressionNodeFactory = new ExpressionNodeFactory(); var expressionTokenizer = new ExpressionTokenizer(); var infixToPostfixConverter = new InfixToPostfixConverter(); var expressionFactory = new ExpressionFactory(expressionNodeFactory, expressionTokenizer, infixToPostfixConverter); // act var expression = expressionFactory.MakeExpression(expressionString); var result = expression.Evaluate(); // assert Assert.Equal(expectedResult, result); }
public void EvaluatesCorrectlyWithAVariableAndSomeStuff() { // arrange var expressionNodeFactory = new ExpressionNodeFactory(); var expressionTokenizer = new ExpressionTokenizer(); var infixToPostfixConverter = new InfixToPostfixConverter(); var expressionFactory = new ExpressionFactory(expressionNodeFactory, expressionTokenizer, infixToPostfixConverter); // act var expression = expressionFactory.MakeExpression("(bananas + 1) / 5"); expression.EvaluationContext.GetVariable("bananas").Value = 4.0f; var result = expression.Evaluate(); // assert Assert.Equal(1.0f, result); }
public Expression() { parser = new ExpressionParser(); postfixConverter = new InfixToPostfixConverter(); postfixCalculator = new PostfixCalculator(); }