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

Version Path
trackler-2.2.1.180 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.179 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.178 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.177 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.176 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.175 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.174 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.173 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.172 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.171 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.170 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.169 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.167 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.166 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.165 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.164 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.163 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.162 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.161 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.160 tracks/perl5/exercises/grains/.meta/exercise-data.yaml