From 8e6b69ed9bfae2dca2e0746ffa8f9ae832048875 Mon Sep 17 00:00:00 2001 From: zoengsw Date: Mon, 10 Nov 2025 14:46:17 +0000 Subject: [PATCH] fixed brie increment and day decrement bug --- python/tests/test_gilded_rose.py | 57 +++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/python/tests/test_gilded_rose.py b/python/tests/test_gilded_rose.py index b69951c0..9d7fdce0 100644 --- a/python/tests/test_gilded_rose.py +++ b/python/tests/test_gilded_rose.py @@ -1,8 +1,12 @@ # -*- coding: utf-8 -*- import unittest +from hashlib import file_digest from gilded_rose import Item, GildedRose +BACKSTAGE = 'Backstage passes to a TAFKAL80ETC concert' +SULFURAS = 'Sulfuras, Hand of Ragnaros' +AGED_BRIE = 'Aged Brie' class GildedRoseTest(unittest.TestCase): @@ -25,25 +29,60 @@ class GildedRoseTest(unittest.TestCase): self.generate_and_update_gilded_rose(items, 1) self.check_item_values(items[0], 'foo', 0, 0) + def test_foo_multiple_days(self): + items= [Item('foo', 2, 3)] + self.generate_and_update_gilded_rose(items, 2) + self.check_item_values(items[0], 'foo', 0, 1) - def test_foo_nonnegative(self): - items = [Item("foo", 0, 0)] + def test_quality_nonnegative(self): + items = [Item("foo", 2, 0)] self.generate_and_update_gilded_rose(items, 1) - self.check_item_values(items[0], "foo", 0, 0) + self.check_item_values(items[0], "foo", 1, 0) + def test_after_sellby_date(self): + items = [Item("foo", 2, 10)] + gilded_rose = self.generate_and_update_gilded_rose(items, 2) + self.check_item_values(items[0], "foo", 0, 8) + self.update_gilded_rose_days(gilded_rose, 2) + self.check_item_values(items[0], "foo", -2, 4) + + def test_aged_brie_4_days(self): + items = [Item(AGED_BRIE, 2, 10)] + gilded_rose = self.generate_and_update_gilded_rose(items, 2) + self.check_item_values(items[0], AGED_BRIE, 0, 12) + self.update_gilded_rose_days(gilded_rose, 2) + self.check_item_values(items[0], AGED_BRIE, -2, 16) + + def test_aged_brie_max_quality(self): + items = [Item(AGED_BRIE, 15, 40)] + gilded_rose = self.generate_and_update_gilded_rose(items, 10) + self.check_item_values(items[0], AGED_BRIE, 5, 50) + self.update_gilded_rose_days(gilded_rose, 6) + self.check_item_values(items[0], AGED_BRIE, -1, 50) + + def test_sulfuras(self): + items = [Item(SULFURAS, 10, 30)] + self.generate_and_update_gilded_rose(items, 50) + self.check_item_values(items[0], SULFURAS, 10, 30) + + def test_backstage_passes_15_days(self): + items = [Item(BACKSTAGE, 15, 0)] + gilded_rose = self.generate_and_update_gilded_rose(items, 5) + self.check_item_values(items[0], BACKSTAGE, 10, 5) + self.update_gilded_rose_days(gilded_rose, 5) + self.check_item_values(items[0], BACKSTAGE, 5, 15) + self.update_gilded_rose_days(gilded_rose, 5) + self.check_item_values(items[0], BACKSTAGE, 0, 30) + self.update_gilded_rose_days(gilded_rose, 5) + self.check_item_values(items[0], BACKSTAGE, -5, 0) def test_multiple_items(self): items = [Item("foo", 0, 0), Item("bar", 1, 1), Item("baz", 2, 2)] self.generate_and_update_gilded_rose(items, 1) - self.check_item_values(items[0], "foo", 0, 0) + self.check_item_values(items[0], "foo", -1, 0) self.check_item_values(items[1], "bar", 0, 0) self.check_item_values(items[2], "baz", 1, 1) - def test_multiple_days(self): - items= [Item('foo', 2, 3)] - self.generate_and_update_gilded_rose(items, 2) - self.check_item_values(items[0], 'foo', 0, 1) -