|
2 | 2 |
|
3 | 3 | from clock import Clock |
4 | 4 |
|
5 | | - |
6 | 5 | # Tests adapted from `problem-specifications//canonical-data.json` @ v2.4.0 |
7 | 6 |
|
| 7 | + |
8 | 8 | class ClockTest(unittest.TestCase): |
9 | | - # Test creating a new clock with an initial time. |
| 9 | + # Create A New Clock With An Initial Time |
10 | 10 | def test_on_the_hour(self): |
11 | | - self.assertEqual(str(Clock(8, 0)), '08:00') |
| 11 | + self.assertEqual(str(Clock(8, 0)), "08:00") |
12 | 12 |
|
13 | 13 | def test_past_the_hour(self): |
14 | | - self.assertEqual(str(Clock(11, 9)), '11:09') |
| 14 | + self.assertEqual(str(Clock(11, 9)), "11:09") |
15 | 15 |
|
16 | 16 | def test_midnight_is_zero_hours(self): |
17 | | - self.assertEqual(str(Clock(24, 0)), '00:00') |
| 17 | + self.assertEqual(str(Clock(24, 0)), "00:00") |
18 | 18 |
|
19 | 19 | def test_hour_rolls_over(self): |
20 | | - self.assertEqual(str(Clock(25, 0)), '01:00') |
| 20 | + self.assertEqual(str(Clock(25, 0)), "01:00") |
21 | 21 |
|
22 | 22 | def test_hour_rolls_over_continuously(self): |
23 | | - self.assertEqual(str(Clock(100, 0)), '04:00') |
| 23 | + self.assertEqual(str(Clock(100, 0)), "04:00") |
24 | 24 |
|
25 | 25 | def test_sixty_minutes_is_next_hour(self): |
26 | | - self.assertEqual(str(Clock(1, 60)), '02:00') |
| 26 | + self.assertEqual(str(Clock(1, 60)), "02:00") |
27 | 27 |
|
28 | 28 | def test_minutes_roll_over(self): |
29 | | - self.assertEqual(str(Clock(0, 160)), '02:40') |
| 29 | + self.assertEqual(str(Clock(0, 160)), "02:40") |
30 | 30 |
|
31 | 31 | def test_minutes_roll_over_continuously(self): |
32 | | - self.assertEqual(str(Clock(0, 1723)), '04:43') |
| 32 | + self.assertEqual(str(Clock(0, 1723)), "04:43") |
33 | 33 |
|
34 | 34 | def test_hour_and_minutes_roll_over(self): |
35 | | - self.assertEqual(str(Clock(25, 160)), '03:40') |
| 35 | + self.assertEqual(str(Clock(25, 160)), "03:40") |
36 | 36 |
|
37 | 37 | def test_hour_and_minutes_roll_over_continuously(self): |
38 | | - self.assertEqual(str(Clock(201, 3001)), '11:01') |
| 38 | + self.assertEqual(str(Clock(201, 3001)), "11:01") |
39 | 39 |
|
40 | 40 | def test_hour_and_minutes_roll_over_to_exactly_midnight(self): |
41 | | - self.assertEqual(str(Clock(72, 8640)), '00:00') |
| 41 | + self.assertEqual(str(Clock(72, 8640)), "00:00") |
42 | 42 |
|
43 | 43 | def test_negative_hour(self): |
44 | | - self.assertEqual(str(Clock(-1, 15)), '23:15') |
| 44 | + self.assertEqual(str(Clock(-1, 15)), "23:15") |
45 | 45 |
|
46 | 46 | def test_negative_hour_rolls_over(self): |
47 | | - self.assertEqual(str(Clock(-25, 0)), '23:00') |
| 47 | + self.assertEqual(str(Clock(-25, 0)), "23:00") |
48 | 48 |
|
49 | 49 | def test_negative_hour_rolls_over_continuously(self): |
50 | | - self.assertEqual(str(Clock(-91, 0)), '05:00') |
| 50 | + self.assertEqual(str(Clock(-91, 0)), "05:00") |
51 | 51 |
|
52 | 52 | def test_negative_minutes(self): |
53 | | - self.assertEqual(str(Clock(1, -40)), '00:20') |
| 53 | + self.assertEqual(str(Clock(1, -40)), "00:20") |
54 | 54 |
|
55 | 55 | def test_negative_minutes_roll_over(self): |
56 | | - self.assertEqual(str(Clock(1, -160)), '22:20') |
| 56 | + self.assertEqual(str(Clock(1, -160)), "22:20") |
57 | 57 |
|
58 | 58 | def test_negative_minutes_roll_over_continuously(self): |
59 | | - self.assertEqual(str(Clock(1, -4820)), '16:40') |
| 59 | + self.assertEqual(str(Clock(1, -4820)), "16:40") |
60 | 60 |
|
61 | 61 | def test_negative_sixty_minutes_is_previous_hour(self): |
62 | | - self.assertEqual(str(Clock(2, -60)), '01:00') |
| 62 | + self.assertEqual(str(Clock(2, -60)), "01:00") |
63 | 63 |
|
64 | 64 | def test_negative_hour_and_minutes_both_roll_over(self): |
65 | | - self.assertEqual(str(Clock(-25, -160)), '20:20') |
| 65 | + self.assertEqual(str(Clock(-25, -160)), "20:20") |
66 | 66 |
|
67 | 67 | def test_negative_hour_and_minutes_both_roll_over_continuously(self): |
68 | | - self.assertEqual(str(Clock(-121, -5810)), '22:10') |
| 68 | + self.assertEqual(str(Clock(-121, -5810)), "22:10") |
69 | 69 |
|
70 | | - # Test adding and subtracting minutes. |
| 70 | + # Add Minutes |
71 | 71 | def test_add_minutes(self): |
72 | | - self.assertEqual(str(Clock(10, 0) + 3), '10:03') |
| 72 | + self.assertEqual(str(Clock(10, 0) + 3), "10:03") |
73 | 73 |
|
74 | 74 | def test_add_no_minutes(self): |
75 | | - self.assertEqual(str(Clock(6, 41) + 0), '06:41') |
| 75 | + self.assertEqual(str(Clock(6, 41) + 0), "06:41") |
76 | 76 |
|
77 | 77 | def test_add_to_next_hour(self): |
78 | | - self.assertEqual(str(Clock(0, 45) + 40), '01:25') |
| 78 | + self.assertEqual(str(Clock(0, 45) + 40), "01:25") |
79 | 79 |
|
80 | 80 | def test_add_more_than_one_hour(self): |
81 | | - self.assertEqual(str(Clock(10, 0) + 61), '11:01') |
| 81 | + self.assertEqual(str(Clock(10, 0) + 61), "11:01") |
82 | 82 |
|
83 | 83 | def test_add_more_than_two_hours_with_carry(self): |
84 | | - self.assertEqual(str(Clock(0, 45) + 160), '03:25') |
| 84 | + self.assertEqual(str(Clock(0, 45) + 160), "03:25") |
85 | 85 |
|
86 | 86 | def test_add_across_midnight(self): |
87 | | - self.assertEqual(str(Clock(23, 59) + 2), '00:01') |
| 87 | + self.assertEqual(str(Clock(23, 59) + 2), "00:01") |
88 | 88 |
|
89 | | - def test_add_more_than_one_day(self): |
90 | | - self.assertEqual(str(Clock(5, 32) + 1500), '06:32') |
| 89 | + def test_add_more_than_one_day_1500_min_25_hrs(self): |
| 90 | + self.assertEqual(str(Clock(5, 32) + 1500), "06:32") |
91 | 91 |
|
92 | 92 | def test_add_more_than_two_days(self): |
93 | | - self.assertEqual(str(Clock(1, 1) + 3500), '11:21') |
| 93 | + self.assertEqual(str(Clock(1, 1) + 3500), "11:21") |
94 | 94 |
|
| 95 | + # Subtract Minutes |
95 | 96 | def test_subtract_minutes(self): |
96 | | - self.assertEqual(str(Clock(10, 3) - 3), '10:00') |
| 97 | + self.assertEqual(str(Clock(10, 3) - 3), "10:00") |
97 | 98 |
|
98 | 99 | def test_subtract_to_previous_hour(self): |
99 | | - self.assertEqual(str(Clock(10, 3) - 30), '09:33') |
| 100 | + self.assertEqual(str(Clock(10, 3) - 30), "09:33") |
100 | 101 |
|
101 | 102 | def test_subtract_more_than_an_hour(self): |
102 | | - self.assertEqual(str(Clock(10, 3) - 70), '08:53') |
| 103 | + self.assertEqual(str(Clock(10, 3) - 70), "08:53") |
103 | 104 |
|
104 | 105 | def test_subtract_across_midnight(self): |
105 | | - self.assertEqual(str(Clock(0, 3) - 4), '23:59') |
| 106 | + self.assertEqual(str(Clock(0, 3) - 4), "23:59") |
106 | 107 |
|
107 | 108 | def test_subtract_more_than_two_hours(self): |
108 | | - self.assertEqual(str(Clock(0, 0) - 160), '21:20') |
| 109 | + self.assertEqual(str(Clock(0, 0) - 160), "21:20") |
109 | 110 |
|
110 | 111 | def test_subtract_more_than_two_hours_with_borrow(self): |
111 | | - self.assertEqual(str(Clock(6, 15) - 160), '03:35') |
| 112 | + self.assertEqual(str(Clock(6, 15) - 160), "03:35") |
112 | 113 |
|
113 | | - def test_subtract_more_than_one_day(self): |
114 | | - self.assertEqual(str(Clock(5, 32) - 1500), '04:32') |
| 114 | + def test_subtract_more_than_one_day_1500_min_25_hrs(self): |
| 115 | + self.assertEqual(str(Clock(5, 32) - 1500), "04:32") |
115 | 116 |
|
116 | 117 | def test_subtract_more_than_two_days(self): |
117 | | - self.assertEqual(str(Clock(2, 20) - 3000), '00:20') |
| 118 | + self.assertEqual(str(Clock(2, 20) - 3000), "00:20") |
118 | 119 |
|
119 | | - # Construct two separate clocks, set times, test if they are equal. |
| 120 | + # Compare Two Clocks For Equality |
120 | 121 | def test_clocks_with_same_time(self): |
121 | 122 | self.assertEqual(Clock(15, 37), Clock(15, 37)) |
122 | 123 |
|
@@ -166,5 +167,5 @@ def test_full_clock_and_zeroed_clock(self): |
166 | 167 | self.assertEqual(Clock(24, 0), Clock(0, 0)) |
167 | 168 |
|
168 | 169 |
|
169 | | -if __name__ == '__main__': |
| 170 | +if __name__ == "__main__": |
170 | 171 | unittest.main() |
0 commit comments