tracks/perl6/exercises/roman-numerals/roman-numerals.t in trackler-2.2.1.100 vs tracks/perl6/exercises/roman-numerals/roman-numerals.t in trackler-2.2.1.101
- old
+ new
@@ -2,139 +2,181 @@
use v6;
use Test;
use JSON::Fast;
use lib $?FILE.IO.dirname;
use RomanNumerals;
-plan 18;
+plan 19;
-my Version:D $version = v2;
+my Version:D $version = v3;
if RomanNumerals.^ver !~~ $version {
warn "\nExercise version mismatch. Further tests may fail!"
~ "\nRomanNumerals is {RomanNumerals.^ver.gist}. "
~ "Test is {$version.gist}.\n";
}
my $c-data = from-json $=pod.pop.contents;
for $c-data<cases>.values {
- is to-roman(.<number>), |.<expected description>;
+ is to-roman(.<input><number>), |.<expected description>;
}
=head2 Canonical Data
=begin code
-
{
"exercise": "roman-numerals",
- "version": "1.0.0",
+ "version": "1.2.0",
"cases": [
{
"description": "1 is a single I",
"property": "roman",
- "number": 1,
+ "input": {
+ "number": 1
+ },
"expected": "I"
},
{
"description": "2 is two I's",
"property": "roman",
- "number": 2,
+ "input": {
+ "number": 2
+ },
"expected": "II"
},
{
"description": "3 is three I's",
"property": "roman",
- "number": 3,
+ "input": {
+ "number": 3
+ },
"expected": "III"
},
{
"description": "4, being 5 - 1, is IV",
"property": "roman",
- "number": 4,
+ "input": {
+ "number": 4
+ },
"expected": "IV"
},
{
"description": "5 is a single V",
"property": "roman",
- "number": 5,
+ "input": {
+ "number": 5
+ },
"expected": "V"
},
{
"description": "6, being 5 + 1, is VI",
"property": "roman",
- "number": 6,
+ "input": {
+ "number": 6
+ },
"expected": "VI"
},
{
"description": "9, being 10 - 1, is IX",
"property": "roman",
- "number": 9,
+ "input": {
+ "number": 9
+ },
"expected": "IX"
},
{
"description": "20 is two X's",
"property": "roman",
- "number": 27,
+ "input": {
+ "number": 27
+ },
"expected": "XXVII"
},
{
"description": "48 is not 50 - 2 but rather 40 + 8",
"property": "roman",
- "number": 48,
+ "input": {
+ "number": 48
+ },
"expected": "XLVIII"
},
{
+ "description": "49 is not 40 + 5 + 4 but rather 50 - 10 + 10 - 1",
+ "property": "roman",
+ "input": {
+ "number": 49
+ },
+ "expected": "XLIX"
+ },
+ {
"description": "50 is a single L",
"property": "roman",
- "number": 59,
+ "input": {
+ "number": 59
+ },
"expected": "LIX"
},
{
"description": "90, being 100 - 10, is XC",
"property": "roman",
- "number": 93,
+ "input": {
+ "number": 93
+ },
"expected": "XCIII"
},
{
"description": "100 is a single C",
"property": "roman",
- "number": 141,
+ "input": {
+ "number": 141
+ },
"expected": "CXLI"
},
{
"description": "60, being 50 + 10, is LX",
"property": "roman",
- "number": 163,
+ "input": {
+ "number": 163
+ },
"expected": "CLXIII"
},
{
"description": "400, being 500 - 100, is CD",
"property": "roman",
- "number": 402,
+ "input": {
+ "number": 402
+ },
"expected": "CDII"
},
{
"description": "500 is a single D",
"property": "roman",
- "number": 575,
+ "input": {
+ "number": 575
+ },
"expected": "DLXXV"
},
{
"description": "900, being 1000 - 100, is CM",
"property": "roman",
- "number": 911,
+ "input": {
+ "number": 911
+ },
"expected": "CMXI"
},
{
"description": "1000 is a single M",
"property": "roman",
- "number": 1024,
+ "input": {
+ "number": 1024
+ },
"expected": "MXXIV"
},
{
"description": "3000 is three M's",
"property": "roman",
- "number": 3000,
+ "input": {
+ "number": 3000
+ },
"expected": "MMM"
}
]
}
-
=end code