public void TwoNumbersAdditionCorrectPostfixString() { var operationProvider = new Mock<IOperationProvider>(); operationProvider.Setup(m => m.IsOperation(@"+")).Returns(true); var infix = @"2 + 2"; var postfixConverter = new PostfixConverterSortStation(operationProvider.Object); var postfix = postfixConverter.Convert(infix); Assert.Equal(@"2 2 +", postfix); }
public void TwoPriorityLevelOperationsCorrectPostfixString() { var operationProvider = new Mock<IOperationProvider>(); operationProvider.Setup(m => m.IsOperation(@"-")).Returns(true); operationProvider.Setup(m => m.IsOperation(@"*")).Returns(true); operationProvider.Setup(m => m.ComparePriority(@"-", @"*")).Returns(-1); var infix = @"6 * 1 - 2"; var postfixConverter = new PostfixConverterSortStation(operationProvider.Object); var postfix = postfixConverter.Convert(infix); Assert.Equal(@"6 1 * 2 -", postfix); }
public void AdditionAndSubtractionCorrectPostfixString() { var operationProvider = new Mock<IOperationProvider>(); operationProvider.Setup(m => m.IsOperation(@"+")).Returns(true); operationProvider.Setup(m => m.IsOperation(@"-")).Returns(true); operationProvider.Setup(m => m.ComparePriority(@"-", @"+")).Returns(0); var infix = @"2 + 2 - 1"; var postfixConverter = new PostfixConverterSortStation(operationProvider.Object); var postfix = postfixConverter.Convert(infix); Assert.Equal(@"2 2 1 - +", postfix); }
public void ComplexExpressionCorrectPostfixString() { var operationProvider = new BasicOperationProvider(); var infix = @"3 * 10 - 26 / 13"; var postfixConverter = new PostfixConverterSortStation(operationProvider); var postfix = postfixConverter.Convert(infix); Assert.Equal(@"3 10 * 26 13 / -", postfix); }
public void DivisionOperationCorrectPostfixString() { var operationProvider = new Mock<IOperationProvider>(); operationProvider.Setup(m => m.IsOperation(@"+")).Returns(true); operationProvider.Setup(m => m.IsOperation(@"/")).Returns(true); operationProvider.Setup(m => m.ComparePriority(@"/", @"+")).Returns(1); var infix = @"4 + 6 / 2"; var postfixConverter = new PostfixConverterSortStation(operationProvider.Object); var postfix = postfixConverter.Convert(infix); Assert.Equal(@"4 6 2 / +", postfix); }
public void IncorrectCharactersInInputStringExceptionThrow() { var operationProvider = new BasicOperationProvider(); var infix = @"2asb + 7"; var postfixConverter = new PostfixConverterSortStation(operationProvider); Assert.Throws(typeof(IncorrectCharacterException), () => { postfixConverter.Convert(infix); }); }