Sha256: 0c9a252444a8db0056cc14f83861b379e89a5da2f7874be71a7e5784bdeb5b0a
Contents?: true
Size: 1.67 KB
Versions: 58
Compression:
Stored size: 1.67 KB
Contents
#!/usr/bin/env perl6 use v6; use Test; use lib my $dir = $?FILE.IO.dirname; use JSON::Fast; my $exercise = 'Leap'; my $version = v1; my $module = %*ENV<EXERCISM> ?? 'Example' !! $exercise; plan 6; use-ok $module or bail-out; require ::($module); if ::($exercise).^ver !~~ $version { warn "\nExercise version mismatch. Further tests may fail!" ~ "\n$exercise is $(::($exercise).^ver.gist). " ~ "Test is $($version.gist).\n"; bail-out 'Example version must match test version.' if %*ENV<EXERCISM>; } require ::($module) <&is-leap-year>; my $c-data; is &::('is-leap-year')(.<input>), |.<expected description> for @($c-data<cases>); if %*ENV<EXERCISM> { if (my $c-data-file = "$dir/../../problem-specifications/exercises/{$dir.IO.resolve.basename}/canonical-data.json".IO.resolve) ~~ :f { is-deeply $c-data, EVAL('use JSON::Fast; from-json($c-data-file.slurp);'), 'canonical-data'; } else { flunk 'canonical-data' } } else { skip } done-testing; INIT { $c-data := from-json q:to/END/; { "exercise": "leap", "version": "1.0.0", "cases": [ { "description": "year not divisible by 4: common year", "property": "leapYear", "input": 2015, "expected": false }, { "description": "year divisible by 4, not divisible by 100: leap year", "property": "leapYear", "input": 2016, "expected": true }, { "description": "year divisible by 100, not divisible by 400: common year", "property": "leapYear", "input": 2100, "expected": false }, { "description": "year divisible by 400: leap year", "property": "leapYear", "input": 2000, "expected": true } ] } END }
Version data entries
58 entries across 58 versions & 1 rubygems