@@ -269,7 +269,7 @@ def test_date_inputs
269
269
assert_nil op . date_input
270
270
end
271
271
272
- def test_time_inputs
272
+ def test_time_inputs__with_seconds_precision
273
273
op . time_input = nil
274
274
assert_nil op . time_input
275
275
@@ -284,22 +284,139 @@ def test_time_inputs
284
284
assert_equal 0 , op . time_input . min
285
285
assert_equal 0 , op . time_input . sec
286
286
287
+ op . time_input = ::DateTime . new ( 2022 , 12 , 22 )
288
+ assert_equal ::Time , op . time_input . class
289
+ refute_equal ::DateTime , op . time_input . class
290
+
291
+ assert_equal 0 , op . time_input . utc_offset
292
+ assert_equal 2022 , op . time_input . year
293
+ assert_equal 12 , op . time_input . month
294
+ assert_equal 22 , op . time_input . day
295
+ assert_equal 0 , op . time_input . hour
296
+ assert_equal 0 , op . time_input . min
297
+ assert_equal 0 , op . time_input . sec
298
+
287
299
op . time_input = '2023-05-05T10:00:30.123456Z'
288
300
assert_equal ::Time , op . time_input . class
289
301
refute_equal ::DateTime , op . time_input . class
290
302
303
+ assert_equal 0 , op . time_input . utc_offset
304
+ assert_equal 2023 , op . time_input . year
305
+ assert_equal 5 , op . time_input . month
306
+ assert_equal 5 , op . time_input . day
307
+ assert_equal 10 , op . time_input . hour
308
+ assert_equal 0 , op . time_input . min
309
+ assert_equal 30 , op . time_input . sec
310
+ assert_equal 0 , op . time_input . usec
311
+
312
+ op . time_input = '2023-05-05T10:00:30Z'
313
+ assert_equal ::Time , op . time_input . class
314
+ assert_equal 0 , op . time_input . utc_offset
291
315
assert_equal 2023 , op . time_input . year
292
316
assert_equal 5 , op . time_input . month
293
317
assert_equal 5 , op . time_input . day
294
318
assert_equal 10 , op . time_input . hour
295
319
assert_equal 0 , op . time_input . min
296
320
assert_equal 30 , op . time_input . sec
297
- assert_equal 123456 , op . time_input . usec
321
+ assert_equal 0 , op . time_input . usec
298
322
299
- time = Time . at ( 1678741605.123456 )
323
+ op . time_input = '2024-11-11T16:42:23.246+0100'
324
+ assert_equal ::Time , op . time_input . class
325
+ assert_equal 3600 , op . time_input . utc_offset
326
+ assert_equal 2024 , op . time_input . year
327
+ assert_equal 11 , op . time_input . month
328
+ assert_equal 11 , op . time_input . day
329
+ assert_equal 16 , op . time_input . hour
330
+ assert_equal 42 , op . time_input . min
331
+ assert_equal 23 , op . time_input . sec
332
+ assert_equal 0 , op . time_input . usec
333
+
334
+ time = Time . at ( 1678741605.123456 ) . utc
300
335
op . time_input = time
301
- assert_equal time , op . time_input
302
- assert_equal time . object_id , op . time_input . object_id
336
+ refute_equal time , op . time_input
337
+ refute_equal time . object_id , op . time_input . object_id
338
+ assert_equal 2023 , op . time_input . year
339
+ assert_equal 3 , op . time_input . month
340
+ assert_equal 13 , op . time_input . day
341
+ assert_equal 21 , op . time_input . hour
342
+ assert_equal 6 , op . time_input . min
343
+ assert_equal 45 , op . time_input . sec
344
+ assert_equal 0 , op . time_input . usec
345
+ end
346
+
347
+ def test_time_inputs__with_high_precision
348
+ op . precise_time_input = nil
349
+ assert_nil op . precise_time_input
350
+
351
+ op . precise_time_input = '2022-12-22'
352
+ assert_equal ::Time , op . precise_time_input . class
353
+ refute_equal ::DateTime , op . precise_time_input . class
354
+
355
+ assert_equal 2022 , op . precise_time_input . year
356
+ assert_equal 12 , op . precise_time_input . month
357
+ assert_equal 22 , op . precise_time_input . day
358
+ assert_equal 0 , op . precise_time_input . hour
359
+ assert_equal 0 , op . precise_time_input . min
360
+ assert_equal 0 , op . precise_time_input . sec
361
+
362
+ op . precise_time_input = ::DateTime . new ( 2022 , 12 , 22 )
363
+ assert_equal ::Time , op . precise_time_input . class
364
+ refute_equal ::DateTime , op . precise_time_input . class
365
+
366
+ assert_equal 0 , op . precise_time_input . utc_offset
367
+ assert_equal 2022 , op . precise_time_input . year
368
+ assert_equal 12 , op . precise_time_input . month
369
+ assert_equal 22 , op . precise_time_input . day
370
+ assert_equal 0 , op . precise_time_input . hour
371
+ assert_equal 0 , op . precise_time_input . min
372
+ assert_equal 0 , op . precise_time_input . sec
373
+
374
+ op . precise_time_input = '2023-05-05T10:00:30.123456Z'
375
+ assert_equal ::Time , op . precise_time_input . class
376
+ refute_equal ::DateTime , op . precise_time_input . class
377
+
378
+ assert_equal 0 , op . precise_time_input . utc_offset
379
+ assert_equal 2023 , op . precise_time_input . year
380
+ assert_equal 5 , op . precise_time_input . month
381
+ assert_equal 5 , op . precise_time_input . day
382
+ assert_equal 10 , op . precise_time_input . hour
383
+ assert_equal 0 , op . precise_time_input . min
384
+ assert_equal 30 , op . precise_time_input . sec
385
+ assert_equal 123456 , op . precise_time_input . usec
386
+
387
+ op . precise_time_input = '2023-05-05T10:00:30Z'
388
+ assert_equal ::Time , op . precise_time_input . class
389
+ assert_equal 0 , op . precise_time_input . utc_offset
390
+ assert_equal 2023 , op . precise_time_input . year
391
+ assert_equal 5 , op . precise_time_input . month
392
+ assert_equal 5 , op . precise_time_input . day
393
+ assert_equal 10 , op . precise_time_input . hour
394
+ assert_equal 0 , op . precise_time_input . min
395
+ assert_equal 30 , op . precise_time_input . sec
396
+ assert_equal 0 , op . precise_time_input . usec
397
+
398
+ op . precise_time_input = '2024-11-11T16:42:23.246+0100'
399
+ assert_equal ::Time , op . precise_time_input . class
400
+ assert_equal 3600 , op . precise_time_input . utc_offset
401
+ assert_equal 2024 , op . precise_time_input . year
402
+ assert_equal 11 , op . precise_time_input . month
403
+ assert_equal 11 , op . precise_time_input . day
404
+ assert_equal 16 , op . precise_time_input . hour
405
+ assert_equal 42 , op . precise_time_input . min
406
+ assert_equal 23 , op . precise_time_input . sec
407
+ assert_equal 246000 , op . precise_time_input . usec
408
+
409
+ time = Time . at ( 1678741605.123456 ) . utc
410
+ op . precise_time_input = time
411
+ assert_equal time , op . precise_time_input
412
+ assert_equal time . object_id , op . precise_time_input . object_id
413
+ assert_equal 2023 , op . precise_time_input . year
414
+ assert_equal 3 , op . precise_time_input . month
415
+ assert_equal 13 , op . precise_time_input . day
416
+ assert_equal 21 , op . precise_time_input . hour
417
+ assert_equal 6 , op . precise_time_input . min
418
+ assert_equal 45 , op . precise_time_input . sec
419
+ assert_equal 123456 , op . precise_time_input . usec
303
420
end
304
421
305
422
def test_iso_date_inputs
0 commit comments