def test_when_substraction_of_two_numbers_then_return_the_difference(self): expr = '7 3 -' expected_result = 4 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_a_digit_and_SQRT_are_past_then_return_square_root_of_the_digit(self): expr = '9 SQRT' expected_result = 3 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_two_numbers_are_passed_then_return_sum_of_them(self): expr = '4 8 +' expected_result = 12 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_a_number_is_add_and_return_its_sqrt(self): expr = '9 SQRT' expected_result = 3 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_a_lot_of_numbers_are_passed_then_return_their_evaluation(self): expr = '3 5 8 * 7 + *' expected_result = 141 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_sqrt_of_number_then_return_the_square_root(self): expr = '9 SQRT' expected_result = 3 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_min_then_return_maximum_of_all_previous_numbers(self): expr = '4 5 9 1 0 MIN' expected_result = 0 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_operator_is_SQRT_and_operand_is_nine_then_return_three(self): expr = '9 SQRT' expected_result = 3 self.assertEqual(rpn_calculate(expr), expected_result)
def test_with_three_operands_and_two_operators_then_return_result(self): expr = '4 2 + 3 -' expected_result = 3 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_operator_is_muliplication_of_two_numbers_then_return_the_product( self): expr = '4 2 *' expected_result = 8 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_operator_is_division_of_two_numbers_then_return_the_quotient( self): expr = '4 2 /' expected_result = 2 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_operator_is_subtraction_of_two_numbers_then_return_the_difference( self): expr = '4 2 -' expected_result = 2 self.assertEqual(rpn_calculate(expr), expected_result)
def test_with_expr_with_MIN_adn_MAX_chained_return_MIN(self): expr = '1 2 3 MIN MAX' expected_result = 1 self.assertEqual(rpn_calculate(expr), expected_result)
def test_with_subtraction_operand_and_MIN_return_negative_of_biggest(self): expr = '1 2 3 MIN -' expected_result = -1 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_multiplication_of_two_numbers_then_return_the_product(self): expr = '7 3 *' expected_result = 21 self.assertEqual(rpn_calculate(expr), expected_result)
def test_with_four_operands_and_three_operators_then_return_result(self): expr = '3 5 8 * 7 + *' expected_result = 141 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_division_of_two_numbers_then_return_the_ratio(self): expr = '6 3 /' expected_result = 2 self.assertEqual(rpn_calculate(expr), expected_result)
def test_with_SQRT_and_a_expression_then_return_result(self): expr = '1 4 SQRT +' expected_result = 3 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_minus_after_single_number_then_return_negative_of_number( self): expr = '4 -' expected_result = -4 self.assertEqual(rpn_calculate(expr), expected_result)
def test_with_three_operands_and_MAX_return_the_biggest(self): expr = '1 2 3 MAX' expected_result = 3 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_single_digit_is_passed_then_return_the_same_digit(self): expr = '45' expected_result = 45 self.assertEqual(rpn_calculate(expr), expected_result)
def test_when_sqrt_and_digit_are_passed_then_return_square_of_digit(self): expr = '16 SQRT' expected_result = 4 self.assertEqual(rpn_calculate(expr), expected_result)