Sha256: 5beeb00eb056fc5c6dc17b83d0a73d5e0829b835346f2fb3c1b59ba94c44b184
Contents?: true
Size: 1.38 KB
Versions: 78
Compression:
Stored size: 1.38 KB
Contents
exercise: Clock version: 3 methods: time add-minutes subtract-minutes plan: 53 tests: |- for $c-data<cases>»<cases>»<>.flat -> %case { given %case<property> { when 'create' { is Clock.?new( |%(.<input><hour minute>:p) ).?time, |.<expected description> given %case; } when 'add'|'subtract' { given %case { my $clock = Clock.?new: |%(.<input><hour minute>:p); $clock.?add-minutes: .<input><value> if .<property> eq 'add'; $clock.?subtract-minutes: .<input><value> if .<property> eq 'subtract'; is $clock.?time, |.<expected description>; } } when 'equal' { is-deeply ([eq] gather { take Clock.?new( |%(.<hour minute>:p) ).?time for %case<input><clock1 clock2>; }), |%case<expected description>; } } } is Clock.?new(:0hour,:0minute).?add-minutes(65).?time, '01:05', 'add-minutes method can be chained'; is Clock.?new(:0hour,:0minute).?subtract-minutes(65).?time, '22:55', 'subtract-minutes method can be chained'; unit: class example: |- has Int:D $.hour = 0; has Int:D $.minute = 0; method time { sprintf '%02d:%02d', ($!hour + $!minute div 60) % 24, $!minute % 60; } method add-minutes (Int:D $min) { $!minute += $min and return self; } method subtract-minutes (Int:D $min) { self.add-minutes(-$min); } stub: |- has $.hour; has $.minute;
Version data entries
78 entries across 78 versions & 1 rubygems