trackler 2.0.8.15 → 2.0.8.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/clock/canonical-data.json +473 -425
  3. data/common/exercises/crypto-square/canonical-data.json +105 -95
  4. data/common/exercises/difference-of-squares/canonical-data.json +76 -62
  5. data/common/exercises/etl/canonical-data.json +67 -59
  6. data/common/exercises/meetup/canonical-data.json +859 -762
  7. data/common/exercises/meetup/description.md +13 -7
  8. data/common/exercises/minesweeper/canonical-data.json +21 -5
  9. data/common/exercises/nth-prime/canonical-data.json +23 -16
  10. data/common/exercises/nucleotide-count/canonical-data.json +49 -41
  11. data/common/exercises/ocr-numbers/canonical-data.json +204 -183
  12. data/common/exercises/pascals-triangle/canonical-data.json +38 -27
  13. data/common/exercises/queen-attack/canonical-data.json +125 -109
  14. data/common/exercises/rotational-cipher/canonical-data.json +1 -1
  15. data/common/exercises/triangle/canonical-data.json +103 -74
  16. data/lib/trackler/version.rb +1 -1
  17. data/tracks/csharp/docs/TESTS.md +7 -1
  18. data/tracks/csharp/exercises/{exercises.sln → Exercises.All.sln} +0 -0
  19. data/tracks/csharp/exercises/Exercises.Default.sln +1433 -0
  20. data/tracks/csharp/exercises/Exercises.Refactoring.sln +61 -0
  21. data/tracks/csharp/exercises/acronym/AcronymTest.cs +35 -11
  22. data/tracks/csharp/exercises/parallel-letter-frequency/ParallelLetterFrequencyTest.cs +2 -2
  23. data/tracks/delphi/docs/TESTS.md +2 -2
  24. data/tracks/elixir/exercises/bowling/bowling.exs +1 -1
  25. data/tracks/fsharp/docs/LEARNING.md +2 -1
  26. data/tracks/go/config.json +7 -1
  27. data/tracks/go/exercises/prime-factors/{primefactors_test.go → prime_factors_test.go} +4 -1
  28. data/tracks/go/exercises/protein-translation/protein_translation_test.go +6 -6
  29. data/tracks/go/exercises/pythagorean-triplet/example.go +2 -0
  30. data/tracks/go/exercises/pythagorean-triplet/pythagorean_triplet_test.go +8 -0
  31. data/tracks/julia/README.md +2 -0
  32. data/tracks/julia/config.json +9 -0
  33. data/tracks/julia/exercises/rotational-cipher/HINTS.md +21 -0
  34. data/tracks/julia/exercises/rotational-cipher/example.jl +16 -0
  35. data/tracks/julia/exercises/rotational-cipher/rotational-cipher.jl +0 -0
  36. data/tracks/julia/exercises/rotational-cipher/runtests.jl +51 -0
  37. data/tracks/ocaml/config.json +5 -0
  38. data/tracks/ocaml/exercises/connect/.merlin +3 -0
  39. data/tracks/ocaml/exercises/connect/Makefile +15 -0
  40. data/tracks/ocaml/exercises/connect/connect.mli +4 -0
  41. data/tracks/ocaml/exercises/connect/example.ml +80 -0
  42. data/tracks/ocaml/exercises/connect/test.ml +121 -0
  43. data/tracks/ocaml/tools/test-generator/templates/connect/template.ml +23 -0
  44. data/tracks/python/exercises/all-your-base/all_your_base_test.py +2 -0
  45. data/tracks/python/exercises/luhn/example.py +5 -8
  46. data/tracks/python/exercises/luhn/luhn_test.py +34 -24
  47. data/tracks/ruby/README.md +138 -23
  48. metadata +16 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5027b56bee8b032383d751e412fbde9f5596af2
4
- data.tar.gz: da4e40643abcfb773e22501fc6880aa221c19341
3
+ metadata.gz: 88caa91880583c69357692f1686df34e93146459
4
+ data.tar.gz: 9786bc1164d764970f93a67062c86be22524b479
5
5
  SHA512:
6
- metadata.gz: 7c3a9021c87e75346856f024fd7b75d1289f6806f07eb1273f75ce46584ee075d2be76f7388ee8375f1e4ed4ce0bb0c0c867d8a73342d08ceec065c993f233de
7
- data.tar.gz: 12b6cbcd4f9a832084dcae4bf300e9cd6e37edf7e871a7b8b17456982996b3a054ebdba004e698fe843f9e4e95d373756e1d9c76d2e375aa49b8ed371a74fda6
6
+ metadata.gz: 11c4be86a064e49932ee781929f654480e36c50d289a6fcabfb6b92edd64ab1e4ed374b31c4fa76e4b28e1826efa937563885f193c34af9b6e77c512d3af0429
7
+ data.tar.gz: 56bd0e55882ffb03f724727c932c7e31471cb1b6012e6f2f29e94e08d10f318dd3198b9b8f0e36a4ae50a4005e3b2610b64cb72b3f34b73c932e9717b56de1df
@@ -1,436 +1,484 @@
1
1
  {
2
- "#": [
3
- "Most languages require constructing a clock with initial values,",
4
- "adding a positive or negative number of minutes, and testing equality",
5
- "in some language-native way. Some languages require separate add and",
6
- "subtract functions. Negative and out of range values are generally",
7
- "expected to wrap around rather than represent errors."
8
- ],
9
- "create": {
10
- "description": [
11
- "Test creating a new clock with an initial time."
12
- ],
2
+ "exercise": "clock",
3
+ "version": "1.0.0",
4
+ "comments": [
5
+ "Most languages require constructing a clock with initial values,",
6
+ "adding a positive or negative number of minutes, and testing equality",
7
+ "in some language-native way. Some languages require separate add and",
8
+ "subtract functions. Negative and out of range values are generally",
9
+ "expected to wrap around rather than represent errors."
10
+ ],
11
+ "cases": [
12
+ {
13
+ "description": "Test creating a new clock with an initial time.",
13
14
  "cases": [
14
- {
15
- "description": "on the hour",
16
- "hour": 8,
17
- "minute": 0,
18
- "expected": "08:00"
19
- },
20
- {
21
- "description": "past the hour",
22
- "hour": 11,
23
- "minute": 9,
24
- "expected": "11:09"
25
- },
26
- {
27
- "description": "midnight is zero hours",
28
- "hour": 24,
29
- "minute": 0,
30
- "expected": "00:00"
31
- },
32
- {
33
- "description": "hour rolls over",
34
- "hour": 25,
35
- "minute": 0,
36
- "expected": "01:00"
37
- },
38
- {
39
- "description": "hour rolls over continuously",
40
- "hour": 100,
41
- "minute": 0,
42
- "expected": "04:00"
43
- },
44
- {
45
- "description": "sixty minutes is next hour",
46
- "hour": 1,
47
- "minute": 60,
48
- "expected": "02:00"
49
- },
50
- {
51
- "description": "minutes roll over",
52
- "hour": 0,
53
- "minute": 160,
54
- "expected": "02:40"
55
- },
56
- {
57
- "description": "minutes roll over continuously",
58
- "hour": 0,
59
- "minute": 1723,
60
- "expected": "04:43"
61
- },
62
- {
63
- "description": "hour and minutes roll over",
64
- "hour": 25,
65
- "minute": 160,
66
- "expected": "03:40"
67
- },
68
- {
69
- "description": "hour and minutes roll over continuously",
70
- "hour": 201,
71
- "minute": 3001,
72
- "expected": "11:01"
73
- },
74
- {
75
- "description": "hour and minutes roll over to exactly midnight",
76
- "hour": 72,
77
- "minute": 8640,
78
- "expected": "00:00"
79
- },
80
- {
81
- "description": "negative hour",
82
- "hour": -1,
83
- "minute": 15,
84
- "expected": "23:15"
85
- },
86
- {
87
- "description": "negative hour rolls over",
88
- "hour": -25,
89
- "minute": 0,
90
- "expected": "23:00"
91
- },
92
- {
93
- "description": "negative hour rolls over continuously",
94
- "hour": -91,
95
- "minute": 0,
96
- "expected": "05:00"
97
- },
98
- {
99
- "description": "negative minutes",
100
- "hour": 1,
101
- "minute": -40,
102
- "expected": "00:20"
103
- },
104
- {
105
- "description": "negative minutes roll over",
106
- "hour": 1,
107
- "minute": -160,
108
- "expected": "22:20"
109
- },
110
- {
111
- "description": "negative minutes roll over continuously",
112
- "hour": 1,
113
- "minute": -4820,
114
- "expected": "16:40"
115
- },
116
- {
117
- "description": "negative hour and minutes both roll over",
118
- "hour": -25,
119
- "minute": -160,
120
- "expected": "20:20"
121
- },
122
- {
123
- "description": "negative hour and minutes both roll over continuously",
124
- "hour": -121,
125
- "minute": -5810,
126
- "expected": "22:10"
127
- }
15
+ {
16
+ "description": "on the hour",
17
+ "property": "create",
18
+ "hour": 8,
19
+ "minute": 0,
20
+ "expected": "08:00"
21
+ },
22
+ {
23
+ "description": "past the hour",
24
+ "property": "create",
25
+ "hour": 11,
26
+ "minute": 9,
27
+ "expected": "11:09"
28
+ },
29
+ {
30
+ "description": "midnight is zero hours",
31
+ "property": "create",
32
+ "hour": 24,
33
+ "minute": 0,
34
+ "expected": "00:00"
35
+ },
36
+ {
37
+ "description": "hour rolls over",
38
+ "property": "create",
39
+ "hour": 25,
40
+ "minute": 0,
41
+ "expected": "01:00"
42
+ },
43
+ {
44
+ "description": "hour rolls over continuously",
45
+ "property": "create",
46
+ "hour": 100,
47
+ "minute": 0,
48
+ "expected": "04:00"
49
+ },
50
+ {
51
+ "description": "sixty minutes is next hour",
52
+ "property": "create",
53
+ "hour": 1,
54
+ "minute": 60,
55
+ "expected": "02:00"
56
+ },
57
+ {
58
+ "description": "minutes roll over",
59
+ "property": "create",
60
+ "hour": 0,
61
+ "minute": 160,
62
+ "expected": "02:40"
63
+ },
64
+ {
65
+ "description": "minutes roll over continuously",
66
+ "property": "create",
67
+ "hour": 0,
68
+ "minute": 1723,
69
+ "expected": "04:43"
70
+ },
71
+ {
72
+ "description": "hour and minutes roll over",
73
+ "property": "create",
74
+ "hour": 25,
75
+ "minute": 160,
76
+ "expected": "03:40"
77
+ },
78
+ {
79
+ "description": "hour and minutes roll over continuously",
80
+ "property": "create",
81
+ "hour": 201,
82
+ "minute": 3001,
83
+ "expected": "11:01"
84
+ },
85
+ {
86
+ "description": "hour and minutes roll over to exactly midnight",
87
+ "property": "create",
88
+ "hour": 72,
89
+ "minute": 8640,
90
+ "expected": "00:00"
91
+ },
92
+ {
93
+ "description": "negative hour",
94
+ "property": "create",
95
+ "hour": -1,
96
+ "minute": 15,
97
+ "expected": "23:15"
98
+ },
99
+ {
100
+ "description": "negative hour rolls over",
101
+ "property": "create",
102
+ "hour": -25,
103
+ "minute": 0,
104
+ "expected": "23:00"
105
+ },
106
+ {
107
+ "description": "negative hour rolls over continuously",
108
+ "property": "create",
109
+ "hour": -91,
110
+ "minute": 0,
111
+ "expected": "05:00"
112
+ },
113
+ {
114
+ "description": "negative minutes",
115
+ "property": "create",
116
+ "hour": 1,
117
+ "minute": -40,
118
+ "expected": "00:20"
119
+ },
120
+ {
121
+ "description": "negative minutes roll over",
122
+ "property": "create",
123
+ "hour": 1,
124
+ "minute": -160,
125
+ "expected": "22:20"
126
+ },
127
+ {
128
+ "description": "negative minutes roll over continuously",
129
+ "property": "create",
130
+ "hour": 1,
131
+ "minute": -4820,
132
+ "expected": "16:40"
133
+ },
134
+ {
135
+ "description": "negative hour and minutes both roll over",
136
+ "property": "create",
137
+ "hour": -25,
138
+ "minute": -160,
139
+ "expected": "20:20"
140
+ },
141
+ {
142
+ "description": "negative hour and minutes both roll over continuously",
143
+ "property": "create",
144
+ "hour": -121,
145
+ "minute": -5810,
146
+ "expected": "22:10"
147
+ }
128
148
  ]
129
- },
130
- "add": {
131
- "description": [
132
- "Test adding and subtracting minutes."
133
- ],
149
+ },
150
+ {
151
+ "description": "Test adding and subtracting minutes.",
134
152
  "cases": [
135
- {
136
- "description": "add minutes",
153
+ {
154
+ "description": "add minutes",
155
+ "property": "add",
156
+ "hour": 10,
157
+ "minute": 0,
158
+ "add": 3,
159
+ "expected": "10:03"
160
+ },
161
+ {
162
+ "description": "add no minutes",
163
+ "property": "add",
164
+ "hour": 6,
165
+ "minute": 41,
166
+ "add": 0,
167
+ "expected": "06:41"
168
+ },
169
+ {
170
+ "description": "add to next hour",
171
+ "property": "add",
172
+ "hour": 0,
173
+ "minute": 45,
174
+ "add": 40,
175
+ "expected": "01:25"
176
+ },
177
+ {
178
+ "description": "add more than one hour",
179
+ "property": "add",
180
+ "hour": 10,
181
+ "minute": 0,
182
+ "add": 61,
183
+ "expected": "11:01"
184
+ },
185
+ {
186
+ "description": "add more than two hours with carry",
187
+ "property": "add",
188
+ "hour": 0,
189
+ "minute": 45,
190
+ "add": 160,
191
+ "expected": "03:25"
192
+ },
193
+ {
194
+ "description": "add across midnight",
195
+ "property": "add",
196
+ "hour": 23,
197
+ "minute": 59,
198
+ "add": 2,
199
+ "expected": "00:01"
200
+ },
201
+ {
202
+ "description": "add more than one day (1500 min = 25 hrs)",
203
+ "property": "add",
204
+ "hour": 5,
205
+ "minute": 32,
206
+ "add": 1500,
207
+ "expected": "06:32"
208
+ },
209
+ {
210
+ "description": "add more than two days",
211
+ "property": "add",
212
+ "hour": 1,
213
+ "minute": 1,
214
+ "add": 3500,
215
+ "expected": "11:21"
216
+ },
217
+ {
218
+ "description": "subtract minutes",
219
+ "property": "add",
220
+ "hour": 10,
221
+ "minute": 3,
222
+ "add": -3,
223
+ "expected": "10:00"
224
+ },
225
+ {
226
+ "description": "subtract to previous hour",
227
+ "property": "add",
228
+ "hour": 10,
229
+ "minute": 3,
230
+ "add": -30,
231
+ "expected": "09:33"
232
+ },
233
+ {
234
+ "description": "subtract more than an hour",
235
+ "property": "add",
236
+ "hour": 10,
237
+ "minute": 3,
238
+ "add": -70,
239
+ "expected": "08:53"
240
+ },
241
+ {
242
+ "description": "subtract across midnight",
243
+ "property": "add",
244
+ "hour": 0,
245
+ "minute": 3,
246
+ "add": -4,
247
+ "expected": "23:59"
248
+ },
249
+ {
250
+ "description": "subtract more than two hours",
251
+ "property": "add",
252
+ "hour": 0,
253
+ "minute": 0,
254
+ "add": -160,
255
+ "expected": "21:20"
256
+ },
257
+ {
258
+ "description": "subtract more than two hours with borrow",
259
+ "property": "add",
260
+ "hour": 6,
261
+ "minute": 15,
262
+ "add": -160,
263
+ "expected": "03:35"
264
+ },
265
+ {
266
+ "description": "subtract more than one day (1500 min = 25 hrs)",
267
+ "property": "add",
268
+ "hour": 5,
269
+ "minute": 32,
270
+ "add": -1500,
271
+ "expected": "04:32"
272
+ },
273
+ {
274
+ "description": "subtract more than two days",
275
+ "property": "add",
276
+ "hour": 2,
277
+ "minute": 20,
278
+ "add": -3000,
279
+ "expected": "00:20"
280
+ }
281
+ ]
282
+ },
283
+ {
284
+ "description": "Construct two separate clocks, set times, test if they are equal.",
285
+ "cases": [
286
+ {
287
+ "description": "clocks with same time",
288
+ "property": "equal",
289
+ "clock1": {
290
+ "hour": 15,
291
+ "minute": 37
292
+ },
293
+ "clock2": {
294
+ "hour": 15,
295
+ "minute": 37
296
+ },
297
+ "expected": true
298
+ },
299
+ {
300
+ "description": "clocks a minute apart",
301
+ "property": "equal",
302
+ "clock1": {
303
+ "hour": 15,
304
+ "minute": 36
305
+ },
306
+ "clock2": {
307
+ "hour": 15,
308
+ "minute": 37
309
+ },
310
+ "expected": false
311
+ },
312
+ {
313
+ "description": "clocks an hour apart",
314
+ "property": "equal",
315
+ "clock1": {
316
+ "hour": 14,
317
+ "minute": 37
318
+ },
319
+ "clock2": {
320
+ "hour": 15,
321
+ "minute": 37
322
+ },
323
+ "expected": false
324
+ },
325
+ {
326
+ "description": "clocks with hour overflow",
327
+ "property": "equal",
328
+ "clock1": {
137
329
  "hour": 10,
138
- "minute": 0,
139
- "add": 3,
140
- "expected": "10:03"
141
- },
142
- {
143
- "description": "add no minutes",
144
- "hour": 6,
145
- "minute": 41,
146
- "add": 0,
147
- "expected": "06:41"
148
- },
149
- {
150
- "description": "add to next hour",
330
+ "minute": 37
331
+ },
332
+ "clock2": {
333
+ "hour": 34,
334
+ "minute": 37
335
+ },
336
+ "expected": true
337
+ },
338
+ {
339
+ "description": "clocks with hour overflow by several days",
340
+ "property": "equal",
341
+ "clock1": {
342
+ "hour": 3,
343
+ "minute": 11
344
+ },
345
+ "clock2": {
346
+ "hour": 99,
347
+ "minute": 11
348
+ },
349
+ "expected": true
350
+ },
351
+ {
352
+ "description": "clocks with negative hour",
353
+ "property": "equal",
354
+ "clock1": {
355
+ "hour": 22,
356
+ "minute": 40
357
+ },
358
+ "clock2": {
359
+ "hour": -2,
360
+ "minute": 40
361
+ },
362
+ "expected": true
363
+ },
364
+ {
365
+ "description": "clocks with negative hour that wraps",
366
+ "property": "equal",
367
+ "clock1": {
368
+ "hour": 17,
369
+ "minute": 3
370
+ },
371
+ "clock2": {
372
+ "hour": -31,
373
+ "minute": 3
374
+ },
375
+ "expected": true
376
+ },
377
+ {
378
+ "description": "clocks with negative hour that wraps multiple times",
379
+ "property": "equal",
380
+ "clock1": {
381
+ "hour": 13,
382
+ "minute": 49
383
+ },
384
+ "clock2": {
385
+ "hour": -83,
386
+ "minute": 49
387
+ },
388
+ "expected": true
389
+ },
390
+ {
391
+ "description": "clocks with minute overflow",
392
+ "property": "equal",
393
+ "clock1": {
151
394
  "hour": 0,
152
- "minute": 45,
153
- "add": 40,
154
- "expected": "01:25"
155
- },
156
- {
157
- "description": "add more than one hour",
158
- "hour": 10,
159
- "minute": 0,
160
- "add": 61,
161
- "expected": "11:01"
162
- },
163
- {
164
- "description": "add more than two hours with carry",
395
+ "minute": 1
396
+ },
397
+ "clock2": {
165
398
  "hour": 0,
166
- "minute": 45,
167
- "add": 160,
168
- "expected": "03:25"
169
- },
170
- {
171
- "description": "add across midnight",
172
- "hour": 23,
173
- "minute": 59,
174
- "add": 2,
175
- "expected": "00:01"
176
- },
177
- {
178
- "description": "add more than one day (1500 min = 25 hrs)",
399
+ "minute": 1441
400
+ },
401
+ "expected": true
402
+ },
403
+ {
404
+ "description": "clocks with minute overflow by several days",
405
+ "property": "equal",
406
+ "clock1": {
407
+ "hour": 2,
408
+ "minute": 2
409
+ },
410
+ "clock2": {
411
+ "hour": 2,
412
+ "minute": 4322
413
+ },
414
+ "expected": true
415
+ },
416
+ {
417
+ "description": "clocks with negative minute",
418
+ "property": "equal",
419
+ "clock1": {
420
+ "hour": 2,
421
+ "minute": 40
422
+ },
423
+ "clock2": {
424
+ "hour": 3,
425
+ "minute": -20
426
+ },
427
+ "expected": true
428
+ },
429
+ {
430
+ "description": "clocks with negative minute that wraps",
431
+ "property": "equal",
432
+ "clock1": {
433
+ "hour": 4,
434
+ "minute": 10
435
+ },
436
+ "clock2": {
179
437
  "hour": 5,
180
- "minute": 32,
181
- "add": 1500,
182
- "expected": "06:32"
183
- },
184
- {
185
- "description": "add more than two days",
186
- "hour": 1,
187
- "minute": 1,
188
- "add": 3500,
189
- "expected": "11:21"
190
- },
191
- {
192
- "description": "subtract minutes",
193
- "hour": 10,
194
- "minute": 3,
195
- "add": -3,
196
- "expected": "10:00"
197
- },
198
- {
199
- "description": "subtract to previous hour",
200
- "hour": 10,
201
- "minute": 3,
202
- "add": -30,
203
- "expected": "09:33"
204
- },
205
- {
206
- "description": "subtract more than an hour",
207
- "hour": 10,
208
- "minute": 3,
209
- "add": -70,
210
- "expected": "08:53"
211
- },
212
- {
213
- "description": "subtract across midnight",
214
- "hour": 0,
215
- "minute": 3,
216
- "add": -4,
217
- "expected": "23:59"
218
- },
219
- {
220
- "description": "subtract more than two hours",
221
- "hour": 0,
222
- "minute": 0,
223
- "add": -160,
224
- "expected": "21:20"
225
- },
226
- {
227
- "description": "subtract more than two hours with borrow",
438
+ "minute": -1490
439
+ },
440
+ "expected": true
441
+ },
442
+ {
443
+ "description": "clocks with negative minute that wraps multiple times",
444
+ "property": "equal",
445
+ "clock1": {
228
446
  "hour": 6,
229
- "minute": 15,
230
- "add": -160,
231
- "expected": "03:35"
232
- },
233
- {
234
- "description": "subtract more than one day (1500 min = 25 hrs)",
235
- "hour": 5,
236
- "minute": 32,
237
- "add": -1500,
238
- "expected": "04:32"
239
- },
240
- {
241
- "description": "subtract more than two days",
242
- "hour": 2,
243
- "minute": 20,
244
- "add": -3000,
245
- "expected": "00:20"
246
- }
247
- ]
248
- },
249
- "equal": {
250
- "description": [
251
- "Construct two separate clocks, set times, test if they are equal."
252
- ],
253
- "cases": [
254
- {
255
- "description": "clocks with same time",
256
- "clock1": {
257
- "hour": 15,
258
- "minute": 37
259
- },
260
- "clock2": {
261
- "hour": 15,
262
- "minute": 37
263
- },
264
- "expected": true
265
- },
266
- {
267
- "description": "clocks a minute apart",
268
- "clock1": {
269
- "hour": 15,
270
- "minute": 36
271
- },
272
- "clock2": {
273
- "hour": 15,
274
- "minute": 37
275
- },
276
- "expected": false
277
- },
278
- {
279
- "description": "clocks an hour apart",
280
- "clock1": {
281
- "hour": 14,
282
- "minute": 37
283
- },
284
- "clock2": {
285
- "hour": 15,
286
- "minute": 37
287
- },
288
- "expected": false
289
- },
290
- {
291
- "description": "clocks with hour overflow",
292
- "clock1": {
293
- "hour": 10,
294
- "minute": 37
295
- },
296
- "clock2": {
297
- "hour": 34,
298
- "minute": 37
299
- },
300
- "expected": true
301
- },
302
- {
303
- "description": "clocks with hour overflow by several days",
304
- "clock1": {
305
- "hour": 3,
306
- "minute": 11
307
- },
308
- "clock2": {
309
- "hour": 99,
310
- "minute": 11
311
- },
312
- "expected": true
313
- },
314
- {
315
- "description": "clocks with negative hour",
316
- "clock1": {
317
- "hour": 22,
318
- "minute": 40
319
- },
320
- "clock2": {
321
- "hour": -2,
322
- "minute": 40
323
- },
324
- "expected": true
325
- },
326
- {
327
- "description": "clocks with negative hour that wraps",
328
- "clock1": {
329
- "hour": 17,
330
- "minute": 3
331
- },
332
- "clock2": {
333
- "hour": -31,
334
- "minute": 3
335
- },
336
- "expected": true
337
- },
338
- {
339
- "description": "clocks with negative hour that wraps multiple times",
340
- "clock1": {
341
- "hour": 13,
342
- "minute": 49
343
- },
344
- "clock2": {
345
- "hour": -83,
346
- "minute": 49
347
- },
348
- "expected": true
349
- },
350
- {
351
- "description": "clocks with minute overflow",
352
- "clock1": {
353
- "hour": 0,
354
- "minute": 1
355
- },
356
- "clock2": {
357
- "hour": 0,
358
- "minute": 1441
359
- },
360
- "expected": true
361
- },
362
- {
363
- "description": "clocks with minute overflow by several days",
364
- "clock1": {
365
- "hour": 2,
366
- "minute": 2
367
- },
368
- "clock2": {
369
- "hour": 2,
370
- "minute": 4322
371
- },
372
- "expected": true
373
- },
374
- {
375
- "description": "clocks with negative minute",
376
- "clock1": {
377
- "hour": 2,
378
- "minute": 40
379
- },
380
- "clock2": {
381
- "hour": 3,
382
- "minute": -20
383
- },
384
- "expected": true
385
- },
386
- {
387
- "description": "clocks with negative minute that wraps",
388
- "clock1": {
389
- "hour": 4,
390
- "minute": 10
391
- },
392
- "clock2": {
393
- "hour": 5,
394
- "minute": -1490
395
- },
396
- "expected": true
397
- },
398
- {
399
- "description": "clocks with negative minute that wraps multiple times",
400
- "clock1": {
401
- "hour": 6,
402
- "minute": 15
403
- },
404
- "clock2": {
405
- "hour": 6,
406
- "minute": -4305
407
- },
408
- "expected": true
409
- },
410
- {
411
- "description": "clocks with negative hours and minutes",
412
- "clock1": {
413
- "hour": 7,
414
- "minute": 32
415
- },
416
- "clock2": {
417
- "hour": -12,
418
- "minute": -268
419
- },
420
- "expected": true
421
- },
422
- {
423
- "description": "clocks with negative hours and minutes that wrap",
424
- "clock1": {
425
- "hour": 18,
426
- "minute": 7
427
- },
428
- "clock2": {
429
- "hour": -54,
430
- "minute": -11513
431
- },
432
- "expected": true
433
- }
447
+ "minute": 15
448
+ },
449
+ "clock2": {
450
+ "hour": 6,
451
+ "minute": -4305
452
+ },
453
+ "expected": true
454
+ },
455
+ {
456
+ "description": "clocks with negative hours and minutes",
457
+ "property": "equal",
458
+ "clock1": {
459
+ "hour": 7,
460
+ "minute": 32
461
+ },
462
+ "clock2": {
463
+ "hour": -12,
464
+ "minute": -268
465
+ },
466
+ "expected": true
467
+ },
468
+ {
469
+ "description": "clocks with negative hours and minutes that wrap",
470
+ "property": "equal",
471
+ "clock1": {
472
+ "hour": 18,
473
+ "minute": 7
474
+ },
475
+ "clock2": {
476
+ "hour": -54,
477
+ "minute": -11513
478
+ },
479
+ "expected": true
480
+ }
434
481
  ]
435
- }
482
+ }
483
+ ]
436
484
  }