@@ -241,7 +241,7 @@ def test_date_inputs
241
241
assert_nil op . date_input
242
242
end
243
243
244
- def test_time_inputs
244
+ def test_time_inputs__with_seconds_precision
245
245
op . time_input = nil
246
246
assert_nil op . time_input
247
247
@@ -256,22 +256,139 @@ def test_time_inputs
256
256
assert_equal 0 , op . time_input . min
257
257
assert_equal 0 , op . time_input . sec
258
258
259
+ op . time_input = ::DateTime . new ( 2022 , 12 , 22 )
260
+ assert_equal ::Time , op . time_input . class
261
+ refute_equal ::DateTime , op . time_input . class
262
+
263
+ assert_equal 0 , op . time_input . utc_offset
264
+ assert_equal 2022 , op . time_input . year
265
+ assert_equal 12 , op . time_input . month
266
+ assert_equal 22 , op . time_input . day
267
+ assert_equal 0 , op . time_input . hour
268
+ assert_equal 0 , op . time_input . min
269
+ assert_equal 0 , op . time_input . sec
270
+
259
271
op . time_input = '2023-05-05T10:00:30.123456Z'
260
272
assert_equal ::Time , op . time_input . class
261
273
refute_equal ::DateTime , op . time_input . class
262
274
275
+ assert_equal 0 , op . time_input . utc_offset
276
+ assert_equal 2023 , op . time_input . year
277
+ assert_equal 5 , op . time_input . month
278
+ assert_equal 5 , op . time_input . day
279
+ assert_equal 10 , op . time_input . hour
280
+ assert_equal 0 , op . time_input . min
281
+ assert_equal 30 , op . time_input . sec
282
+ assert_equal 0 , op . time_input . usec
283
+
284
+ op . time_input = '2023-05-05T10:00:30Z'
285
+ assert_equal ::Time , op . time_input . class
286
+ assert_equal 0 , op . time_input . utc_offset
263
287
assert_equal 2023 , op . time_input . year
264
288
assert_equal 5 , op . time_input . month
265
289
assert_equal 5 , op . time_input . day
266
290
assert_equal 10 , op . time_input . hour
267
291
assert_equal 0 , op . time_input . min
268
292
assert_equal 30 , op . time_input . sec
269
- assert_equal 123456 , op . time_input . usec
293
+ assert_equal 0 , op . time_input . usec
270
294
271
- time = Time . at ( 1678741605.123456 )
295
+ op . time_input = '2024-11-11T16:42:23.246+0100'
296
+ assert_equal ::Time , op . time_input . class
297
+ assert_equal 3600 , op . time_input . utc_offset
298
+ assert_equal 2024 , op . time_input . year
299
+ assert_equal 11 , op . time_input . month
300
+ assert_equal 11 , op . time_input . day
301
+ assert_equal 16 , op . time_input . hour
302
+ assert_equal 42 , op . time_input . min
303
+ assert_equal 23 , op . time_input . sec
304
+ assert_equal 0 , op . time_input . usec
305
+
306
+ time = Time . at ( 1678741605.123456 ) . utc
272
307
op . time_input = time
273
- assert_equal time , op . time_input
274
- assert_equal time . object_id , op . time_input . object_id
308
+ refute_equal time , op . time_input
309
+ refute_equal time . object_id , op . time_input . object_id
310
+ assert_equal 2023 , op . time_input . year
311
+ assert_equal 3 , op . time_input . month
312
+ assert_equal 13 , op . time_input . day
313
+ assert_equal 21 , op . time_input . hour
314
+ assert_equal 6 , op . time_input . min
315
+ assert_equal 45 , op . time_input . sec
316
+ assert_equal 0 , op . time_input . usec
317
+ end
318
+
319
+ def test_time_inputs__with_high_precision
320
+ op . precise_time_input = nil
321
+ assert_nil op . precise_time_input
322
+
323
+ op . precise_time_input = '2022-12-22'
324
+ assert_equal ::Time , op . precise_time_input . class
325
+ refute_equal ::DateTime , op . precise_time_input . class
326
+
327
+ assert_equal 2022 , op . precise_time_input . year
328
+ assert_equal 12 , op . precise_time_input . month
329
+ assert_equal 22 , op . precise_time_input . day
330
+ assert_equal 0 , op . precise_time_input . hour
331
+ assert_equal 0 , op . precise_time_input . min
332
+ assert_equal 0 , op . precise_time_input . sec
333
+
334
+ op . precise_time_input = ::DateTime . new ( 2022 , 12 , 22 )
335
+ assert_equal ::Time , op . precise_time_input . class
336
+ refute_equal ::DateTime , op . precise_time_input . class
337
+
338
+ assert_equal 0 , op . precise_time_input . utc_offset
339
+ assert_equal 2022 , op . precise_time_input . year
340
+ assert_equal 12 , op . precise_time_input . month
341
+ assert_equal 22 , op . precise_time_input . day
342
+ assert_equal 0 , op . precise_time_input . hour
343
+ assert_equal 0 , op . precise_time_input . min
344
+ assert_equal 0 , op . precise_time_input . sec
345
+
346
+ op . precise_time_input = '2023-05-05T10:00:30.123456Z'
347
+ assert_equal ::Time , op . precise_time_input . class
348
+ refute_equal ::DateTime , op . precise_time_input . class
349
+
350
+ assert_equal 0 , op . precise_time_input . utc_offset
351
+ assert_equal 2023 , op . precise_time_input . year
352
+ assert_equal 5 , op . precise_time_input . month
353
+ assert_equal 5 , op . precise_time_input . day
354
+ assert_equal 10 , op . precise_time_input . hour
355
+ assert_equal 0 , op . precise_time_input . min
356
+ assert_equal 30 , op . precise_time_input . sec
357
+ assert_equal 123456 , op . precise_time_input . usec
358
+
359
+ op . precise_time_input = '2023-05-05T10:00:30Z'
360
+ assert_equal ::Time , op . precise_time_input . class
361
+ assert_equal 0 , op . precise_time_input . utc_offset
362
+ assert_equal 2023 , op . precise_time_input . year
363
+ assert_equal 5 , op . precise_time_input . month
364
+ assert_equal 5 , op . precise_time_input . day
365
+ assert_equal 10 , op . precise_time_input . hour
366
+ assert_equal 0 , op . precise_time_input . min
367
+ assert_equal 30 , op . precise_time_input . sec
368
+ assert_equal 0 , op . precise_time_input . usec
369
+
370
+ op . precise_time_input = '2024-11-11T16:42:23.246+0100'
371
+ assert_equal ::Time , op . precise_time_input . class
372
+ assert_equal 3600 , op . precise_time_input . utc_offset
373
+ assert_equal 2024 , op . precise_time_input . year
374
+ assert_equal 11 , op . precise_time_input . month
375
+ assert_equal 11 , op . precise_time_input . day
376
+ assert_equal 16 , op . precise_time_input . hour
377
+ assert_equal 42 , op . precise_time_input . min
378
+ assert_equal 23 , op . precise_time_input . sec
379
+ assert_equal 246000 , op . precise_time_input . usec
380
+
381
+ time = Time . at ( 1678741605.123456 ) . utc
382
+ op . precise_time_input = time
383
+ assert_equal time , op . precise_time_input
384
+ assert_equal time . object_id , op . precise_time_input . object_id
385
+ assert_equal 2023 , op . precise_time_input . year
386
+ assert_equal 3 , op . precise_time_input . month
387
+ assert_equal 13 , op . precise_time_input . day
388
+ assert_equal 21 , op . precise_time_input . hour
389
+ assert_equal 6 , op . precise_time_input . min
390
+ assert_equal 45 , op . precise_time_input . sec
391
+ assert_equal 123456 , op . precise_time_input . usec
275
392
end
276
393
277
394
def test_iso_date_inputs
0 commit comments