space-age.t (1753B) - raw
1 #!/usr/bin/env perl 2 use Test2::V0; 3 use JSON::PP; 4 use constant JSON => JSON::PP->new; 5 6 use FindBin qw<$Bin>; 7 use lib $Bin, "$Bin/local/lib/perl5"; 8 9 use SpaceAge qw<age_on_planet>; 10 11 my @test_cases = do { local $/; @{ JSON->decode(<DATA>) }; }; 12 13 imported_ok qw<age_on_planet> or bail_out; 14 15 for my $case (@test_cases) { 16 is( age_on_planet( $case->{input} ), 17 $case->{expected}, $case->{description}, ); 18 } 19 20 done_testing; 21 22 __DATA__ 23 [ 24 { 25 "description": "age on Earth", 26 "expected": 31.69, 27 "input": { 28 "planet": "Earth", 29 "seconds": 1000000000 30 }, 31 "property": "age" 32 }, 33 { 34 "description": "age on Mercury", 35 "expected": 280.88, 36 "input": { 37 "planet": "Mercury", 38 "seconds": 2134835688 39 }, 40 "property": "age" 41 }, 42 { 43 "description": "age on Venus", 44 "expected": 9.78, 45 "input": { 46 "planet": "Venus", 47 "seconds": 189839836 48 }, 49 "property": "age" 50 }, 51 { 52 "description": "age on Mars", 53 "expected": 35.88, 54 "input": { 55 "planet": "Mars", 56 "seconds": 2129871239 57 }, 58 "property": "age" 59 }, 60 { 61 "description": "age on Jupiter", 62 "expected": 2.41, 63 "input": { 64 "planet": "Jupiter", 65 "seconds": 901876382 66 }, 67 "property": "age" 68 }, 69 { 70 "description": "age on Saturn", 71 "expected": 2.15, 72 "input": { 73 "planet": "Saturn", 74 "seconds": 2000000000 75 }, 76 "property": "age" 77 }, 78 { 79 "description": "age on Uranus", 80 "expected": 0.46, 81 "input": { 82 "planet": "Uranus", 83 "seconds": 1210123456 84 }, 85 "property": "age" 86 }, 87 { 88 "description": "age on Neptune", 89 "expected": 0.35, 90 "input": { 91 "planet": "Neptune", 92 "seconds": 1821023456 93 }, 94 "property": "age" 95 } 96 ]