Пример #1
0
 def test_negative(self):
     """
     Check negatives
     :return:
     """
     self.assertEqual(calc.calculate("(-4) + 2"), -2)
     self.assertEqual(calc.calculate("(4 * 2 + 4)  * -2"), -24)
Пример #2
0
 def test_negative(self):
     """
     Check negatives
     :return:
     """
     self.assertEqual(calc.calculate("(-4) + 2"), -2)
     self.assertEqual(calc.calculate("(4 * 2 + 4)  * -2"), -24)
Пример #3
0
 def test_modulo(self):
     """
     Modulo feature tests
     :return:
     """
     self.assertEqual(calc.calculate("2 % 2"), 0)
     self.assertEqual(calc.calculate("2 * 2 % 2"), 0)
     self.assertEqual(calc.calculate("(2 + 3) % 2 / 5"), 0.2)
Пример #4
0
 def test_saved(self):
     """
     Test saved value feature
     :return:
     """
     calc.saved = 5
     self.assertEqual(calc.calculate("+2"), 7)
     self.assertEqual(calc.calculate("2 { 6 / 2 [ 5 ] }"), 30)
Пример #5
0
 def test_UDF(self):
     """
     Make sure errors are handled in UDF
     :return:
     """
     with self.assertRaises(SyntaxWarning):
         calc.handle_user_defined_input("bob = 4")
         calc.calculate("bob2 + 4")
Пример #6
0
 def test_modulo(self):
     """
     Modulo feature tests
     :return:
     """
     self.assertEqual(calc.calculate("2 % 2"), 0)
     self.assertEqual(calc.calculate("2 * 2 % 2"), 0)
     self.assertEqual(calc.calculate("(2 + 3) % 2 / 5"), 0.2)
Пример #7
0
 def test_saved(self):
     """
     Test saved value feature
     :return:
     """
     calc.saved = 5
     self.assertEqual(calc.calculate("+2"), 7)
     self.assertEqual(calc.calculate("2 { 6 / 2 [ 5 ] }"), 30)
Пример #8
0
 def test_UDF(self):
     """
     Make sure errors are handled in UDF
     :return:
     """
     with self.assertRaises(SyntaxWarning):
         calc.handle_user_defined_input("bob = 4")
         calc.calculate("bob2 + 4")
Пример #9
0
 def test_operator_errors(self):
     """
     More operator errors
     :return:
     """
     with self.assertRaises(SyntaxWarning):
         calc.calculate("2 + * 4")
         calc.calculate("2 ! 4")
         calc.handle_user_defined_input("matt = 4 = 5")
Пример #10
0
 def test_operator_errors(self):
     """
     More operator errors
     :return:
     """
     with self.assertRaises(SyntaxWarning):
         calc.calculate("2 + * 4")
         calc.calculate("2 ! 4")
         calc.handle_user_defined_input("matt = 4 = 5")
Пример #11
0
 def test_symbol_errors(self):
     """
     Validate some of the stranger symbol issues
     :return:
     """
     with self.assertRaises(SyntaxWarning):
         calc.calculate("2 + (%)")
         calc.calculate("2 + 2)")
         calc.calculate("2 + () + 5")
         calc.calculate("2 + ((%) +2)")
Пример #12
0
 def test_symbol_errors(self):
     """
     Validate some of the stranger symbol issues
     :return:
     """
     with self.assertRaises(SyntaxWarning):
         calc.calculate("2 + (%)")
         calc.calculate("2 + 2)")
         calc.calculate("2 + () + 5")
         calc.calculate("2 + ((%) +2)")
Пример #13
0
 def test_math(self):
     """
     Simple unit tests
     :return:
     """
     self.assertAlmostEqual(calc.calculate("4 * 10 / 15 + ( 6 - 2 * 3 )"), 2.6666666, 3)
     self.assertEqual(calc.calculate("2 +5/1 + (2* 5)/2"), 12)
     self.assertAlmostEqual(calc.calculate("7^2+16 / (4^4)"), 49.0625, 3)
     self.assertEqual(calc.calculate("(1+2)+(2+3)"), 8)
     self.assertEqual(calc.calculate("1+ ( ( ( 3 + 2) * 2) - 4)"), 7)
     self.assertAlmostEqual(calc.calculate("pi*2"), 6.2831, 3)
     self.assertEqual(calc.calculate("(2*.5)^3"), 1)
     calc.handle_user_defined_input("Matt = 20")
     self.assertAlmostEqual(calc.calculate("Matt * pi"), 62.8318, 3)
Пример #14
0
 def test_math(self):
     """
     Simple unit tests
     :return:
     """
     self.assertAlmostEqual(calc.calculate("4 * 10 / 15 + ( 6 - 2 * 3 )"),
                            2.6666666, 3)
     self.assertEqual(calc.calculate("2 +5/1 + (2* 5)/2"), 12)
     self.assertAlmostEqual(calc.calculate("7^2+16 / (4^4)"), 49.0625, 3)
     self.assertEqual(calc.calculate("(1+2)+(2+3)"), 8)
     self.assertEqual(calc.calculate("1+ ( ( ( 3 + 2) * 2) - 4)"), 7)
     self.assertAlmostEqual(calc.calculate("pi*2"), 6.2831, 3)
     self.assertEqual(calc.calculate("(2*.5)^3"), 1)
     calc.handle_user_defined_input("Matt = 20")
     self.assertAlmostEqual(calc.calculate("Matt * pi"), 62.8318, 3)
Пример #15
0
def main():
    '''
    The main program loop
    '''
    print("Welcome to the Calculator")
    while True:
        print("Please input an equation")
        try:
            equation = take_input()
            if equation: #If returned an equation
                print_ans(calc.calculate(equation))
        except(UserWarning, SyntaxWarning) as error:
            print(error)
        except ZeroDivisionError:
            print("Cannot divide by Zero, numbnuts")
        except KeyboardInterrupt:
            print("Exiting")
            exit()
Пример #16
0
def main():
    '''
    The main program loop
    '''
    print("Welcome to the Calculator")
    while True:
        print("Please input an equation")
        try:
            equation = take_input()
            if equation:  #If returned an equation
                print_ans(calc.calculate(equation))
        except (UserWarning, SyntaxWarning) as error:
            print(error)
        except ZeroDivisionError:
            print("Cannot divide by Zero, numbnuts")
        except KeyboardInterrupt:
            print("Exiting")
            exit()