Skip to content

Commit a9a745c

Browse files
committed
updated tests for DatetimeIndex type change
1 parent 27cca3d commit a9a745c

File tree

2 files changed

+31
-17
lines changed

2 files changed

+31
-17
lines changed

pandas/tests/tseries/holiday/test_holiday.py

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ def test_holiday_with_exclusion():
359359
# GH 54382
360360
start = Timestamp("2020-05-01")
361361
end = Timestamp("2025-05-31")
362-
exclude = [Timestamp("2022-05-30")] # Queen's platinum Jubilee
362+
exclude = DatetimeIndex([Timestamp("2022-05-30")]) # Queen's platinum Jubilee
363363
default_uk_spring_bank_holiday: Holiday = Holiday(
364364
"UK Spring Bank Holiday",
365365
month=5,
@@ -375,22 +375,25 @@ def test_holiday_with_exclusion():
375375
exclude_dates=exclude,
376376
)
377377

378-
original_dates = list(default_uk_spring_bank_holiday.dates(start, end))
379-
exclusion_dates = list(queens_jubilee_uk_spring_bank_holiday.dates(start, end))
378+
original_dates = default_uk_spring_bank_holiday.dates(start, end)
379+
actual_dates = queens_jubilee_uk_spring_bank_holiday.dates(start, end)
380+
print(exclude.isin(original_dates).all())
380381

381-
assert all(ex in original_dates for ex in exclude)
382-
assert all(ex not in exclusion_dates for ex in exclude)
383-
assert set(exclusion_dates).issubset(original_dates)
382+
assert exclude.isin(original_dates).all()
383+
assert ~exclude.isin(actual_dates).all()
384+
assert actual_dates.isin(original_dates).all()
384385

385386

386387
def test_holiday_with_multiple_exclusions():
387388
start = Timestamp("2000-01-01")
388389
end = Timestamp("2100-05-31")
389-
exclude = [
390-
Timestamp("2025-01-01"),
391-
Timestamp("2042-01-01"),
392-
Timestamp("2061-01-01"),
393-
] # Yakudoshi new year
390+
exclude = DatetimeIndex(
391+
[
392+
Timestamp("2025-01-01"),
393+
Timestamp("2042-01-01"),
394+
Timestamp("2061-01-01"),
395+
]
396+
) # Yakudoshi new year
394397
default_japan_new_year: Holiday = Holiday(
395398
"Japan New Year",
396399
month=1,
@@ -401,9 +404,20 @@ def test_holiday_with_multiple_exclusions():
401404
"Yakudoshi New Year", month=1, day=1, exclude_dates=exclude
402405
)
403406

404-
original_dates = list(default_japan_new_year.dates(start, end))
405-
exclusion_dates = list(yakudoshi_new_year.dates(start, end))
407+
original_dates = default_japan_new_year.dates(start, end)
408+
actual_dates = yakudoshi_new_year.dates(start, end)
409+
410+
assert exclude.isin(original_dates).all()
411+
assert ~exclude.isin(actual_dates).all()
412+
assert actual_dates.isin(original_dates).all()
413+
406414

407-
assert all(ex in original_dates for ex in exclude)
408-
assert all(ex not in exclusion_dates for ex in exclude)
409-
assert set(exclusion_dates).issubset(original_dates)
415+
def test_exclude_date_value_error():
416+
msg = "exclude_dates must be None or of type DatetimeIndex."
417+
418+
with pytest.raises(ValueError, match=msg):
419+
exclude = [
420+
Timestamp("2025-06-10"),
421+
Timestamp("2026-06-10"),
422+
]
423+
Holiday("National Ice Tea Day", month=6, day=10, exclude_dates=exclude)

pandas/tseries/holiday.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ def dates(
335335
(holiday_dates >= filter_start_date) & (holiday_dates <= filter_end_date)
336336
]
337337

338-
if self.exclude_dates:
338+
if self.exclude_dates is not None:
339339
holiday_dates = holiday_dates.difference(self.exclude_dates)
340340
if return_name:
341341
return Series(self.name, index=holiday_dates)

0 commit comments

Comments
 (0)