diff --git a/python/gilded_rose.py b/python/gilded_rose.py index 2dc0895c..4cd9caa6 100755 --- a/python/gilded_rose.py +++ b/python/gilded_rose.py @@ -20,11 +20,10 @@ class GildedRose(object): item.sell_in -= 1 has_positive_sell_in = item.sell_in >= 0 - rate = -1 + rate = -1 if has_positive_sell_in else -2 if item.name == "Aged Brie": - rate = 1 if has_positive_sell_in else 2 - return self.adjust_quality(item, rate) + rate = abs(rate) if item.name == "Backstage passes to a TAFKAL80ETC concert": if 5 <= item.sell_in <= 10: @@ -32,14 +31,12 @@ class GildedRose(object): elif 0 <= item.sell_in <= 5: rate = 3 else: - rate = -item.quality - return self.adjust_quality(item, rate) + rate = 1 if has_positive_sell_in else -item.quality if "Conjured" in item.name: - rate = -2 if has_positive_sell_in else -4 - return self.adjust_quality(item, rate) + rate *= 2 - return self.adjust_quality(item, -1) if has_positive_sell_in else self.adjust_quality(item, -2) + return self.adjust_quality(item, rate) class Item: diff --git a/python/test_gilded_rose.py b/python/test_gilded_rose.py index 62a8d2d0..231e0d8c 100644 --- a/python/test_gilded_rose.py +++ b/python/test_gilded_rose.py @@ -63,6 +63,13 @@ class GildedRoseTest(unittest.TestCase): Quality increases by 2 when there are 10 days or less and by 3 when there are 5 days or less but Quality drops to 0 after the concert """ + # Standard - quality increases with age + items = [Item("Backstage passes to a TAFKAL80ETC concert", 15, 10)] + gilded_rose = GildedRose(items) + gilded_rose.update_quality() + + self.assertEqual(11, items[0].quality) + # Ten days or less - quality increases by 2 items = [Item("Backstage passes to a TAFKAL80ETC concert", 9, 10)] gilded_rose = GildedRose(items)