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.159 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.158 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.157 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.156 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.155 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.154 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.153 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.152 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.151 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.150 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.149 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.148 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.147 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.146 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.145 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.144 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.143 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.142 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.141 tracks/perl5/exercises/grains/.meta/exercise-data.yaml
trackler-2.2.1.140 tracks/perl5/exercises/grains/.meta/exercise-data.yaml