Skip to content

Commit 2d24635

Browse files
committed
clock: Canonical Test Data improved, part 1
This has the non-comparitive tests implemented from the changes implemented in the canonical changes introduced by @kytrinyx references #282 references #166
1 parent a465f74 commit 2d24635

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

exercises/clock/clock_test.rb

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,27 @@
33
require 'minitest/autorun'
44
require_relative 'clock'
55

6+
module HelperUnits
7+
MINUTE = 60
8+
HOUR = MINUTE * 60
9+
DAY = HOUR * 24
10+
11+
def minutes(minutes)
12+
minutes
13+
end
14+
15+
def hours(hours)
16+
hours * MINUTE
17+
end
18+
19+
def days(days)
20+
days * DAY
21+
end
22+
end
23+
624
class ClockTest < Minitest::Test
25+
include HelperUnits
26+
727
def test_on_the_hour
828
assert_equal '08:00', Clock.at(8).to_s
929
assert_equal '09:00', Clock.at(9).to_s
@@ -38,6 +58,72 @@ def test_subtract_minutes
3858
assert_equal '08:30', clock.to_s
3959
end
4060

61+
def test_hour_rolls_over_continuously
62+
skip
63+
clock = Clock.at(0) + hours(100)
64+
assert_equal '04:00', clock.to_s
65+
end
66+
67+
def test_minutes_roll_over_continuously
68+
skip
69+
clock = Clock.at(0) + minutes(1723)
70+
assert_equal '04:43', clock.to_s
71+
end
72+
73+
def test_hour_and_minutes_roll_over_continuously
74+
skip
75+
clock = Clock.at(0) + hours(201) + minutes(3001)
76+
assert_equal '11:01', clock.to_s
77+
end
78+
79+
def test_negative_hours_roll_over_continuously
80+
skip
81+
clock = Clock.at(0) - hours(91)
82+
assert_equal '05:00', clock.to_s
83+
end
84+
85+
def test_negative_minutes_roll_over_continuously
86+
skip
87+
clock = Clock.at(0) - minutes(4820)
88+
assert_equal '15:40', clock.to_s
89+
end
90+
91+
def test_negative_hours_and_minutes_both_roll_over_continuously
92+
skip
93+
clock = Clock.at(0) - hours(121) - minutes(5810)
94+
assert_equal '22:10', clock.to_s
95+
end
96+
97+
def test_add_no_minutes
98+
skip
99+
clock = Clock.at(0) + minutes(0)
100+
assert_equal '00:00', clock.to_s
101+
end
102+
103+
def test_add_more_than_two_hours_with_carry
104+
skip
105+
clock = Clock.at(0, 45) + minutes(160)
106+
assert_equal '03:25', clock.to_s
107+
end
108+
109+
def test_add_more_than_two_days
110+
skip
111+
clock = Clock.at(1, 1) + days(2) + hours(10) + minutes(20)
112+
assert_equal '11:21', clock.to_s
113+
end
114+
115+
def test_subtrackt_more_than_two_hours_with_borrow
116+
skip
117+
clock = Clock.at(6, 15) - hours(2) - minutes(40)
118+
assert_equal '03:35', clock.to_s
119+
end
120+
121+
def test_subtract_more_than_two_days
122+
skip
123+
clock = Clock.at(2, 20) - days(2) - hours(2)
124+
assert_equal '00:20', clock.to_s
125+
end
126+
41127
def test_equivalent_clocks
42128
skip
43129
clock1 = Clock.at(15, 37)

0 commit comments

Comments
 (0)