def test_will_properly_evaluate_simple_operand(self): equation_parser = EquationParser( string_equation=self.equation_with_singular_sudo_mixed_fraction()) string_equation = equation_parser.evaluate() evaluate = EvaluateEquation(equation=string_equation) mixed_number = evaluate.to_mixed_number() decimal_number = evaluate.to_decimal() self.assertEqual(decimal_number, 3.25) self.assertEqual(mixed_number, "3_1/4")
def test_will_properly_evaluate_a_positive_mixed_number(self): equation_parser = EquationParser( string_equation=self. equation_with_singular_sudo_positive_improper_fraction()) string_equation = equation_parser.evaluate() evaluate = EvaluateEquation(equation=string_equation) mixed_number = evaluate.to_mixed_number() decimal_number = evaluate.to_decimal() self.assertEqual(decimal_number, 2.75) self.assertEqual(mixed_number, "2_3/4")
def test_proper_operands(self): equation_parser = EquationParser() for operand in self.example_proper_operands(): self.assertTrue( equation_parser._variable_is_a_proper_operand(operand))
def test_will_split_equation_to_proper_array(self): equation_parser = EquationParser( string_equation=self.equation_with_two_proper_operands()) split_equation = equation_parser.split_equation_to_array() self.assertEqual(split_equation, ["3_1/4", "/", "1_1/2"], "")
def test_illegal_operators(self): equation_parser = EquationParser() for illegal_operator in self.example_illegal_operators(): self.assertRaises(ValueError, equation_parser._variable_is_a_legal_operator, illegal_operator)
def test_legal_operators(self): equation_parser = EquationParser() for operator in self.legal_operators(): self.assertTrue( equation_parser._variable_is_a_legal_operator(operator))
def test_equation_parser_will_handle_integer_values(self): equation_parser = EquationParser() value = equation_parser.evaluate_equation_array( self.example_int_array()) self.assertEqual(value, "3 + 5")
def test_should_raise_exception_if_illegal_operator_in_equation(self): equation_parser = EquationParser( string_equation=self.equation_with_illegal_operator()) self.assertRaises(ValueError, equation_parser.evaluate)
def test_should_return_exception_if_no_spaces_in_equation(self): equation_parser = EquationParser( string_equation=self.equation_with_no_spaces()) self.assertRaises(ValueError, equation_parser.evaluate)