Skip to content

Commit 5f395b3

Browse files
Sync roman-numerals tests (#541)
1 parent 4f71868 commit 5f395b3

File tree

3 files changed

+71
-51
lines changed

3 files changed

+71
-51
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
return {
2+
module_name = 'roman_numerals',
3+
4+
generate_test = function(case)
5+
local template = [[
6+
assert.are.equal('%s', roman_numerals.to_roman(%s))]]
7+
return template:format(case.expected, case.input.number)
8+
end
9+
}

exercises/practice/roman-numerals/.meta/tests.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,8 @@ description = "3000 is MMM"
8484
[3bc4b41c-c2e6-49d9-9142-420691504336]
8585
description = "3001 is MMMI"
8686

87+
[2f89cad7-73f6-4d1b-857b-0ef531f68b7e]
88+
description = "3888 is MMMDCCCLXXXVIII"
89+
8790
[4e18e96b-5fbb-43df-a91b-9cb511fe0856]
8891
description = "3999 is MMMCMXCIX"
Lines changed: 59 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,111 @@
1-
local to_roman = require('roman-numerals').to_roman
1+
local roman_numerals = require('roman-numerals')
22

33
describe('roman-numerals', function()
4-
it('converts 1', function()
5-
assert.are.equal('I', to_roman(1))
4+
it('1 is i', function()
5+
assert.are.equal('I', roman_numerals.to_roman(1))
66
end)
77

8-
it('converts 2', function()
9-
assert.are.equal('II', to_roman(2))
8+
it('2 is ii', function()
9+
assert.are.equal('II', roman_numerals.to_roman(2))
1010
end)
1111

12-
it('converts 3', function()
13-
assert.are.equal('III', to_roman(3))
12+
it('3 is iii', function()
13+
assert.are.equal('III', roman_numerals.to_roman(3))
1414
end)
1515

16-
it('converts 4', function()
17-
assert.are.equal('IV', to_roman(4))
16+
it('4 is iv', function()
17+
assert.are.equal('IV', roman_numerals.to_roman(4))
1818
end)
1919

20-
it('converts 5', function()
21-
assert.are.equal('V', to_roman(5))
20+
it('5 is v', function()
21+
assert.are.equal('V', roman_numerals.to_roman(5))
2222
end)
2323

24-
it('converts 6', function()
25-
assert.are.equal('VI', to_roman(6))
24+
it('6 is vi', function()
25+
assert.are.equal('VI', roman_numerals.to_roman(6))
2626
end)
2727

28-
it('converts 9', function()
29-
assert.are.equal('IX', to_roman(9))
28+
it('9 is ix', function()
29+
assert.are.equal('IX', roman_numerals.to_roman(9))
3030
end)
3131

32-
it('converts 16', function()
33-
assert.are.equal('XVI', to_roman(16))
32+
it('16 is xvi', function()
33+
assert.are.equal('XVI', roman_numerals.to_roman(16))
3434
end)
3535

36-
it('converts 27', function()
37-
assert.are.equal('XXVII', to_roman(27))
36+
it('27 is xxvii', function()
37+
assert.are.equal('XXVII', roman_numerals.to_roman(27))
3838
end)
3939

40-
it('converts 48', function()
41-
assert.are.equal('XLVIII', to_roman(48))
40+
it('48 is xlviii', function()
41+
assert.are.equal('XLVIII', roman_numerals.to_roman(48))
4242
end)
4343

44-
it('converts 59', function()
45-
assert.are.equal('LIX', to_roman(59))
44+
it('49 is xlix', function()
45+
assert.are.equal('XLIX', roman_numerals.to_roman(49))
4646
end)
4747

48-
it('converts 66', function()
49-
assert.are.equal('LXVI', to_roman(66))
48+
it('59 is lix', function()
49+
assert.are.equal('LIX', roman_numerals.to_roman(59))
5050
end)
5151

52-
it('converts 93', function()
53-
assert.are.equal('XCIII', to_roman(93))
52+
it('66 is lxvi', function()
53+
assert.are.equal('LXVI', roman_numerals.to_roman(66))
5454
end)
5555

56-
it('converts 141', function()
57-
assert.are.equal('CXLI', to_roman(141))
56+
it('93 is xciii', function()
57+
assert.are.equal('XCIII', roman_numerals.to_roman(93))
5858
end)
5959

60-
it('converts 163', function()
61-
assert.are.equal('CLXIII', to_roman(163))
60+
it('141 is cxli', function()
61+
assert.are.equal('CXLI', roman_numerals.to_roman(141))
6262
end)
6363

64-
it('converts 166', function()
65-
assert.are.equal('CLXVI', to_roman(166))
64+
it('163 is clxiii', function()
65+
assert.are.equal('CLXIII', roman_numerals.to_roman(163))
6666
end)
6767

68-
it('converts 402', function()
69-
assert.are.equal('CDII', to_roman(402))
68+
it('166 is clxvi', function()
69+
assert.are.equal('CLXVI', roman_numerals.to_roman(166))
7070
end)
7171

72-
it('converts 575', function()
73-
assert.are.equal('DLXXV', to_roman(575))
72+
it('402 is cdii', function()
73+
assert.are.equal('CDII', roman_numerals.to_roman(402))
7474
end)
7575

76-
it('converts 666', function()
77-
assert.are.equal('DCLXVI', to_roman(666))
76+
it('575 is dlxxv', function()
77+
assert.are.equal('DLXXV', roman_numerals.to_roman(575))
7878
end)
7979

80-
it('converts 911', function()
81-
assert.are.equal('CMXI', to_roman(911))
80+
it('666 is dclxvi', function()
81+
assert.are.equal('DCLXVI', roman_numerals.to_roman(666))
8282
end)
8383

84-
it('converts 1024', function()
85-
assert.are.equal('MXXIV', to_roman(1024))
84+
it('911 is cmxi', function()
85+
assert.are.equal('CMXI', roman_numerals.to_roman(911))
8686
end)
8787

88-
it('converts 1666', function()
89-
assert.are.equal('MDCLXVI', to_roman(1666))
88+
it('1024 is mxxiv', function()
89+
assert.are.equal('MXXIV', roman_numerals.to_roman(1024))
9090
end)
9191

92-
it('converts 3000', function()
93-
assert.are.equal('MMM', to_roman(3000))
92+
it('1666 is mdclxvi', function()
93+
assert.are.equal('MDCLXVI', roman_numerals.to_roman(1666))
9494
end)
9595

96-
it('converts 3001', function()
97-
assert.are.equal('MMMI', to_roman(3001))
96+
it('3000 is mmm', function()
97+
assert.are.equal('MMM', roman_numerals.to_roman(3000))
9898
end)
9999

100-
it('converts 3999', function()
101-
assert.are.equal('MMMCMXCIX', to_roman(3999))
100+
it('3001 is mmmi', function()
101+
assert.are.equal('MMMI', roman_numerals.to_roman(3001))
102+
end)
103+
104+
it('3888 is mmmdccclxxxviii', function()
105+
assert.are.equal('MMMDCCCLXXXVIII', roman_numerals.to_roman(3888))
106+
end)
107+
108+
it('3999 is mmmcmxcix', function()
109+
assert.are.equal('MMMCMXCIX', roman_numerals.to_roman(3999))
102110
end)
103111
end)

0 commit comments

Comments
 (0)