class Discount_Calculator_TDD(unittest.TestCase): def setUp(self): self.calc = Discount_Calculator() def test_calculate_discount_method_percent_input(self): result = self.calc.calculate_discount(250, 10, 'percent') self.assertEqual(25, result) def test_calculate_discount_method_whole_num_input(self): result = self.calc.calculate_discount(250, 20, 'absolute') self.assertEqual(20, result) def test_calculator_returns_error_message_if_both_args_not_numbers(self): self.assertRaises(ValueError, self.calc.calculate_discount, 'two', 'three', 'percent') def test_calculator_returns_error_message_if_x_arg_not_number(self): self.assertRaises(ValueError, self.calc.calculate_discount, 'two', 3, 'percent') def test_calculator_returns_error_message_if_y_arg_not_number(self): self.assertRaises(ValueError, self.calc.calculate_discount, 2, 'three', 'percent') def test_handles_floats_percent(self): result = self.calc.calculate_discount(250.0, 10.0, 'percent') self.assertEqual(25, result) def test_handles_floats_absolute(self): result = self.calc.calculate_discount(250.0, 10.0, 'absolute') self.assertEqual(10, result) def test_invalid_discount_type(self): self.assertRaises(ValueError, self.calc.calculate_discount, 250, 10, 'random') def test_discount_greater_than_total(self): self.assertRaises(ValueError, self.calc.calculate_discount, 200, 201, 'percent') def test_discount_percent_over_one_hundred(self): self.assertRaises(ValueError, self.calc.calculate_discount, 200, 101, 'percent')
def setUp(self): self.calc = Discount_Calculator()
def excessive_absolute_discount_type_test(self): discount_calculator = Discount_Calculator() self.assertRaises(ValueError, discount_calculator.calculate, 250, 260, 'absolute')
def test_10_percentage_discount(self): discount_calculator = Discount_Calculator() result = discount_calculator.calculate(100, 10, 'percent') self.assertEqual(10.0, result)
def floating_point_absolute_discount_test(self): discount_calculator = Discount_Calculator() result = discount_calculator.calculate(250.0, 5.0, 'absolute') self.assertEqual(5.0, result)
def excessive_percent_discount_type_test(self): discount_calculator = Discount_Calculator() self.assertRaises(ValueError, discount_calculator.calculate, 250, 110, 'percent')
def test_invalid_discount_type(self): discount_calculator = Discount_Calculator() self.assertRaises(ValueError, discount_calculator.calculate, 250, 5, 'random')
def floating_point_percentage_discount_test(self): discount_calculator = Discount_Calculator() result = discount_calculator.calculate(100.0, 10.0, 'percent') self.assertEqual(10.0, result)
def test_five_dollar_discount(self): discount_calculator = Discount_Calculator() result = discount_calculator.calculate(250, 5, 'absolute') self.assertEqual(5, result)
def test_15_percentage_discount(self): discount_calculator = Discount_Calculator() result = discount_calculator.calculate(100, 15, 'percent') self.assertEqual(15.0, result)