@@ -563,14 +563,14 @@ def test_precisedelta_one_unit_enough(
563563 "minutes" ,
564564 "0 minutes" ,
565565 ),
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 " ),
568568 (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 " ),
572572 (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" ),
574574 ],
575575)
576576def test_precisedelta_multiple_units (
@@ -620,19 +620,11 @@ def test_precisedelta_multiple_units(
620620 "5 days and 4.50 hours" ,
621621 ),
622622 (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.
624624 (dt .timedelta (days = 31 ), "days" , "%d" , "1 month" ),
625625 (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
634626 (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 " ),
636628 (dt .timedelta (days = 62 ), "days" , "%d" , "2 months and 1 day" ),
637629 (dt .timedelta (days = 92 ), "days" , "%d" , "3 months" ),
638630 (dt .timedelta (days = 120 ), "months" , "%0.2f" , "3.93 months" ),
0 commit comments