def testSimpleEval(self): S = RPNCalculator() val = S.evaluate('3') self.assertEqual(val, 3) self.assertEqual(str(S), '[3*]') S = RPNCalculator() val = S.evaluate('3 5') self.assertEqual(val, 5) self.assertEqual(str(S), '[5*, 3]') S = RPNCalculator() val = S.evaluate('3 5 7') self.assertEqual(val, 7) self.assertEqual(str(S), '[7*, 5, 3]')
def testEvalAdd(self): S = RPNCalculator() val = S.evaluate('3 5 +') self.assertEqual(val, 8) self.assertEqual(str(S), '[8*]') S = RPNCalculator() val = S.evaluate('3 5 + 2 +') self.assertEqual(val, 10) self.assertEqual(str(S), '[10*]') S = RPNCalculator() val = S.evaluate('2 3 5 + +') self.assertEqual(val, 10) self.assertEqual(str(S), '[10*]')
def testBadAdd(self): S = RPNCalculator() try: val = S.evaluate('2 + 3') self.assertTrue(False, 'Evaluate of bad combo failed to raise exception') except Exception as e: if not isinstance(e, ValueError): raise self.fail('RPN eval raised exception that is not ValueError') self.assertTrue(True)
def testBadAdd(self): S = RPNCalculator() try: val = S.evaluate('2 + 3') self.assertTrue(False, 'Evaluate of bad combo failed to raise exception') except Exception as e: if not isinstance(e, ValueError): raise self.fail( 'RPN eval raised exception that is not ValueError') self.assertTrue(True)
def testSimpleEvalWhitespace(self): S = RPNCalculator() val = S.evaluate(' 3') self.assertEqual(val, 3) self.assertEqual(str(S), '[3*]') S = RPNCalculator() val = S.evaluate('3 ') self.assertEqual(val, 3) self.assertEqual(str(S), '[3*]') S = RPNCalculator() val = S.evaluate(' 3 ') self.assertEqual(val, 3) self.assertEqual(str(S), '[3*]') S = RPNCalculator() val = S.evaluate('3\t5') self.assertEqual(val, 5) self.assertEqual(str(S), '[5*, 3]') S = RPNCalculator() val = S.evaluate('3 5') self.assertEqual(val, 5) self.assertEqual(str(S), '[5*, 3]') S = RPNCalculator() val = S.evaluate('3\t\t5') self.assertEqual(val, 5) self.assertEqual(str(S), '[5*, 3]')
def testEvalExample3(self): S = RPNCalculator() val = S.evaluate('3 5 + 7 * 8 11 * -') self.assertEqual(val, -32) self.assertEqual(str(S), '[-32*]')