@@ -563,14 +563,14 @@ def test_precisedelta_one_unit_enough(
563
563
"minutes" ,
564
564
"0 minutes" ,
565
565
),
566
- (dt .timedelta (days = 31 ), "seconds" , "1 month and 12 hours " ),
567
- (dt .timedelta (days = 32 ), "seconds" , "1 month, 1 day and 12 hours " ),
566
+ (dt .timedelta (days = 31 ), "seconds" , "1 month" ),
567
+ (dt .timedelta (days = 32 ), "seconds" , "1 month and 1 day " ),
568
568
(dt .timedelta (days = 62 ), "seconds" , "2 months and 1 day" ),
569
- (dt .timedelta (days = 92 ), "seconds" , "3 months and 12 hours " ),
570
- (dt .timedelta (days = 31 ), "days" , "1 month and 0.50 days " ),
571
- (dt .timedelta (days = 32 ), "days" , "1 month and 1.50 days " ),
569
+ (dt .timedelta (days = 92 ), "seconds" , "3 months" ),
570
+ (dt .timedelta (days = 31 ), "days" , "1 month" ),
571
+ (dt .timedelta (days = 32 ), "days" , "1 month and 1 day " ),
572
572
(dt .timedelta (days = 62 ), "days" , "2 months and 1 day" ),
573
- (dt .timedelta (days = 92 ), "days" , "3 months and 0.50 days " ),
573
+ (dt .timedelta (days = 92 ), "days" , "3 months" ),
574
574
],
575
575
)
576
576
def test_precisedelta_multiple_units (
@@ -620,19 +620,11 @@ def test_precisedelta_multiple_units(
620
620
"5 days and 4.50 hours" ,
621
621
),
622
622
(dt .timedelta (days = 5 , hours = 4 , seconds = 30 * 60 ), "days" , "%0.2f" , "5.19 days" ),
623
- # 1 month is 30.5 days. Remaining 0.5 days is rounded down for both formats
623
+ # 1 month is 30.5 days but remainder is always rounded down.
624
624
(dt .timedelta (days = 31 ), "days" , "%d" , "1 month" ),
625
625
(dt .timedelta (days = 31 ), "days" , "%.0f" , "1 month" ),
626
- # But adding a tiny amount will reveal a difference between %d and %.0f
627
- # %d will truncate while %.0f will round to the nearest number.
628
- (dt .timedelta (days = 31.01 ), "days" , "%d" , "1 month" ),
629
- (dt .timedelta (days = 31.01 ), "days" , "%.0f" , "1 month and 1 day" ),
630
- (dt .timedelta (days = 31.99 ), "days" , "%d" , "1 month and 1 day" ),
631
- # 1 month is 30.5 days. Remaining 1.5 days is truncated for %d.
632
- # For format %.0f, there is a tie, so it's rounded to the nearest even number,
633
- # which is 2. See https://en.wikipedia.org/wiki/IEEE_754#Rounding_rules
634
626
(dt .timedelta (days = 32 ), "days" , "%d" , "1 month and 1 day" ),
635
- (dt .timedelta (days = 32 ), "days" , "%.0f" , "1 month and 2 days " ),
627
+ (dt .timedelta (days = 32 ), "days" , "%.0f" , "1 month and 1 day " ),
636
628
(dt .timedelta (days = 62 ), "days" , "%d" , "2 months and 1 day" ),
637
629
(dt .timedelta (days = 92 ), "days" , "%d" , "3 months" ),
638
630
(dt .timedelta (days = 120 ), "months" , "%0.2f" , "3.93 months" ),
0 commit comments