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