Advertisement
colinm86

Untitled

Oct 14th, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. from prefix_exp import *
  2. import unittest
  3.  
  4. class TestStringMethods(unittest.TestCase):
  5.     """Unit tests for prefix_exp file
  6.    Arguments:
  7.        unittest {unittest}
  8.    """
  9.     def test_tokenize(self):
  10.         self.assertEqual(tokenize('1*(22+3)/5'), ['1', '*', '(', '22', '+', '3', ')', '/', '5'])
  11.         self.assertEqual(tokenize('1  + 1'), ['1', '+', '1'])
  12.         self.assertEqual(tokenize('1 ** 1'), ['1', '**', '1'])
  13.         self.assertEqual(tokenize('1 // 1'), ['1', '//', '1'])
  14.         self.assertEqual(tokenize('244+( 77 / 3) * 4'), ['244', '+', '(','77','/','3',')','*','4'])  
  15.         self.assertEqual(tokenize(''), [])
  16.    
  17.     def test_checkbalance(self):
  18.         self.assertEqual(checkbalance(['(','(',')',')','(','(',]),False)
  19.         self.assertEqual(checkbalance(['(','(',')',')','(',')',]),True)
  20.         self.assertEqual(checkbalance([]),True)
  21.    
  22.     def test_infixToPostfix(self):
  23.         with self.assertRaises(Exception):
  24.             infixToPostfix('1*(22+3))/5')
  25.         self.assertEqual(infixToPostfix('1 * 5'),'1 5 *')
  26.         self.assertEqual(infixToPostfix('(1 - 3) * (6*4)'),'1 3 - 6 4 * *')
  27.         self.assertEqual(infixToPostfix('4 ** 2 + 5'),'4 2 ** 5 +')
  28.         self.assertEqual(infixToPostfix('3 * 4 - 5 // 5'),'3 4 * 5 5 // -')  
  29.         self.assertEqual(infixToPostfix('1*(22+3)/5'),'1 22 3 + * 5 /')
  30.    
  31.     def test_postfixEval(self):
  32.         with self.assertRaises(Exception):
  33.             postfixEval([1,2,3])
  34.         self.assertEqual(postfixEval('1 5 *'),5)
  35.         self.assertEqual(postfixEval('1 3 - 6 4 * *'),-48)
  36.         self.assertEqual(postfixEval('1 22 3 + * 5 /'),5.0)
  37.         self.assertEqual(postfixEval('3 ** 2'),9)
  38.         self.assertEqual(postfixEval('3 // 2'),1)
  39.    
  40.     def test_doMath(self):
  41.         with self.assertRaises(Exception):
  42.             doMath(3,3,3)
  43.         with self.assertRaises(Exception):
  44.             doMath('*',3,'4')
  45.         with self.assertRaises(Exception):
  46.             doMath('*','3',4)
  47.         with self.assertRaises(ArithmeticError):
  48.             doMath('?',3,4)
  49.         self.assertEqual(doMath('*',3,4),12)
  50.         self.assertEqual(doMath('*',-3,4),-12)
  51.         self.assertEqual(doMath('/',20,4),5)
  52.         self.assertEqual(doMath('+',20,4),24)
  53.         self.assertEqual(doMath('-',20,4),16)
  54.  
  55. if __name__ == '__main__':
  56.     unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement