def get_total(self): discounted_prices = discount_engine(self.cart) total = 0.00 for item, units in self.cart.items(): regular_price = priceRepository[item] * units discount_price = discounted_prices[item] total += min(regular_price, discount_price) return total
def test_discount_engine_one_item_cart_no_valid_discount(self): results = {'Ground Beef': 9999.99} self.assertEqual(results, discount_engine({"Ground Beef": 1}))
def test_discount_engine_empty_cart(self): self.assertEqual(discount_engine({}), {})
def test_no_discounts(self): results = discount_engine({"Bread": 1.0}) self.assertEqual(results, {"Bread": 9999.99})
def test_weighted_item_n_for_m(self): results = discount_engine({"Ground Beef": 1.0, "Chicken": 1.0}) self.assertEqual(results, { "Ground Beef": 9999.99, "Chicken": 2.70 }) # Ground beef wont have a discount, but chicken will
def test_multiple_of_same_discount(self): results = discount_engine({"Coke": 6}) self.assertEqual(results, {'Coke': 6.00})
def test_n_for_m_fixed(self): results = discount_engine({"Milk": 2}) self.assertEqual(results, {'Milk': 7.00})
def test_multiple_valid_discounts(self): results = discount_engine({"Mustard": 3}) self.assertEqual(results, {'Mustard': 3.00})
def test_ten_percent_off_discount(self): self.assertEqual({'Chicken Soup': 3.582}, discount_engine({"Chicken Soup": 2})) self.assertEqual({'Chicken Soup': 5.373}, discount_engine({"Chicken Soup": 3}))
def test_discount_engine_items_cart_with_valid_discount(self): results = discount_engine({"Gum": 4}) self.assertEqual(results, {'Gum': .75})
def test_discount_engine_items_cart_with_valid_discount(self): results = {'Gum': .5} self.assertEqual(results, discount_engine({"Gum": 3}))