Sha256: 26acbfd2aee22ffa627856bdc3a9609c08402a785ed3bf42cfdeb3dc275b4f4f

Contents?: true

Size: 1.31 KB

Versions: 82

Compression:

Stored size: 1.31 KB

Contents

exercise: SpaceAge
version: 1
plan: 10
imports: Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune
tests: |
  is (age-on ::(.<planet>): .<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

82 entries across 82 versions & 1 rubygems

Version Path
trackler-2.2.1.53 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.52 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.51 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.50 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.49 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.48 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.47 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.46 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.45 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.44 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.43 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.42 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.41 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.40 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.39 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.38 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.37 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.36 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.35 tracks/perl6/exercises/space-age/example.yaml
trackler-2.2.1.34 tracks/perl6/exercises/space-age/example.yaml