Sha256: 4930cad31d930a1f1e9c09b6c923f62f06fc5c47d3f8afe25efdf146d3314d74

Contents?: true

Size: 1.26 KB

Versions: 78

Compression:

Stored size: 1.26 KB

Contents

exercise: SpaceAge
version: 2
plan: 8
tests: |-
  is (age-on ::(.<input><planet>): .<input><seconds>), |.<expected description> for @($c-data<cases>);

unit: module
example: |-
  role Planet {
    method age-on ($seconds) {
      ($seconds / self.orbital-period).round(0.01);
    }
  }

  class Earth does Planet is export {
    my $.orbital-period = 31557600;
  }

  my %planets = (
    :Mercury(0.2408467),
    :Venus(0.61519726),
    :Mars(1.8808158),
    :Jupiter(11.862615),
    :Saturn(29.447498),
    :Uranus(84.016846),
    :Neptune(164.79132),
  );
  for %planets.kv -> $planet, $relative {
    use MONKEY-SEE-NO-EVAL;
    OUR::EXPORT::ALL::{$planet} := OUR::EXPORT::DEFAULT::{$planet} := EVAL "class $planet does Planet is export " ~
    '{ my $.orbital-period = calculate-orbital-period $relative }';
  }

  sub calculate-orbital-period ($relative-to-earth) {
    Earth.orbital-period * $relative-to-earth;
  }
stub: |-
  role Planet {
    method age-on ($seconds) {
    }
  }

  class Earth does Planet is export {
    my $.orbital-period = 31557600; 
  }

  =for comment
  ---
  Orbital periods relative to Earth:
    Mercury: 0.2408467
    Venus: 0.61519726
    Mars: 1.8808158
    Jupiter: 11.862615
    Saturn: 29.447498
    Uranus: 84.016846
    Neptune: 164.79132
  ...

Version data entries

78 entries across 78 versions & 1 rubygems

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