mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 04:12:13 +00:00
Merge branch 'nim'
This commit is contained in:
commit
318218e3bc
3
nim/.gitignore
vendored
Normal file
3
nim/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
nimcache/
|
||||||
|
nimblecache/
|
||||||
|
htmldocs/
|
||||||
35
nim/src/gildedrose.nim
Normal file
35
nim/src/gildedrose.nim
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import items
|
||||||
|
|
||||||
|
proc updateQuality*(items: var seq[Item]) =
|
||||||
|
for i in 0 ..< items.len:
|
||||||
|
if items[i].name != "Aged Brie" and items[i].name != "Backstage passes to a TAFKAL80ETC concert":
|
||||||
|
if items[i].quality > 0:
|
||||||
|
if items[i].name != "Sulfuras, Hand of Ragnaros":
|
||||||
|
items[i].quality = items[i].quality - 1
|
||||||
|
else:
|
||||||
|
if items[i].quality < 50:
|
||||||
|
items[i].quality = items[i].quality + 1
|
||||||
|
|
||||||
|
if items[i].name == "Backstage passes to a TAFKAL80ETC concert":
|
||||||
|
if items[i].sellIn < 11:
|
||||||
|
if items[i].quality < 50:
|
||||||
|
items[i].quality = items[i].quality + 1
|
||||||
|
|
||||||
|
if items[i].sellIn < 6:
|
||||||
|
if items[i].quality < 50:
|
||||||
|
items[i].quality = items[i].quality + 1
|
||||||
|
|
||||||
|
if items[i].name != "Sulfuras, Hand of Ragnaros":
|
||||||
|
items[i].sellIn = items[i].sellIn - 1
|
||||||
|
|
||||||
|
if items[i].sellIn < 0:
|
||||||
|
if items[i].name != "Aged Brie":
|
||||||
|
if items[i].name != "Backstage passes to a TAFKAL80ETC concert":
|
||||||
|
if items[i].quality > 0:
|
||||||
|
if items[i].name != "Sulfuras, Hand of Ragnaros":
|
||||||
|
items[i].quality = items[i].quality - 1
|
||||||
|
else:
|
||||||
|
items[i].quality = items[i].quality - items[i].quality
|
||||||
|
else:
|
||||||
|
if items[i].quality < 50:
|
||||||
|
items[i].quality = items[i].quality + 1
|
||||||
12
nim/src/items.nim
Normal file
12
nim/src/items.nim
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import strformat
|
||||||
|
|
||||||
|
type
|
||||||
|
Item* = object
|
||||||
|
name*: string
|
||||||
|
sellIn*, quality*: int
|
||||||
|
|
||||||
|
proc initItem*(name: string, sellIn, quality: int): Item =
|
||||||
|
Item(name: name, sellIn: sellIn, quality: quality)
|
||||||
|
|
||||||
|
proc `$`*(item: Item): string =
|
||||||
|
&"{item.name}, {item.sellIn}, {item.quality}"
|
||||||
10
nim/test/gilded.nim
Normal file
10
nim/test/gilded.nim
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import unittest
|
||||||
|
import ../src/items
|
||||||
|
import ../src/gildedrose
|
||||||
|
|
||||||
|
suite "Gilded Rose":
|
||||||
|
|
||||||
|
test "foo":
|
||||||
|
var items = @[initItem("foo", 0, 0)]
|
||||||
|
items.updateQuality()
|
||||||
|
check items[0].name == "fixme"
|
||||||
Loading…
Reference in New Issue
Block a user