-
-
Notifications
You must be signed in to change notification settings - Fork 550
Add Suriname holidays #2465
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Suriname holidays #2465
Conversation
Summary by CodeRabbit
Summary by CodeRabbit
WalkthroughThe pull request integrates Suriname into the holidays library, increasing the supported country count from 165 to 166. It updates the README to include Suriname and its details. A new module for Suriname is created with holiday definitions, including public, Hindu, and Islamic holidays. The initialization and registry files are modified to recognize Suriname, and new localization files for English and Dutch are added. Additionally, a comprehensive test suite is introduced to validate the functionality and translations for Suriname. Changes
Assessment against linked issues
Suggested labels
Suggested reviewers
📜 Recent review detailsConfiguration used: .coderabbit.yaml 📒 Files selected for processing (1)
🧰 Additional context used🧠 Learnings (1)tests/countries/test_suriname.py (1)
🔇 Additional comments (22)
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🔭 Outside diff range comments (1)
holidays/locale/nl/LC_MESSAGES/SR.po (1)
15-115
:⚠️ Potential issueMissing Dutch translations in the localization file
The Dutch localization file has been created with the proper structure and message IDs, but all translation strings are empty. This means Dutch users will see untranslated holiday names.
Consider adding the actual Dutch translations for all the message entries before merging this PR, as Dutch is set as the default language for Suriname in the implementation.
-msgstr "" +msgstr "Nieuwjaarsdag"Apply similar changes for all other entries in this file.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (7)
README.md
(2 hunks)holidays/countries/__init__.py
(1 hunks)holidays/countries/suriname.py
(1 hunks)holidays/locale/en_US/LC_MESSAGES/SR.po
(1 hunks)holidays/locale/nl/LC_MESSAGES/SR.po
(1 hunks)holidays/registry.py
(1 hunks)tests/countries/test_suriname.py
(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
holidays/countries/__init__.py (1)
holidays/countries/suriname.py (3)
Suriname
(27-166)SR
(256-257)SUR
(260-261)
holidays/countries/suriname.py (7)
holidays/calendars/hindu.py (1)
_CustomHinduHolidays
(1305-1306)holidays/calendars/islamic.py (1)
_CustomIslamicHolidays
(3881-3882)holidays/groups/chinese.py (2)
ChineseCalendarHolidays
(21-264)_add_chinese_new_years_day
(133-143)holidays/groups/hindu.py (3)
HinduCalendarHolidays
(21-319)_add_holi
(178-187)_add_diwali
(87-97)holidays/groups/international.py (3)
InternationalHolidays
(18-220)_add_new_years_day
(126-134)_add_labor_day
(99-108)holidays/groups/islamic.py (3)
IslamicHolidays
(20-416)_add_eid_al_fitr_day
(152-163)_add_eid_al_adha_day
(109-120)holidays/observed_holiday_base.py (1)
ObservedHolidayBase
(101-239)
🔇 Additional comments (32)
holidays/registry.py (1)
164-164
: Clean addition of Suriname to the countries registryThe entry for Suriname follows the established pattern in the
COUNTRIES
dictionary with the country name and proper ISO codes. Good job on maintaining consistency.holidays/countries/__init__.py (1)
156-156
: Properly integrated Suriname importThe import statement for Suriname and its ISO code aliases (SR, SUR) follows the consistent pattern used for other countries in the file. This ensures Suriname will be properly available through the module's API.
README.md (2)
102-102
: Updated country count reflects Suriname addition.The country count has been correctly updated from 165 to 166 to reflect the addition of Suriname.
1132-1137
: Suriname entry follows consistent table format.The new entry for Suriname has been properly formatted with country name, ISO code, supported languages (en_US, nl), and appropriate boldface for the default language (nl).
tests/countries/test_suriname.py (21)
18-24
: Test class setup follows project conventions.The TestSuriname class properly inherits from CommonCountryTests and TestCase, with appropriate setup for years 1972-2050, matching the start_year defined in the implementation.
25-27
: Country aliases correctly tested.Test properly verifies that SR and SUR are valid aliases for Suriname.
28-30
: Empty year validation is correct.Test ensures that no holidays exist for years before the start_year (1972).
31-41
: New Year's Day and observed day tests look complete.Test validates both the holiday name and the observed day logic (when New Year's Day falls on a weekend).
42-48
: Day of Liberation and Renewal time periods are properly tested.Test correctly verifies that this holiday only exists during specific periods (1981-1992 and 2012-2020), reflecting changes in Suriname's holiday policies.
49-65
: Holi test covers specific dates and observed days.Test properly validates Holi dates from 2019 to 2025 and observed days when Holi falls on weekends.
66-89
: Easter-related holiday tests are comprehensive.Both Good Friday and Easter Monday tests correctly verify holiday dates across multiple years.
90-94
: Queen's Birthday historical test is accurate.Test verifies that Queen's Birthday was only observed from 1972 to 1975.
95-105
: Labor Day test includes observed days check.Test properly validates both the holiday and its observed days when falling on weekends.
106-118
: Day of Freedoms name change is properly tested.Test correctly validates the name change from "Dag der Vrijheden" to "Keti Koti Dey" in 2008.
119-132
: Indigenous People Day test includes start year and observed days.Test verifies that this holiday only exists from 2007 onward and includes observed day logic.
133-145
: Day of the Maroons test includes start year and observed days.Test verifies that this holiday only exists from 2012 onward and includes observed day logic.
146-165
: Diwali test includes start year, specific dates, and observed days.Test verifies that Diwali is only observed from 2012 onward, checks specific dates, and validates observed day logic.
166-179
: Republic Day name change is properly tested.Test correctly validates the name change from "Dag van de Republiek" to "Onafhankelijkheidsdag" in 2008 and verifies it only exists from 1976 onward.
180-201
: Christmas tests include both days and observed days.Tests for Christmas Day and Boxing Day properly validate holiday dates and observed day logic.
203-219
: Eid al-Fitr test includes specific dates and observed days.Test properly validates Eid al-Fitr dates from 2019 to 2025 and observed day logic.
220-237
: Eid al-Adha test includes start year, specific dates, and observed days.Test verifies that Eid al-Adha is only observed from 2012 onward, checks specific dates, and validates observed day logic.
238-249
: Chinese New Year test includes start year and specific dates.Test verifies that Chinese New Year is only observed from 2022 onward and checks specific dates.
250-268
: 2024 specific test validates all holidays for the current year.Comprehensive test for 2024 includes all expected holidays with their correct names.
270-291
: Dutch localization test is comprehensive.Test verifies all holiday names in Dutch (the default language) for 2025, including observed days.
292-312
: English localization test is comprehensive.Test verifies all holiday names in English for 2025, including observed days.
holidays/countries/suriname.py (7)
27-59
: Class definition and metadata follow project standards.The Suriname class inherits from appropriate base classes and defines required metadata like country code, default language, and supported languages. Documentation includes official references to Suriname's holiday legislation.
61-77
: Constructor initializes all parent classes correctly.The constructor properly initializes all parent classes with appropriate parameters, including custom Hindu and Islamic holiday classes. The observed rule is set to SAT_SUN_TO_NEXT_WORKDAY as per Suriname's regulations.
78-141
: Populate method implements holidays according to documented rules.Public holidays are correctly implemented with appropriate time periods and observed day logic. The implementation is consistent with the tests and includes historical changes in holiday names and observances.
142-167
: Religious holidays are properly implemented.Hindu, Islamic, and Chinese holidays are correctly implemented with appropriate time periods and observed day logic. The implementation handles the special cases of movable religious holidays.
169-210
: Hindu holiday dates are predefined for accuracy.The SurinameHinduHolidays class includes predefined dates for Holi and Diwali from 2014/2015 to 2030, ensuring accuracy for these movable holidays.
212-254
: Islamic holiday dates are predefined for accuracy.The SurinameIslamicHolidays class includes predefined dates for Eid al-Fitr and Eid al-Adha from 2014 to 2030, ensuring accuracy for these movable holidays.
256-261
: Country code aliases follow project conventions.The SR and SUR classes are defined as aliases for Suriname, following the project's pattern for country code aliases.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #2465 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 210 211 +1
Lines 13351 13408 +57
Branches 1911 1919 +8
=========================================
+ Hits 13351 13408 +57 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kritibirda26, it's great research! Take a look at a few comments and suggestions, please.
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Signed-off-by: Kriti Birda <164247895+kritibirda26@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
holidays/countries/suriname.py
(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
holidays/countries/suriname.py (8)
holidays/calendars/hindu.py (1)
_CustomHinduHolidays
(1305-1306)holidays/calendars/islamic.py (1)
_CustomIslamicHolidays
(3881-3882)holidays/groups/chinese.py (2)
ChineseCalendarHolidays
(21-264)_add_chinese_new_years_day
(133-143)holidays/groups/christian.py (5)
ChristianHolidays
(22-463)_add_good_friday
(308-317)_add_easter_monday
(259-268)_add_christmas_day
(208-216)_add_christmas_day_two
(218-226)holidays/groups/hindu.py (3)
HinduCalendarHolidays
(21-319)_add_holi
(178-187)_add_diwali
(87-97)holidays/groups/international.py (3)
InternationalHolidays
(18-220)_add_new_years_day
(126-134)_add_labor_day
(99-108)holidays/groups/islamic.py (3)
IslamicHolidays
(20-416)_add_eid_al_fitr_day
(152-163)_add_eid_al_adha_day
(109-120)holidays/observed_holiday_base.py (1)
ObservedHolidayBase
(101-239)
🪛 Ruff (0.8.2)
holidays/countries/suriname.py
16-16: holidays.calendars.gregorian.FEB
imported but unused
Remove unused import: holidays.calendars.gregorian.FEB
(F401)
128-128: Local variable name
is assigned to but never used
Remove assignment to unused variable name
(F841)
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Signed-off-by: Kriti Birda <164247895+kritibirda26@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
♻️ Duplicate comments (1)
holidays/locale/nl/LC_MESSAGES/SR.po (1)
13-13
: This comment matches the suggested fix.The header comment now uses the correct format as previously suggested.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
holidays/locale/nl/LC_MESSAGES/SR.po
(1 hunks)tests/countries/test_suriname.py
(1 hunks)
🔇 Additional comments (7)
holidays/locale/nl/LC_MESSAGES/SR.po (1)
17-21
: Check the creation date and author information.The file shows a creation date of April 12, 2025, which may be in the future depending on when this PR is merged. Consider updating to the actual date of creation.
tests/countries/test_suriname.py (6)
21-23
: Solid test setup with comprehensive year coverage.The test suite is set up to test holidays from 1972 to 2050, providing excellent coverage of historical and future holidays.
107-117
: Well-structured test for renamed holiday.The test properly accounts for the holiday name change from "Dag der Vrijheden" to "Keti Koti Dey" in 2008.
167-178
: Multiple holiday name tests with observed periods.The test correctly handles the change from "Dag van de Republiek" to "Onafhankelijkheidsdag" in 2008, and properly tests the day after observation.
250-268
: Comprehensive 2024 holiday test.The test for 2024 holidays provides a good validation of the entire holiday set for the current year.
270-289
: Thorough default localization test.The default localization test validates all holidays for 2025 including the "day after" cases where holidays observed on weekends cause an additional holiday on the following weekday.
291-311
: Complete English localization test.The English localization test ensures that all holiday names are correctly translated, matching the translations defined in the locale files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (7)
holidays/locale/nl/LC_MESSAGES/SR.po (3)
73-74
: 🧹 Nitpick (assertive)Consistency in holiday naming.
The "Keti Koti Dey" message uses a different naming convention than most other holidays (with "Dey" instead of "dag"). Consider using consistent naming patterns across all holidays.
101-102
: 🧹 Nitpick (assertive)Inconsistent spacing in holiday names.
"Divali dag" uses a different spacing pattern than other holidays like "Holi-dag" (line 97) or "Id-ul-Fitr dag" (line 105). Consider standardizing the format.
-msgid "Divali dag" +msgid "Divali-dag"
49-50
:⚠️ Potential issueTypo in Dutch holiday name.
There's a typo in "Dag van Bevrijding en Venieuwing" - the correct spelling should be "Dag van Bevrijding en Vernieuwing" (with 'r' in "Vernieuwing").
-msgid "Dag van Bevrijding en Venieuwing" +msgid "Dag van Bevrijding en Vernieuwing"holidays/locale/en_US/LC_MESSAGES/SR.po (1)
73-74
: Review Translation Specificity for "Keti Koti Dey"Both "Dag der Vrijheden" and "Keti Koti Dey" are translated as "Day of Freedoms". If these are distinct holidays or if "Keti Koti Dey" is a local name that should be preserved, consider using a more specific translation to maintain its cultural significance.
tests/countries/test_suriname.py (1)
47-47
: 🧹 Nitpick (assertive)Extra whitespace in assertion.
There's an extra space after the comma in the assertNoHolidayName call.
- self.assertNoHolidayName(name, range(1993, 2012), range(2021, 2050)) + self.assertNoHolidayName(name, range(1993, 2012), range(2021, 2050))holidays/countries/suriname.py (2)
13-24
: 🧹 Nitpick (assertive)Unused import detected.
The module imports from holidays.calendars.gregorian but FEB is never used in the code.
-from holidays.calendars.gregorian import MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV +from holidays.calendars.gregorian import MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
128-137
: 🧹 Nitpick (assertive)Fix implied Independence/Republic Day logic.
The name is correctly assigned but there's a more concise way to implement this without creating an intermediate variable.
- if self._year >= 1976: - name = ( - # Independence Day. - tr("Onafhankelijkheidsdag") - if self._year >= 2008 - # Republic Day. - else tr("Dag van de Republiek") - ) - dt = self._add_holiday_nov_25(name) - if self._year > 2024: - self._add_observed(dt) + if self._year >= 1976: + dt = self._add_holiday_nov_25( + # Independence Day. + tr("Onafhankelijkheidsdag") + if self._year >= 2008 + # Republic Day. + else tr("Dag van de Republiek") + ) + if self._year > 2024: + self._add_observed(dt)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (4)
holidays/countries/suriname.py
(1 hunks)holidays/locale/en_US/LC_MESSAGES/SR.po
(1 hunks)holidays/locale/nl/LC_MESSAGES/SR.po
(1 hunks)tests/countries/test_suriname.py
(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
holidays/countries/suriname.py (2)
holidays/groups/chinese.py (2)
ChineseCalendarHolidays
(21-264)_add_chinese_new_years_day
(133-143)holidays/observed_holiday_base.py (1)
ObservedHolidayBase
(101-239)
🔇 Additional comments (6)
holidays/locale/nl/LC_MESSAGES/SR.po (1)
13-13
: File description has been improved.The description line "Suriname holidays." clearly identifies the purpose of this file.
tests/countries/test_suriname.py (4)
106-121
: LGTM: Comprehensive test for Day of Freedoms name change.The test correctly verifies that the holiday name changes between "Dag der Vrijheden" and "Keti Koti Dey" based on the year ranges.
171-182
: LGTM: Republic Day to Independence Day name transition test.The test correctly verifies the transition from "Dag van de Republiek" to "Onafhankelijkheidsdag" in 2008.
274-293
: Comprehensive default localization test.The test covers all holidays in their default language (Dutch) for 2025 including observed days.
295-315
: Thorough English localization test.Good coverage of English translations for 2025 holidays, ensuring all translations are properly applied.
holidays/countries/suriname.py (1)
35-48
: Excellent documentation with archived references.The class documentation includes archived links to official documents that define the holidays, which is excellent for maintainability and verification.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (6)
holidays/locale/nl/LC_MESSAGES/SR.po (4)
31-32
: All Dutch translations are empty.All
msgstr
fields remain empty in this file, so the Dutch localization will not be functional until translations are provided.
49-50
: Correct the spelling in “Venieuwing”.The word “Venieuwing” is missing the letter “r”:
- msgid "Dag van Bevrijding en Venieuwing" + msgid "Dag van Bevrijding en Vernieuwing"
73-74
: Ensure consistent naming for “Keti Koti Dey”.“Keti Koti Dey” mixes an English word “Dey” with other Dutch terms. Consider adopting a more unified naming approach.
101-102
: Standardize the holiday name for “Divali dag”.To match the hyphenation in other holidays (e.g., “Holi-dag”), consider adding a hyphen:
-msgid "Divali dag" +msgid "Divali-dag"holidays/locale/en_US/LC_MESSAGES/SR.po (2)
73-74
: Re-check the translation for “Keti Koti Dey”.“Keti Koti Dey” appears to reference “Day of Freedoms,” which is also used elsewhere. If these are intended to be distinct holidays or local names, confirm the translation is accurate.
85-86
: Amend the translation for “Onafhankelijkheidsdag”.“Onafhankelijkheidsdag” is “Independence Day” in English. Consider:
-msgstr "Republic Day" +msgstr "Independence Day"
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (4)
holidays/countries/suriname.py
(1 hunks)holidays/locale/en_US/LC_MESSAGES/SR.po
(1 hunks)holidays/locale/nl/LC_MESSAGES/SR.po
(1 hunks)tests/countries/test_suriname.py
(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
tests/countries/test_suriname.py (2)
tests/common.py (8)
TestCase
(28-338)CommonCountryTests
(356-374)assertAliases
(121-130)assertNoHolidays
(292-294)assertHolidayName
(195-199)assertNoNonObservedHoliday
(248-250)assertHolidays
(228-230)assertLocalizedHolidays
(327-338)holidays/countries/suriname.py (2)
Suriname
(27-173)SR
(253-254)
holidays/countries/suriname.py (8)
holidays/calendars/hindu.py (1)
_CustomHinduHolidays
(1305-1306)holidays/calendars/islamic.py (1)
_CustomIslamicHolidays
(3881-3882)holidays/groups/chinese.py (2)
ChineseCalendarHolidays
(21-264)_add_chinese_new_years_day
(133-143)holidays/groups/christian.py (5)
ChristianHolidays
(22-463)_add_good_friday
(308-317)_add_easter_monday
(259-268)_add_christmas_day
(208-216)_add_christmas_day_two
(218-226)holidays/groups/hindu.py (3)
HinduCalendarHolidays
(21-319)_add_holi
(178-187)_add_diwali
(87-97)holidays/groups/international.py (3)
InternationalHolidays
(18-220)_add_new_years_day
(126-134)_add_labor_day
(99-108)holidays/groups/islamic.py (3)
IslamicHolidays
(20-416)_add_eid_al_fitr_day
(152-163)_add_eid_al_adha_day
(109-120)holidays/observed_holiday_base.py (1)
ObservedHolidayBase
(101-239)
🔇 Additional comments (1)
holidays/countries/suriname.py (1)
81-82
: Verify consistency of observed holiday conditions.The code sometimes uses
> 2024
and elsewhere uses>= 2024
for applying observed holidays. Please confirm which cutoff is correct and standardize as needed.Also applies to: 90-91, 95-96, 141-142, 146-147, 151-152
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Signed-off-by: Kriti Birda <164247895+kritibirda26@users.noreply.github.com>
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Signed-off-by: Kriti Birda <164247895+kritibirda26@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
holidays/countries/suriname.py
(1 hunks)tests/countries/test_suriname.py
(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
tests/countries/test_suriname.py (1)
Learnt from: PPsyrius
PR: vacanza/holidays#2416
File: tests/countries/test_turkmenistan.py:52-64
Timestamp: 2025-04-05T04:47:27.213Z
Learning: For holiday tests in the vacanza/holidays project, structure tests by individual holidays rather than by years. Each test method should focus on a specific holiday and test it across multiple years (from start_year through 2050) using helper methods like `assertHolidayName`. For fixed holidays, use generators like `(f"{year}-01-01" for year in range(1991, 2051))`. For movable holidays, specify individual dates for specific years followed by a range check.
holidays/countries/suriname.py (3)
Learnt from: KJhellico
PR: vacanza/holidays#2386
File: holidays/countries/nepal.py:266-284
Timestamp: 2025-04-13T20:41:56.572Z
Learning: The Islamic holiday dates in the holidays library should only include officially verified dates, not predicted ones, to maintain accuracy. This is especially important for holidays that depend on lunar observations like Eid al-Fitr and Eid al-Adha.
Learnt from: PPsyrius
PR: vacanza/holidays#2398
File: holidays/countries/guinea.py:73-77
Timestamp: 2025-04-03T12:36:41.201Z
Learning: In the Holidays library, comments explaining year restrictions for holidays should be placed above the year check conditional statement, not inside it. Example format:
```python
# reason why goes here
if start_year <= self._year <= end_year:
# Holiday name
self._add_holiday_function(tr("Holiday Name"))
Learnt from: KJhellico
PR: #2465
File: holidays/countries/suriname.py:219-251
Timestamp: 2025-04-13T19:10:31.461Z
Learning: The _CustomIslamicHolidays
classes in this project contain only exact verified holiday dates from reliable sources, rather than calculated or estimated future dates. This is by design to ensure accuracy, particularly for religious holidays that may follow lunar calendars or depend on local observations.
</details>
</details><details>
<summary>🧬 Code Graph Analysis (1)</summary>
<details>
<summary>holidays/countries/suriname.py (5)</summary><blockquote>
<details>
<summary>holidays/holiday_base.py (1)</summary>
* `HolidayBase` (57-1275)
</details>
<details>
<summary>holidays/groups/chinese.py (1)</summary>
* `ChineseCalendarHolidays` (21-264)
</details>
<details>
<summary>holidays/groups/christian.py (1)</summary>
* `ChristianHolidays` (22-463)
</details>
<details>
<summary>holidays/groups/international.py (1)</summary>
* `InternationalHolidays` (18-220)
</details>
<details>
<summary>holidays/groups/islamic.py (1)</summary>
* `IslamicHolidays` (20-416)
</details>
</blockquote></details>
</details>
</details>
<details>
<summary>🔇 Additional comments (7)</summary><blockquote>
<details>
<summary>tests/countries/test_suriname.py (4)</summary>
`19-19`: **Good coverage with `CommonCountryTests`.**
This test suite properly inherits from `CommonCountryTests`, ensuring standard testing for Suriname's unique logic.
---
`31-39`: **Excellent use of year ranges.**
Your approach of partitioning holiday rules across ranges (e.g., 1981–1992 and 2012–2020) aligns with known legislative changes. This ensures precise coverage.
---
`41-54`: **Comprehensive Holi checks.**
Testing Holi each year within the dictionary range is consistent with prior feedback to test single holidays across multiple years.
---
`178-197`: **Clear reference test for year 2024.**
Listing each holiday with expected names is straightforward and reduces confusion about final observed days.
</details>
<details>
<summary>holidays/countries/suriname.py (3)</summary>
`80-83`: **Concise logic for Day of Liberation and Renewal.**
Conditionally adding the holiday between 1981–1992 and 2012–2020 appears aligned with official references. Nice usage of `_add_holiday_feb_25`.
---
`110-119`: **Straightforward handling of Republic/Independence Day.**
Using November 25 for both names based on the year supports historical accuracy without extra complexity.
---
`140-142`: **Chinese New Year addition.**
The condition `>= 2022` is clear and consistent with incorporating new support at that cutoff, aligning with documented references.
</details>
</blockquote></details>
</details>
<!-- This is an auto-generated comment by CodeRabbit for review status -->
Proposed change
Add holidays for Suriname (en_US, nl).
Resolves #1274.
Type of change
holidays
functionality in general)Checklist
make check
, all checks and tests are green