Sha256: 3787ec5143628f32eb6c88d5a5e2b41e9e42e311043140fc7544ec78b1b2332c
Contents?: true
Size: 1.21 KB
Versions: 45
Compression:
Stored size: 1.21 KB
Contents
exercise: Grains version: 1 plan: 12 subs: grains_on_square total_grains tests: |- my @exception_cases; foreach (@{$C_DATA->{cases}}) { if (exists $_->{cases}) { foreach my $case (@{$_->{cases}}) { if ($case->{property} eq 'square') { if ($case->{expected} == -1) { push @exception_cases, $case; } else { is grains_on_square($case->{input}{square}), $case->{expected}, 'square no. ' . $case->{description}; } } } } elsif ($_->{property} eq 'total') { is total_grains(), $_->{expected}, $_->{description}; } } SKIP: { eval { require Test::Fatal }; skip 'Test::Fatal not loaded', scalar @exception_cases if $@; eval q{ use Test::Fatal qw(dies_ok); dies_ok {grains_on_square($_->{input}{square})} $_->{description} foreach @exception_cases; }; } example: |- sub grains_on_square { my ($square) = @_; if ($square < 1 || $square > 64) { die 'invalid square'; } return int 2 ** ($square - 1); } sub total_grains { my $sum; map {$sum += grains_on_square($_)} 1..64; return $sum; } stub: |- sub grains_on_square { } sub total_grains { }
Version data entries
45 entries across 45 versions & 1 rubygems