def test_parse_multiplication(self): """ parse_multiplication() method is checked in this test in order to assure it works properly, given a multiplication operation contained in a string as a input param """ expr = '1/(5+7)' p = Parser(expr) result = p.parse_multiplication() self.assertEqual(result, 1.0/12.0)
def test_parse_number_fails_2(self): """ In this test parse_number() method is checked. It should return an exception since there are more than one dot in the given string """ expr = '345..5' p = Parser(expr) try: p.parse_number() except MathParseException: raised = True self.assertTrue(raised)
def test_parse_number(self): """ This test aims to check if the parse_number() function defined inside Parse class is able to correctly detect numbers :return: """ expr = ' 5' p = Parser(expr) self.assertEqual(p.parse_number(), 5) expr = '345.5' p2 = Parser(expr) self.assertEqual(p2.parse_number(), 345.5)
def test_parse_multiplication_fails(self): """ In this test division by zero is checked since it's not possible to make this operation, parse_multiplication() method should raise a 'MathParseException' so that it can be handled in the rest of the code """ expr = '5/0' p = Parser(expr) try: p.parse_multiplication() except MathParseException: raised = True self.assertTrue(raised)
def test_parse_number_fails_1(self): """ In this test parse_number() method is checked. It should return an exception since the string passed as attribute doesn't represent a number """ expr = '(' p = Parser(expr) try: p.parse_number() except MathParseException: raised = True self.assertTrue(raised)
def get_value(self): """ Unit test responsible of checking the get_value() method implemented in Parse class """ expr = '(2*5) + 5 ' p = Parser(expr) result = p.get_value() self.assertEqual(result, 15) expr2 = '200 * (5+6) /4 + 3' p2 = Parser(expr2) result2 = p2.get_value() self.assertEqual(result2, 553)