@@ -235,41 +235,72 @@ suite('duration', function () {
235
235
[ 'PT1H55M' , 'PT2H' ] ,
236
236
[ 'PT20H' , 'PT20H' ] ,
237
237
[ 'PT21H' , 'P1D' ] ,
238
- [ 'P4D' , 'P4D' ] ,
239
- [ 'P6D' , 'P1W' ] ,
240
- [ 'P2W' , 'P2W' ] ,
241
- [ 'P3W3D' , 'P3W' ] ,
242
- [ 'P3W6D' , 'P1M' ] ,
243
- [ 'P21D' , 'P3W' ] ,
244
- [ 'P24D' , 'P3W' ] ,
245
- [ 'P24DT25H' , 'P1M' ] ,
246
- [ 'P25D' , 'P1M' ] ,
247
- [ 'P1M1D' , 'P1M' ] ,
238
+ [ 'P4D' , 'P4D' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
239
+ [ '-P4D' , '-P4D' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
240
+ [ 'P6D' , 'P1W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
241
+ [ '-P6D' , '-P1W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
242
+ [ 'P2W' , 'P2W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
243
+ [ '-P2W' , '-P2W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
244
+ [ 'P3W3D' , 'P3W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
245
+ [ '-P3W3D' , '-P3W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
246
+ [ 'P3W6D' , 'P1M' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
247
+ [ '-P3W6D' , '-P1M' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
248
+ [ 'P21D' , 'P3W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
249
+ [ '-P21D' , '-P3W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
250
+ [ 'P24D' , 'P3W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
251
+ [ '-P24D' , '-P3W' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
252
+ [ 'P24DT25H' , 'P1M' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
253
+ [ '-P24DT25H' , '-P1M' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
254
+ [ 'P25D' , 'P1M' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
255
+ [ '-P25D' , '-P1M' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
256
+ [ 'P1M1D' , 'P1M' , { relativeTo : new Date ( '2023-07-02T00:00:00' ) } ] ,
257
+ [ '-P1M1D' , '-P1M' , { relativeTo : new Date ( '2023-07-02T00:00:00' ) } ] ,
258
+ [ 'P1M1D' , 'P2M' , { relativeTo : new Date ( '2023-07-31T00:00:00' ) } ] ,
259
+ [ '-P1M1D' , '-P2M' , { relativeTo : new Date ( '2023-07-01T00:00:00' ) } ] ,
260
+ [ 'P1D' , 'P1D' , { relativeTo : new Date ( '2022-01-01T00:00:00Z' ) } ] ,
248
261
[ '-P1D' , '-P1D' , { relativeTo : new Date ( '2022-01-01T00:00:00Z' ) } ] ,
249
262
[ 'P8M' , 'P8M' , { relativeTo : new Date ( '2022-01-01T00:00:00Z' ) } ] ,
250
263
[ '-P8M' , '-P8M' , { relativeTo : new Date ( '2022-10-01T00:00:00Z' ) } ] ,
251
264
[ 'P9M' , 'P9M' , { relativeTo : new Date ( '2022-01-01T00:00:00Z' ) } ] ,
252
265
[ '-P9M' , '-P9M' , { relativeTo : new Date ( '2022-11-01T00:00:00Z' ) } ] ,
253
- [ '-P1M' , '-P1Y' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
254
- [ 'P1M' , 'P1Y' , { relativeTo : new Date ( '2023-12-01T00:00:00Z' ) } ] ,
266
+ [ 'P1M' , 'P1M' , { relativeTo : new Date ( '2023-12-01T00:00:00Z' ) } ] ,
267
+ [ '-P1M' , '-P1M' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
268
+ [ 'P1M15D' , 'P1M' , { relativeTo : new Date ( '2023-12-01T00:00:00Z' ) } ] ,
269
+ [ '-P1M15D' , '-P2M' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
270
+ [ 'P1M15D' , 'P2M' , { relativeTo : new Date ( '2023-01-18T00:00:00Z' ) } ] ,
271
+ [ '-P1M15D' , '-P2M' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
272
+ [ 'P1M15D' , 'P2M' , { relativeTo : new Date ( '2023-01-18T00:00:00Z' ) } ] ,
255
273
[ '-P18M' , '-P2Y' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
256
274
[ 'P18M' , 'P2Y' , { relativeTo : new Date ( '2023-12-01T00:00:00Z' ) } ] ,
257
- [ '-P18M' , '-P2Y ' , { relativeTo : new Date ( '2023-07-01T00:00:00Z' ) } ] ,
275
+ [ '-P18M' , '-P1Y ' , { relativeTo : new Date ( '2023-07-01T00:00:00Z' ) } ] ,
258
276
[ 'P18M' , 'P2Y' , { relativeTo : new Date ( '2023-07-01T00:00:00Z' ) } ] ,
259
277
[ '-P18M' , '-P1Y' , { relativeTo : new Date ( '2023-08-01T00:00:00Z' ) } ] ,
260
278
[ 'P18M' , 'P1Y' , { relativeTo : new Date ( '2023-03-01T00:00:00Z' ) } ] ,
261
- [ '-P9M20DT25H' , '-P9M' , { relativeTo : new Date ( '2023-11-12T00:00:00Z' ) } ] ,
262
- [ 'P9M20DT25H' , 'P9M' , { relativeTo : new Date ( '2023-01-12T00:00:00Z' ) } ] ,
279
+ [
280
+ '-P9M20DT25H' ,
281
+ '-P10M' ,
282
+ {
283
+ relativeTo : new Date ( '2023-11-12T00:00:00Z' ) ,
284
+ } ,
285
+ ] ,
286
+ [ 'P9M20DT25H' , 'P10M' , { relativeTo : new Date ( '2023-01-12T00:00:00Z' ) } ] ,
263
287
[ 'P11M' , 'P1Y' , { relativeTo : new Date ( '2022-11-01T00:00:00Z' ) } ] ,
264
288
[ '-P11M' , '-P1Y' , { relativeTo : new Date ( '2022-11-01T00:00:00Z' ) } ] ,
265
289
[ 'P1Y4D' , 'P1Y' , { relativeTo : new Date ( '2022-11-01T00:00:00Z' ) } ] ,
266
290
[ 'P1Y5M13D' , 'P1Y' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
267
291
[ 'P1Y5M15D' , 'P1Y' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
268
292
[ 'P1Y5M20D' , 'P1Y' , { relativeTo : new Date ( '2023-01-01T00:00:00Z' ) } ] ,
269
293
[ 'P1Y10M' , 'P2Y' , { relativeTo : new Date ( '2022-11-01T00:00:00Z' ) } ] ,
270
- [ '-P1Y10M' , '-P2Y ' , { relativeTo : new Date ( '2022-11-01T00:00:00Z' ) } ] ,
294
+ [ '-P1Y10M' , '-P1Y ' , { relativeTo : new Date ( '2022-11-01T00:00:00Z' ) } ] ,
271
295
[ 'P1Y10M' , 'P1Y' , { relativeTo : new Date ( '2022-01-01T00:00:00Z' ) } ] ,
272
296
[ '-P1Y10M' , '-P1Y' , { relativeTo : new Date ( '2022-12-01T00:00:00Z' ) } ] ,
297
+ [
298
+ '-P1Y5M20D' ,
299
+ '-P2Y' ,
300
+ {
301
+ relativeTo : new Date ( '2022-01-01T00:00:00Z' ) ,
302
+ } ,
303
+ ] ,
273
304
] )
274
305
for ( const [ input , expected , opts ] of roundTests ) {
275
306
test ( `roundToSingleUnit(${ input } ) === ${ expected } ` , ( ) => {
@@ -299,16 +330,29 @@ suite('duration', function () {
299
330
[ 'PT1H31M' , [ 1 , 'hour' ] ] ,
300
331
[ 'PT1H55M' , [ 2 , 'hour' ] ] ,
301
332
[ 'PT20H' , [ 20 , 'hour' ] ] ,
302
- [ 'PT21H' , [ 1 , 'day' ] ] ,
303
- [ 'P4D' , [ 4 , 'day' ] ] ,
304
- [ 'P6D' , [ 1 , 'week' ] ] ,
305
- [ 'P2W' , [ 2 , 'week' ] ] ,
306
- [ 'P3W3D' , [ 3 , 'week' ] ] ,
307
- [ 'P3W6D' , [ 1 , 'month' ] ] ,
308
- [ 'P21D' , [ 3 , 'week' ] ] ,
309
- [ 'P24D' , [ 3 , 'week' ] ] ,
310
- [ 'P24DT25H' , [ 1 , 'month' ] ] ,
311
- [ 'P25D' , [ 1 , 'month' ] ] ,
333
+ [ 'PT21H' , [ 1 , 'day' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
334
+ [ '-PT21H' , [ - 1 , 'day' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
335
+ [ 'P4D' , [ 4 , 'day' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
336
+ [ '-P4D' , [ - 4 , 'day' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
337
+ [ 'P6D' , [ 1 , 'week' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
338
+ [ '-P6D' , [ - 1 , 'week' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
339
+ [ 'P2W' , [ 2 , 'week' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
340
+ [ '-P2W' , [ - 2 , 'week' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
341
+ [ 'P3W3D' , [ 3 , 'week' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
342
+ [ '-P3W3D' , [ - 3 , 'week' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
343
+ [ 'P3W6D' , [ 1 , 'month' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
344
+ [ '-P3W6D' , [ - 1 , 'month' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
345
+ [ 'P21D' , [ 3 , 'week' ] , { relativeTo : '2023-01-01T00:00:00Z' } ] ,
346
+ [ '-P21D' , [ - 3 , 'week' ] , { relativeTo : '2023-01-01T00:00:00Z' } ] ,
347
+ [ 'P24D' , [ 3 , 'week' ] , { relativeTo : '2023-01-01T00:00:00Z' } ] ,
348
+ [ '-P24D' , [ - 3 , 'week' ] , { relativeTo : '2023-01-01T00:00:00Z' } ] ,
349
+ [ 'P24DT25H' , [ 1 , 'month' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
350
+ [ 'P25D' , [ 1 , 'month' ] , { relativeTo : '2023-01-15T00:00:00Z' } ] ,
351
+ [ '-P35D' , [ - 1 , 'month' ] , { relativeTo : '2023-02-07T22:22:57Z' } ] ,
352
+ [ '-P45D' , [ - 1 , 'month' ] , { relativeTo : '2023-02-17T22:22:57Z' } ] ,
353
+ [ '-P55D' , [ - 1 , 'month' ] , { relativeTo : '2023-02-27T22:22:57Z' } ] ,
354
+ [ '-P65D' , [ - 3 , 'month' ] , { relativeTo : '2023-02-28T22:22:57Z' } ] ,
355
+ [ '-P75D' , [ - 3 , 'month' ] , { relativeTo : '2023-03-09T22:22:57Z' } ] ,
312
356
[
313
357
'P8M' ,
314
358
[ 8 , 'month' ] ,
@@ -337,7 +381,7 @@ suite('duration', function () {
337
381
relativeTo : new Date ( '2022-12-01T00:00:00Z' ) ,
338
382
} ,
339
383
] ,
340
- [ 'P1M1D' , [ 1 , 'month' ] ] ,
384
+ [ 'P1M1D' , [ 1 , 'month' ] , { relativeTo : new Date ( '2022-12-01T00:00:00Z' ) } ] ,
341
385
[
342
386
'P9M20DT25H' ,
343
387
[ 9 , 'month' ] ,
@@ -347,14 +391,14 @@ suite('duration', function () {
347
391
] ,
348
392
[
349
393
'-P9M20DT25H' ,
350
- [ - 9 , 'month' ] ,
394
+ [ - 10 , 'month' ] ,
351
395
{
352
396
relativeTo : new Date ( '2022-12-01T00:00:00Z' ) ,
353
397
} ,
354
398
] ,
355
399
[
356
400
'P9M24DT25H' ,
357
- [ 10 , 'month' ] ,
401
+ [ 9 , 'month' ] ,
358
402
{
359
403
relativeTo : new Date ( '2022-01-01T00:00:00Z' ) ,
360
404
} ,
0 commit comments