mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 04:12:13 +00:00
commit
50e4577099
1
Matlab/.gitignore
vendored
Normal file
1
Matlab/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.asv
|
||||||
64
Matlab/GildedRose.m
Normal file
64
Matlab/GildedRose.m
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
classdef GildedRose
|
||||||
|
|
||||||
|
properties
|
||||||
|
items
|
||||||
|
end
|
||||||
|
|
||||||
|
methods
|
||||||
|
function obj = GildedRose(items)
|
||||||
|
obj.items = items;
|
||||||
|
end
|
||||||
|
|
||||||
|
function update_quality(obj)
|
||||||
|
for i = 1:length(obj.items)
|
||||||
|
item = obj.items(i);
|
||||||
|
if item.name ~= "Aged Brie" && item.name ~= "Backstage passes to a TAFKAL80ETC concert"
|
||||||
|
if item.quality > 0
|
||||||
|
if item.name ~= "Sulfuras, Hand of Ragnaros"
|
||||||
|
item.quality = item.quality - 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if item.quality < 50
|
||||||
|
item.quality = item.quality + 1;
|
||||||
|
if item.name == "Backstage passes to a TAFKAL80ETC concert"
|
||||||
|
if item.sell_in < 11
|
||||||
|
if item.quality < 50
|
||||||
|
item.quality = item.quality + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if item.sell_in < 6
|
||||||
|
if item.quality < 50
|
||||||
|
item.quality = item.quality + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if item.name ~= "Sulfuras, Hand of Ragnaros"
|
||||||
|
item.sell_in = item.sell_in - 1;
|
||||||
|
end
|
||||||
|
if item.sell_in < 0
|
||||||
|
if item.name ~= "Aged Brie"
|
||||||
|
if item.name ~= "Backstage passes to a TAFKAL80ETC concert"
|
||||||
|
if item.quality > 0
|
||||||
|
if item.name ~= "Sulfuras, Hand of Ragnaros"
|
||||||
|
item.quality = item.quality - 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
item.quality = item.quality - item.quality;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if item.quality < 50
|
||||||
|
item.quality = item.quality + 1;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
23
Matlab/Item.m
Normal file
23
Matlab/Item.m
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
classdef Item < handle
|
||||||
|
% Do not edit or the goblin will one-shot you !
|
||||||
|
|
||||||
|
properties
|
||||||
|
name
|
||||||
|
sell_in
|
||||||
|
quality
|
||||||
|
end
|
||||||
|
|
||||||
|
methods
|
||||||
|
function obj = Item(name, sell_in, quality)
|
||||||
|
obj.name = name;
|
||||||
|
obj.sell_in = sell_in;
|
||||||
|
obj.quality = quality;
|
||||||
|
end
|
||||||
|
|
||||||
|
function disp(obj)
|
||||||
|
fprintf("%s, %d, %d\n", obj.name, obj.sell_in, obj.quality)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
12
Matlab/TestGildedRose.m
Normal file
12
Matlab/TestGildedRose.m
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
classdef TestGildedRose < matlab.unittest.TestCase
|
||||||
|
|
||||||
|
methods(Test)
|
||||||
|
% Test methods
|
||||||
|
function test_standard_item(tc)
|
||||||
|
items = [Item("foo", 4, 5)];
|
||||||
|
gilded_rose = GildedRose(items);
|
||||||
|
gilded_rose.update_quality();
|
||||||
|
tc.verifyEqual(items(1).name, "Fixme")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
31
Matlab/TextTest.m
Normal file
31
Matlab/TextTest.m
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
function TextTest(nDays)
|
||||||
|
|
||||||
|
if nargin < 1
|
||||||
|
nDays = 2;
|
||||||
|
end
|
||||||
|
|
||||||
|
items = [
|
||||||
|
Item("+5 Dexterity Vest", 10, 20);
|
||||||
|
Item("Aged Brie", 2, 0);
|
||||||
|
Item("Elixir of the Mongoose", 5, 7);
|
||||||
|
Item("Sulfuras, Hand of Ragnaros", 0, 80);
|
||||||
|
Item("Sulfuras, Hand of Ragnaros", -1, 80);
|
||||||
|
Item("Backstage passes to a TAFKAL80ETC concert", 15, 20);
|
||||||
|
Item("Backstage passes to a TAFKAL80ETC concert", 10, 49);
|
||||||
|
Item("Backstage passes to a TAFKAL80ETC concert", 5, 49);
|
||||||
|
Item("Conjured Mana Cake", 3, 6)];
|
||||||
|
|
||||||
|
|
||||||
|
for day = 1:nDays
|
||||||
|
fprintf("-------- day %d --------\n", day)
|
||||||
|
disp("name, sellIn, quality")
|
||||||
|
for i = 1:length(items)
|
||||||
|
disp(items(i))
|
||||||
|
end
|
||||||
|
disp(" ")
|
||||||
|
GildedRose(items).update_quality()
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user