From 37352f6fd479e946b5f8f0941338d8e6207d1c4d Mon Sep 17 00:00:00 2001 From: zoengsw Date: Mon, 10 Nov 2025 17:05:07 +0000 Subject: [PATCH] refactor: implement all cases --- python/tests/gilded_rose.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/python/tests/gilded_rose.py b/python/tests/gilded_rose.py index 9629cfee..7e076dd0 100644 --- a/python/tests/gilded_rose.py +++ b/python/tests/gilded_rose.py @@ -10,24 +10,37 @@ class GildedRose(object): self.items = items def __qual_inc(self, item, inc): - item.quality = max(50, item.quality + inc) + item.quality = min(self.MAX_QUAL, item.quality + inc) def __qual_dec(self, item, dec): - item.quality = min(0, item.quality - dec) + item.quality = max(0, item.quality - dec) def update_quality(self): for item in self.items: match item.name: case self.AGED_BRIE: - pass + if item.sell_in > 0: + self.__qual_inc(item, 1) + else: + self.__qual_inc(item, 2) case self.SULFURAS: pass case self.BACKSTAGE: - pass + if item.sell_in > 10: + self.__qual_inc(item, 1) + elif item.sell_in > 5: + self.__qual_inc(item, 2) + elif item.sell_in > 0: + self.__qual_inc(item, 3) + else: + item.quality = 0 case _: - self.__qual_dec(item, 1) + if item.sell_in > 0: + self.__qual_dec(item, 1) + else: + self.__qual_dec(item, 2) if not item.name == self.SULFURAS: - item.sell_in = item.sell_in - 1 + item.sell_in -= 1 # if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert": # if item.quality > 0: # if item.name != "Sulfuras, Hand of Ragnaros":