def test_negativeOutput(self): self.assertEqual(infixToPostfixEval('( 4 - 5 ) * 1'), ('4 5 - 1 *', -1))
def test_infixToPostfixEval(self): self.assertEqual(infixToPostfixEval('4 + 3'), ('4 3 +', 7)) self.assertEqual(infixToPostfixEval('4 - 3'), ('4 3 -', 1))
def test_Factorial(self): self.assertEqual(infixToPostfixEval('( 4 + 4 ) ! + 8'), ('4 4 + ! 8 +', 40328))
def test_precedence(self): self.assertEqual(infixToPostfixEval('( 5 + 3 ) * 2'), ('5 3 + 2 *', 16))
def testOneOperator(self): data = "1 + 1" result = infixToPostfixEval(data) self.assertEqual(result[0], "1 1 +") self.assertEqual(result[1], 2)
def test_Brackets(self): self.assertEqual(infixToPostfixEval('( 5 - 3 ) * 7'), ('5 3 - 7 *', 14)) self.assertEqual(infixToPostfixEval('( 5 + 3 ) * 7'), ('5 3 + 7 *', 56))
def testFactorial(self): data = "5 ! + 3 * 7" result = infixToPostfixEval(data) self.assertEqual(result[0], "5 ! 3 7 * +") self.assertEqual(result[1], 141)
def testExtreme(self) : result = infixToPostfixEval('( 1 ! + 2 ! + 3 ! ) * 9 + ( 4 ! + 5 ! ) * 9 !') self.assertEqual(result, '1 ! 2 ! + 3 ! + 9 * 4 ! 5 ! + 9 ! * +\nEvaluates to: 52254801')
def testTwoOperators(self): data = "1 + 2 * 3" result = infixToPostfixEval(data) self.assertEqual(result[0], "1 2 3 * +") self.assertEqual(result[1], 7)
def testParenthesis(self): data = "( 5 + 9 ) * 7 + 2" result = infixToPostfixEval(data) self.assertEqual(result[0], "5 9 + 7 * 2 +") self.assertEqual(result[1], 100)
def testEmpty(self) : result = infixToPostfixEval('') self.assertEqual(result, 'Empty expression')
def testNegative(self) : result = infixToPostfixEval('( 6 * 7 + 4 ) * 2 * ( 8 - 3 * 9 )') self.assertEqual(result, '6 7 * 4 + 2 * 8 3 9 * - *\nEvaluates to: -1748')
def testMix(self) : result = infixToPostfixEval('3 ! * ( 3 + ( 7 ! / 9 + ( 5 * 2 ) ) )') self.assertEqual(result, '3 ! 3 7 ! 9 / 5 2 * + + *\nEvaluates to: 3438.0')
def test_Eval(self): data = infixToPostfixEval("( 2 + 2 ) ! + 8") self.assertEqual(data, ('2 2 + ! 8 +', 'Evaluates to: ', 32))
def testLongExp(self): data = "( 9 + 3 ) / 6 * 7 - 2 ! * 4" result = infixToPostfixEval(data) self.assertEqual(result[0], "9 3 + 6 / 7 * 2 ! 4 * -") self.assertEqual(result[1], 6)
def test_Eval3(self): data = infixToPostfixEval("2 * B + C * D") self.assertEqual(data, "Cannot be evaluated")
def testNormal(self) : result = infixToPostfixEval('5 + ( 3 - 5 ) * 2') self.assertEqual(result, '5 3 5 - 2 * +\nEvaluates to: 1')