Repository: vacanza/holidays
Pull request #2224 (2025-01-11 01:25:51)

Update ruff from v0.8.6 to v0.9.1
<!--
  Thanks for contributing to holidays!
-->

## Proposed change

<!--
  Describe the big picture of your changes.
  Don't forget to link your PR to an existing issue if any.
-->

Update ruff from v0.8.6 to v0.9.1

## Type of change

<!--
  Type of change you want to introduce. Please, check one (1) box only!
  If your PR requires multiple boxes to be checked, most likely it needs to
  be split into multiple PRs.
-->

- [ ] New country/market holidays support (thank you!)
- [ ] Supported country/market holidays update (calendar discrepancy fix, localization)
- [ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
- [x] Dependency update (version deprecation/pin/upgrade)
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Breaking change (a code change causing existing functionality to break)
- [ ] New feature (new `holidays` functionality in general)

## Checklist

<!--
  Put an `x` in the boxes that apply. You can change them after PR is created.
-->

- [x] I've followed the [contributing guidelines][contributing-guidelines]
- [x] I've successfully run `make check`, all checks and tests are green

<!--
  Thanks again for your contribution!
-->

[contributing-guidelines]: https://github.com/vacanza/holidays/blob/dev/CONTRIBUTING.rst
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2224) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2224&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2224&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2224&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2224&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2224&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2224)


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2224?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 100.00%. Comparing base [(`683aedf`)](https://app.codecov.io/gh/vacanza/holidays/commit/683aedfd63e9771b0c78ad2530ffbc81ed848329?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`e010085`)](https://app.codecov.io/gh/vacanza/holidays/commit/e0100854288d79713122ec8b2524ed349872c37f?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff            @@
##               dev     #2224   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          196       196           
  Lines        11828     11828           
  Branches      1707      1707           
=========================================
  Hits         11828     11828           
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2224?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).


Patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index e3253093..dd85c451 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -23,7 +23,7 @@ repos:
           - --py39-plus
 
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.8.6
+    rev: v0.9.1
     hooks:
       - id: ruff
       - id: ruff-format
diff --git a/holidays/countries/afghanistan.py b/holidays/countries/afghanistan.py
index d1b9ee5d..a8e662bf 100644
--- a/holidays/countries/afghanistan.py
+++ b/holidays/countries/afghanistan.py
@@ -12,11 +12,13 @@
 
 from gettext import gettext as tr
 
-from holidays.groups import InternationalHolidays, IslamicHolidays
+from holidays.calendars import _CustomIslamicHolidays
+from holidays.calendars.gregorian import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
+from holidays.groups import InternationalHolidays, IslamicHolidays, PersianCalendarHolidays
 from holidays.holiday_base import HolidayBase
 
 
-class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
+class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays, PersianCalendarHolidays):
     """
     https://en.wikipedia.org/wiki/Public_holidays_in_Afghanistan
     https://www.timeanddate.com/holidays/afghanistan/
@@ -26,17 +28,14 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
     default_language = "fa_AF"
     # %s (estimated).
     estimated_label = tr("%s (برآورد شده)")
-    # %s (observed).
-    observed_label = tr("%s (مشاهده شده)")
-    # %s (observed, estimated).
-    observed_estimated_label = tr("%s (مشاهده شده، برآورد شده)")
     supported_languages = ("en_US", "fa_AF", "ps_AF")
     # Afghanistan's regaining of full independence from British influence.
     start_year = 1919
 
     def __init__(self, *args, **kwargs):
         InternationalHolidays.__init__(self)
-        IslamicHolidays.__init__(self)
+        IslamicHolidays.__init__(self, AfghanistanIslamicHolidays)
+        PersianCalendarHolidays.__init__(self)
         super().__init__(*args, **kwargs)
 
     def _populate_public_holidays(self):
@@ -49,7 +48,7 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
 
         if self._year <= 1996 or 2001 <= self._year <= 2020:
             # Nowruz.
-            self._add_holiday_mar_21(tr("نوروز"))
+            self._add_nowruz_day(tr("نوروز"))
 
         if self._year >= 1992:
             # Mojahedin's Victory Day.
@@ -64,13 +63,26 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
             self._add_holiday_may_9(tr("روز پیروزی شوروی"))
 
         if self._year >= 2022:
+            # Islamic Emirate Victory Day.
+            self._add_islamic_emirat_victory_day(tr("روز پیروزی امارت اسلامی"))
+
             # American Withdrawal Day.
             self._add_holiday_aug_31(tr("روز خروج آمریکایی ها"))
 
-        if self._year >= 2012:
+        if 2012 <= self._year <= 2020:
             # Martyrs' Day.
             self._add_holiday_sep_9(tr("روز شهیدان"))
 
+        if self._year <= 2021:
+            # Ashura.
+            self._add_ashura_day(tr("عاشورا"))
+
+        # Prophet's Birthday.
+        self._add_mawlid_day(tr("میلاد پیامبر"))
+
+        # First Day of Ramadan.
+        self._add_ramadan_beginning_day(tr("اول رمضان"))
+
         # Eid al-Fitr.
         name = tr("عید فطر")
         self._add_eid_al_fitr_day(name)
@@ -86,15 +98,6 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
         self._add_eid_al_adha_day_two(name)
         self._add_eid_al_adha_day_three(name)
 
-        # Ashura.
-        self._add_ashura_day(tr("عاشورا"))
-
-        # First Day of Ramadan.
-        self._add_ramadan_beginning_day(tr("اول رمضان"))
-
-        # Prophet's Birthday.
-        self._add_mawlid_day(tr("میلاد پیامبر"))
-
 
 class AF(Afghanistan):
     pass
@@ -102,3 +105,72 @@ class AF(Afghanistan):
 
 class AFG(Afghanistan):
     pass
+
+
+class AfghanistanIslamicHolidays(_CustomIslamicHolidays):
+    ASHURA_DATES = {
+        2014: (NOV, 3),
+        2015: (OCT, 24),
+        2016: (OCT, 12),
+        2017: (OCT, 1),
+        2018: (SEP, 21),
+        2019: (SEP, 10),
+        2020: (AUG, 30),
+        2021: (AUG, 19),
+    }
+
+    EID_AL_ADHA_DATES = {
+        2014: (OCT, 5),
+        2015: (SEP, 23),
+        2016: (SEP, 13),
+        2017: (SEP, 2),
+        2018: (AUG, 22),
+        2019: (AUG, 11),
+        2020: (JUL, 31),
+        2021: (JUL, 20),
+        2022: (JUL, 9),
+        2023: (JUN, 28),
+        2024: (JUN, 17),
+    }
+
+    EID_AL_FITR_DATES = {
+        2014: (JUL, 29),
+        2015: (JUL, 18),
+        2016: (JUL, 7),
+        2017: (JUN, 26),
+        2018: (JUN, 15),
+        2019: (JUN, 4),
+        2020: (MAY, 24),
+        2021: (MAY, 13),
+        2022: (MAY, 1),
+        2023: (APR, 22),
+        2024: (APR, 10),
+    }
+
+    MAWLID_DATES = {
+        2014: (JAN, 14),
+        2015: ((JAN, 3), (DEC, 24)),
+        2016: (DEC, 12),
+        2017: (DEC, 1),
+        2018: (NOV, 21),
+        2019: (NOV, 10),
+        2020: (OCT, 29),
+        2021: (OCT, 19),
+        2022: (OCT, 8),
+        2023: (SEP, 27),
+        2024: (SEP, 16),
+    }
+
+    RAMADAN_BEGINNING_DATES = {
+        2014: (JUN, 29),
+        2015: (JUN, 18),
+        2016: (JUN, 7),
+        2017: (MAY, 27),
+        2018: (MAY, 16),
+        2019: (MAY, 6),
+        2020: (APR, 24),
+        2021: (APR, 13),
+        2022: (APR, 2),
+        2023: (MAR, 23),
+        2024: (MAR, 11),
+    }
diff --git a/holidays/countries/lithuania.py b/holidays/countries/lithuania.py
index 316940e8..222e0d21 100644
--- a/holidays/countries/lithuania.py
+++ b/holidays/countries/lithuania.py
@@ -67,10 +67,7 @@ class Lithuania(HolidayBase, ChristianHolidays, InternationalHolidays):
         if self._year >= 1991:
             self._add_holiday_jul_6(
                 # Statehood Day.
-                tr(
-                    "Valstybės (Lietuvos karaliaus Mindaugo karūnavimo) "
-                    "ir Tautiškos giesmės diena"
-                )
+                tr("Valstybės (Lietuvos karaliaus Mindaugo karūnavimo) ir Tautiškos giesmės diena")
             )
 
         # Assumption Day.
diff --git a/holidays/countries/thailand.py b/holidays/countries/thailand.py
index 53bd7dd1..f5dbb16d 100644
--- a/holidays/countries/thailand.py
+++ b/holidays/countries/thailand.py
@@ -556,8 +556,7 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
         if self._year >= 2019:
             # HM King Bhumibol Adulyadej the Great's Birthday Anniversary.
             name = tr(
-                "วันคล้ายวันเฉลิมพระชนมพรรษาพระบาทสมเด็จพระบรมชนกาธิเบศร "
-                "มหาภูมิพลอดุลยเดชมหาราช บรมนาถบพิตร"
+                "วันคล้ายวันเฉลิมพระชนมพรรษาพระบาทสมเด็จพระบรมชนกาธิเบศร มหาภูมิพลอดุลยเดชมหาราช บรมนาถบพิตร"
             )
         elif self._year >= 2016:
             # HM King Bhumibol Adulyadej Birthday Anniversary.
diff --git a/holidays/groups/persian.py b/holidays/groups/persian.py
index dccc07c1..c4a2cba2 100644
--- a/holidays/groups/persian.py
+++ b/holidays/groups/persian.py
@@ -36,6 +36,17 @@ class PersianCalendarHolidays:
             name, self._persian_calendar.persian_to_gregorian(self._year, 3, 14)
         )
 
+    def _add_islamic_emirat_victory_day(self, name: str) -> Optional[date]:
+        """
+        Add Islamic Emirate Victory Day (24th day of the 5th month).
+
+        Anniversary of the Taliban forces arrival in Kabul.
+        https://en.wikipedia.org/wiki/Fall_of_Kabul_(2021)
+        """
+        return self._add_persian_calendar_holiday(
+            name, self._persian_calendar.persian_to_gregorian(self._year, 5, 24)
+        )
+
     def _add_islamic_republic_day(self, name: str) -> Optional[date]:
         """
         Add Islamic Republic Day (12th day of the 1st month).
diff --git a/holidays/holiday_base.py b/holidays/holiday_base.py
index 2db65448..5a9a2eae 100644
--- a/holidays/holiday_base.py
+++ b/holidays/holiday_base.py
@@ -329,8 +329,7 @@ class HolidayBase(dict[date, str]):
             # Deprecated arguments.
             if prov_state := prov or state:
                 warnings.warn(
-                    "Arguments prov and state are deprecated, use "
-                    f"subdiv='{prov_state}' instead.",
+                    f"Arguments prov and state are deprecated, use subdiv='{prov_state}' instead.",
                     DeprecationWarning,
                 )
 
diff --git a/holidays/locale/en_US/LC_MESSAGES/AF.po b/holidays/locale/en_US/LC_MESSAGES/AF.po
index 71d0c01c..b51f4ea0 100644
--- a/holidays/locale/en_US/LC_MESSAGES/AF.po
+++ b/holidays/locale/en_US/LC_MESSAGES/AF.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.64\n"
+"Project-Id-Version: Holidays 0.65\n"
 "POT-Creation-Date: 2024-12-24 13:40+0530\n"
-"PO-Revision-Date: 2024-12-31 15:52+0700\n"
-"Last-Translator: Prateekshit Jaiswal <prateekshitjaiswal73@gmail.com>\n"
+"PO-Revision-Date: 2025-01-10 18:59+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
 "MIME-Version: 1.0\n"
@@ -63,16 +63,6 @@ msgstr "First Day of Ramadan"
 msgid "%s (برآورد شده)"
 msgstr "%s (estimated)"
 
-#. %s (observed).
-#, c-format
-msgid "%s (مشاهده شده)"
-msgstr "%s (observed)"
-
-#. %s (observed, estimated).
-#, c-format
-msgid "%s (مشاهده شده، برآورد شده)"
-msgstr "%s (observed, estimated)"
-
 #. Soviet Victory Day.
 msgid "روز پیروزی شوروی"
 msgstr "Soviet Victory Day"
@@ -93,6 +83,10 @@ msgstr "Eid al-Fitr"
 msgid "عید قربانی"
 msgstr "Eid al-Adha"
 
+#. Islamic Emirate Victory Day.
+msgid "روز پیروزی امارت اسلامی"
+msgstr "Islamic Emirate Victory Day"
+
 #. American Withdrawal Day.
 msgid "روز خروج آمریکایی ها"
 msgstr "American Withdrawal Day"
diff --git a/holidays/locale/fa_AF/LC_MESSAGES/AF.po b/holidays/locale/fa_AF/LC_MESSAGES/AF.po
index 05ac627d..8cfe2886 100644
--- a/holidays/locale/fa_AF/LC_MESSAGES/AF.po
+++ b/holidays/locale/fa_AF/LC_MESSAGES/AF.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.64\n"
+"Project-Id-Version: Holidays 0.65\n"
 "POT-Creation-Date: 2024-12-24 13:40+0530\n"
-"PO-Revision-Date: 2024-12-31 15:53+0700\n"
-"Last-Translator: Prateekshit Jaiswal <prateekshitjaiswal73@gmail.com>\n"
+"PO-Revision-Date: 2025-01-10 18:59+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: fa\n"
 "MIME-Version: 1.0\n"
@@ -63,16 +63,6 @@ msgstr ""
 msgid "%s (برآورد شده)"
 msgstr ""
 
-#. %s (observed).
-#, c-format
-msgid "%s (مشاهده شده)"
-msgstr ""
-
-#. %s (observed, estimated).
-#, c-format
-msgid "%s (مشاهده شده، برآورد شده)"
-msgstr ""
-
 #. Soviet Victory Day.
 msgid "روز پیروزی شوروی"
 msgstr ""
@@ -93,6 +83,10 @@ msgstr ""
 msgid "عید قربانی"
 msgstr ""
 
+#. Islamic Emirate Victory Day.
+msgid "روز پیروزی امارت اسلامی"
+msgstr ""
+
 #. American Withdrawal Day.
 msgid "روز خروج آمریکایی ها"
 msgstr ""
diff --git a/holidays/locale/ps_AF/LC_MESSAGES/AF.po b/holidays/locale/ps_AF/LC_MESSAGES/AF.po
index 66327dfe..cd441360 100644
--- a/holidays/locale/ps_AF/LC_MESSAGES/AF.po
+++ b/holidays/locale/ps_AF/LC_MESSAGES/AF.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.64\n"
+"Project-Id-Version: Holidays 0.65\n"
 "POT-Creation-Date: 2024-12-25 20:00+0530\n"
-"PO-Revision-Date: 2024-12-31 15:53+0700\n"
-"Last-Translator: Prateekshit Jaiswal <prateekshitjaiswal73@gmail.com>\n"
+"PO-Revision-Date: 2025-01-10 18:59+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: ps_AF\n"
 "MIME-Version: 1.0\n"
@@ -63,16 +63,6 @@ msgstr "د روژې لومړۍ نیټه"
 msgid "%s (برآورد شده)"
 msgstr "%s (اټکل)"
 
-#. %s (observed).
-#, c-format
-msgid "%s (مشاهده شده)"
-msgstr "%s (په دې وروستیو کې د افغانستان د کرکټ ملی)"
-
-#. %s (observed, estimated).
-#, c-format
-msgid "%s (مشاهده شده، برآورد شده)"
-msgstr "%s (مشاهده شده، تخمین زده شده است)"
-
 #. Soviet Victory Day.
 msgid "روز پیروزی شوروی"
 msgstr "د شوروی د بریالیتوب ورځ"
@@ -93,6 +83,10 @@ msgstr "عید فطر"
 msgid "عید قربانی"
 msgstr "عید قربانی"
 
+#. Islamic Emirate Victory Day.
+msgid "روز پیروزی امارت اسلامی"
+msgstr "د اسلامي امارت د بریا ورځ"
+
 #. American Withdrawal Day.
 msgid "روز خروج آمریکایی ها"
 msgstr "د امریکا د وتلو ورځ"
diff --git a/snapshots/countries/AF_COMMON.json b/snapshots/countries/AF_COMMON.json
index b36f6127..4b653683 100644
--- a/snapshots/countries/AF_COMMON.json
+++ b/snapshots/countries/AF_COMMON.json
@@ -12,7 +12,7 @@
     "1950-09-25": "Eid al-Adha (estimated)",
     "1950-10-22": "Ashura (estimated)",
     "1950-12-22": "Prophet's Birthday (estimated)",
-    "1951-03-21": "Nowruz",
+    "1951-03-22": "Nowruz",
     "1951-06-06": "First Day of Ramadan (estimated)",
     "1951-07-06": "Eid al-Fitr (estimated)",
     "1951-07-07": "Eid al-Fitr (estimated)",
@@ -59,7 +59,7 @@
     "1954-08-19": "Afghanistan Independence Day",
     "1954-09-08": "Ashura (estimated)",
     "1954-11-08": "Prophet's Birthday (estimated)",
-    "1955-03-21": "Nowruz",
+    "1955-03-22": "Nowruz",
     "1955-04-24": "First Day of Ramadan (estimated)",
     "1955-05-23": "Eid al-Fitr (estimated)",
     "1955-05-24": "Eid al-Fitr (estimated)",
@@ -107,7 +107,7 @@
     "1958-08-19": "Afghanistan Independence Day",
     "1958-09-26": "Prophet's Birthday (estimated)",
     "1959-03-11": "First Day of Ramadan (estimated)",
-    "1959-03-21": "Nowruz",
+    "1959-03-22": "Nowruz",
     "1959-04-10": "Eid al-Fitr (estimated)",
     "1959-04-11": "Eid al-Fitr (estimated)",
     "1959-04-12": "Eid al-Fitr (estimated)",
@@ -606,7 +606,7 @@
     "1996-02-19": "Eid al-Fitr (estimated)",
     "1996-02-20": "Eid al-Fitr (estimated)",
     "1996-02-21": "Eid al-Fitr (estimated)",
-    "1996-03-21": "Nowruz",
+    "1996-03-20": "Nowruz",
     "1996-04-26": "Day of Arafah (estimated)",
     "1996-04-27": "Eid al-Adha (estimated)",
     "1996-04-28": "Eid al-Adha (estimated); Mojahedin's Victory Day",
@@ -721,7 +721,7 @@
     "2004-02-03": "Eid al-Adha (estimated)",
     "2004-02-15": "Liberation Day",
     "2004-03-01": "Ashura (estimated)",
-    "2004-03-21": "Nowruz",
+    "2004-03-20": "Nowruz",
     "2004-04-28": "Mojahedin's Victory Day",
     "2004-05-01": "International Workers' Day; Prophet's Birthday (estimated)",
     "2004-08-19": "Afghanistan Independence Day",
@@ -780,8 +780,7 @@
     "2007-12-22": "Eid al-Adha (estimated)",
     "2008-01-19": "Ashura (estimated)",
     "2008-02-15": "Liberation Day",
-    "2008-03-20": "Prophet's Birthday (estimated)",
-    "2008-03-21": "Nowruz",
+    "2008-03-20": "Nowruz; Prophet's Birthday (estimated)",
     "2008-04-28": "Mojahedin's Victory Day",
     "2008-05-01": "International Workers' Day",
     "2008-08-19": "Afghanistan Independence Day",
@@ -840,7 +839,7 @@
     "2011-12-05": "Ashura (estimated)",
     "2012-02-04": "Prophet's Birthday (estimated)",
     "2012-02-15": "Liberation Day",
-    "2012-03-21": "Nowruz",
+    "2012-03-20": "Nowruz",
     "2012-04-28": "Mojahedin's Victory Day",
     "2012-05-01": "International Workers' Day",
     "2012-07-20": "First Day of Ramadan (estimated)",
@@ -869,178 +868,174 @@
     "2013-10-16": "Eid al-Adha (estimated)",
     "2013-10-17": "Eid al-Adha (estimated)",
     "2013-11-13": "Ashura (estimated)",
-    "2014-01-13": "Prophet's Birthday (estimated)",
+    "2014-01-14": "Prophet's Birthday",
     "2014-02-15": "Liberation Day",
     "2014-03-21": "Nowruz",
     "2014-04-28": "Mojahedin's Victory Day",
     "2014-05-01": "International Workers' Day",
-    "2014-06-28": "First Day of Ramadan (estimated)",
-    "2014-07-28": "Eid al-Fitr (estimated)",
-    "2014-07-29": "Eid al-Fitr (estimated)",
-    "2014-07-30": "Eid al-Fitr (estimated)",
+    "2014-06-29": "First Day of Ramadan",
+    "2014-07-29": "Eid al-Fitr",
+    "2014-07-30": "Eid al-Fitr",
+    "2014-07-31": "Eid al-Fitr",
     "2014-08-19": "Afghanistan Independence Day",
     "2014-09-09": "Martyrs' Day",
-    "2014-10-03": "Day of Arafah (estimated)",
-    "2014-10-04": "Eid al-Adha (estimated)",
-    "2014-10-05": "Eid al-Adha (estimated)",
-    "2014-10-06": "Eid al-Adha (estimated)",
-    "2014-11-03": "Ashura (estimated)",
-    "2015-01-03": "Prophet's Birthday (estimated)",
+    "2014-10-04": "Day of Arafah",
+    "2014-10-05": "Eid al-Adha",
+    "2014-10-06": "Eid al-Adha",
+    "2014-10-07": "Eid al-Adha",
+    "2014-11-03": "Ashura",
+    "2015-01-03": "Prophet's Birthday",
     "2015-02-15": "Liberation Day",
     "2015-03-21": "Nowruz",
     "2015-04-28": "Mojahedin's Victory Day",
     "2015-05-01": "International Workers' Day",
-    "2015-06-18": "First Day of Ramadan (estimated)",
-    "2015-07-17": "Eid al-Fitr (estimated)",
-    "2015-07-18": "Eid al-Fitr (estimated)",
-    "2015-07-19": "Eid al-Fitr (estimated)",
+    "2015-06-18": "First Day of Ramadan",
+    "2015-07-18": "Eid al-Fitr",
+    "2015-07-19": "Eid al-Fitr",
+    "2015-07-20": "Eid al-Fitr",
     "2015-08-19": "Afghanistan Independence Day",
     "2015-09-09": "Martyrs' Day",
-    "2015-09-22": "Day of Arafah (estimated)",
-    "2015-09-23": "Eid al-Adha (estimated)",
-    "2015-09-24": "Eid al-Adha (estimated)",
-    "2015-09-25": "Eid al-Adha (estimated)",
-    "2015-10-23": "Ashura (estimated)",
-    "2015-12-23": "Prophet's Birthday (estimated)",
+    "2015-09-22": "Day of Arafah",
+    "2015-09-23": "Eid al-Adha",
+    "2015-09-24": "Eid al-Adha",
+    "2015-09-25": "Eid al-Adha",
+    "2015-10-24": "Ashura",
+    "2015-12-24": "Prophet's Birthday",
     "2016-02-15": "Liberation Day",
-    "2016-03-21": "Nowruz",
+    "2016-03-20": "Nowruz",
     "2016-04-28": "Mojahedin's Victory Day",
     "2016-05-01": "International Workers' Day",
-    "2016-06-06": "First Day of Ramadan (estimated)",
-    "2016-07-06": "Eid al-Fitr (estimated)",
-    "2016-07-07": "Eid al-Fitr (estimated)",
-    "2016-07-08": "Eid al-Fitr (estimated)",
+    "2016-06-07": "First Day of Ramadan",
+    "2016-07-07": "Eid al-Fitr",
+    "2016-07-08": "Eid al-Fitr",
+    "2016-07-09": "Eid al-Fitr",
     "2016-08-19": "Afghanistan Independence Day",
     "2016-09-09": "Martyrs' Day",
-    "2016-09-10": "Day of Arafah (estimated)",
-    "2016-09-11": "Eid al-Adha (estimated)",
-    "2016-09-12": "Eid al-Adha (estimated)",
-    "2016-09-13": "Eid al-Adha (estimated)",
-    "2016-10-11": "Ashura (estimated)",
-    "2016-12-11": "Prophet's Birthday (estimated)",
+    "2016-09-12": "Day of Arafah",
+    "2016-09-13": "Eid al-Adha",
+    "2016-09-14": "Eid al-Adha",
+    "2016-09-15": "Eid al-Adha",
+    "2016-10-12": "Ashura",
+    "2016-12-12": "Prophet's Birthday",
     "2017-02-15": "Liberation Day",
     "2017-03-21": "Nowruz",
     "2017-04-28": "Mojahedin's Victory Day",
     "2017-05-01": "International Workers' Day",
-    "2017-05-27": "First Day of Ramadan (estimated)",
-    "2017-06-25": "Eid al-Fitr (estimated)",
-    "2017-06-26": "Eid al-Fitr (estimated)",
-    "2017-06-27": "Eid al-Fitr (estimated)",
+    "2017-05-27": "First Day of Ramadan",
+    "2017-06-26": "Eid al-Fitr",
+    "2017-06-27": "Eid al-Fitr",
+    "2017-06-28": "Eid al-Fitr",
     "2017-08-19": "Afghanistan Independence Day",
-    "2017-08-31": "Day of Arafah (estimated)",
-    "2017-09-01": "Eid al-Adha (estimated)",
-    "2017-09-02": "Eid al-Adha (estimated)",
-    "2017-09-03": "Eid al-Adha (estimated)",
+    "2017-09-01": "Day of Arafah",
+    "2017-09-02": "Eid al-Adha",
+    "2017-09-03": "Eid al-Adha",
+    "2017-09-04": "Eid al-Adha",
     "2017-09-09": "Martyrs' Day",
-    "2017-09-30": "Ashura (estimated)",
-    "2017-11-30": "Prophet's Birthday (estimated)",
+    "2017-10-01": "Ashura",
+    "2017-12-01": "Prophet's Birthday",
     "2018-02-15": "Liberation Day",
     "2018-03-21": "Nowruz",
     "2018-04-28": "Mojahedin's Victory Day",
     "2018-05-01": "International Workers' Day",
-    "2018-05-16": "First Day of Ramadan (estimated)",
-    "2018-06-15": "Eid al-Fitr (estimated)",
-    "2018-06-16": "Eid al-Fitr (estimated)",
-    "2018-06-17": "Eid al-Fitr (estimated)",
+    "2018-05-16": "First Day of Ramadan",
+    "2018-06-15": "Eid al-Fitr",
+    "2018-06-16": "Eid al-Fitr",
+    "2018-06-17": "Eid al-Fitr",
     "2018-08-19": "Afghanistan Independence Day",
-    "2018-08-20": "Day of Arafah (estimated)",
-    "2018-08-21": "Eid al-Adha (estimated)",
-    "2018-08-22": "Eid al-Adha (estimated)",
-    "2018-08-23": "Eid al-Adha (estimated)",
+    "2018-08-21": "Day of Arafah",
+    "2018-08-22": "Eid al-Adha",
+    "2018-08-23": "Eid al-Adha",
+    "2018-08-24": "Eid al-Adha",
     "2018-09-09": "Martyrs' Day",
-    "2018-09-20": "Ashura (estimated)",
-    "2018-11-20": "Prophet's Birthday (estimated)",
+    "2018-09-21": "Ashura",
+    "2018-11-21": "Prophet's Birthday",
     "2019-02-15": "Liberation Day",
     "2019-03-21": "Nowruz",
     "2019-04-28": "Mojahedin's Victory Day",
     "2019-05-01": "International Workers' Day",
-    "2019-05-06": "First Day of Ramadan (estimated)",
-    "2019-06-04": "Eid al-Fitr (estimated)",
-    "2019-06-05": "Eid al-Fitr (estimated)",
-    "2019-06-06": "Eid al-Fitr (estimated)",
-    "2019-08-10": "Day of Arafah (estimated)",
-    "2019-08-11": "Eid al-Adha (estimated)",
-    "2019-08-12": "Eid al-Adha (estimated)",
-    "2019-08-13": "Eid al-Adha (estimated)",
+    "2019-05-06": "First Day of Ramadan",
+    "2019-06-04": "Eid al-Fitr",
+    "2019-06-05": "Eid al-Fitr",
+    "2019-06-06": "Eid al-Fitr",
+    "2019-08-10": "Day of Arafah",
+    "2019-08-11": "Eid al-Adha",
+    "2019-08-12": "Eid al-Adha",
+    "2019-08-13": "Eid al-Adha",
     "2019-08-19": "Afghanistan Independence Day",
-    "2019-09-09": "Ashura (estimated); Martyrs' Day",
-    "2019-11-09": "Prophet's Birthday (estimated)",
+    "2019-09-09": "Martyrs' Day",
+    "2019-09-10": "Ashura",
+    "2019-11-10": "Prophet's Birthday",
     "2020-02-15": "Liberation Day",
-    "2020-03-21": "Nowruz",
-    "2020-04-24": "First Day of Ramadan (estimated)",
+    "2020-03-20": "Nowruz",
+    "2020-04-24": "First Day of Ramadan",
     "2020-04-28": "Mojahedin's Victory Day",
     "2020-05-01": "International Workers' Day",
-    "2020-05-24": "Eid al-Fitr (estimated)",
-    "2020-05-25": "Eid al-Fitr (estimated)",
-    "2020-05-26": "Eid al-Fitr (estimated)",
-    "2020-07-30": "Day of Arafah (estimated)",
-    "2020-07-31": "Eid al-Adha (estimated)",
-    "2020-08-01": "Eid al-Adha (estimated)",
-    "2020-08-02": "Eid al-Adha (estimated)",
+    "2020-05-24": "Eid al-Fitr",
+    "2020-05-25": "Eid al-Fitr",
+    "2020-05-26": "Eid al-Fitr",
+    "2020-07-30": "Day of Arafah",
+    "2020-07-31": "Eid al-Adha",
+    "2020-08-01": "Eid al-Adha",
+    "2020-08-02": "Eid al-Adha",
     "2020-08-19": "Afghanistan Independence Day",
-    "2020-08-29": "Ashura (estimated)",
+    "2020-08-30": "Ashura",
     "2020-09-09": "Martyrs' Day",
-    "2020-10-29": "Prophet's Birthday (estimated)",
+    "2020-10-29": "Prophet's Birthday",
     "2021-02-15": "Liberation Day",
-    "2021-04-13": "First Day of Ramadan (estimated)",
+    "2021-04-13": "First Day of Ramadan",
     "2021-04-28": "Mojahedin's Victory Day",
     "2021-05-01": "International Workers' Day",
-    "2021-05-13": "Eid al-Fitr (estimated)",
-    "2021-05-14": "Eid al-Fitr (estimated)",
-    "2021-05-15": "Eid al-Fitr (estimated)",
-    "2021-07-19": "Day of Arafah (estimated)",
-    "2021-07-20": "Eid al-Adha (estimated)",
-    "2021-07-21": "Eid al-Adha (estimated)",
-    "2021-07-22": "Eid al-Adha (estimated)",
-    "2021-08-18": "Ashura (estimated)",
-    "2021-08-19": "Afghanistan Independence Day",
-    "2021-09-09": "Martyrs' Day",
-    "2021-10-18": "Prophet's Birthday (estimated)",
+    "2021-05-13": "Eid al-Fitr",
+    "2021-05-14": "Eid al-Fitr",
+    "2021-05-15": "Eid al-Fitr",
+    "2021-07-19": "Day of Arafah",
+    "2021-07-20": "Eid al-Adha",
+    "2021-07-21": "Eid al-Adha",
+    "2021-07-22": "Eid al-Adha",
+    "2021-08-19": "Afghanistan Independence Day; Ashura",
+    "2021-10-19": "Prophet's Birthday",
     "2022-02-15": "Liberation Day",
-    "2022-04-02": "First Day of Ramadan (estimated)",
+    "2022-04-02": "First Day of Ramadan",
     "2022-04-28": "Mojahedin's Victory Day",
-    "2022-05-02": "Eid al-Fitr (estimated)",
-    "2022-05-03": "Eid al-Fitr (estimated)",
-    "2022-05-04": "Eid al-Fitr (estimated)",
-    "2022-07-08": "Day of Arafah (estimated)",
-    "2022-07-09": "Eid al-Adha (estimated)",
-    "2022-07-10": "Eid al-Adha (estimated)",
-    "2022-07-11": "Eid al-Adha (estimated)",
-    "2022-08-08": "Ashura (estimated)",
+    "2022-05-01": "Eid al-Fitr",
+    "2022-05-02": "Eid al-Fitr",
+    "2022-05-03": "Eid al-Fitr",
+    "2022-07-08": "Day of Arafah",
+    "2022-07-09": "Eid al-Adha",
+    "2022-07-10": "Eid al-Adha",
+    "2022-07-11": "Eid al-Adha",
+    "2022-08-15": "Islamic Emirate Victory Day",
     "2022-08-19": "Afghanistan Independence Day",
     "2022-08-31": "American Withdrawal Day",
-    "2022-09-09": "Martyrs' Day",
-    "2022-10-08": "Prophet's Birthday (estimated)",
+    "2022-10-08": "Prophet's Birthday",
     "2023-02-15": "Liberation Day",
-    "2023-03-23": "First Day of Ramadan (estimated)",
-    "2023-04-21": "Eid al-Fitr (estimated)",
-    "2023-04-22": "Eid al-Fitr (estimated)",
-    "2023-04-23": "Eid al-Fitr (estimated)",
+    "2023-03-23": "First Day of Ramadan",
+    "2023-04-22": "Eid al-Fitr",
+    "2023-04-23": "Eid al-Fitr",
+    "2023-04-24": "Eid al-Fitr",
     "2023-04-28": "Mojahedin's Victory Day",
-    "2023-06-27": "Day of Arafah (estimated)",
-    "2023-06-28": "Eid al-Adha (estimated)",
-    "2023-06-29": "Eid al-Adha (estimated)",
-    "2023-06-30": "Eid al-Adha (estimated)",
-    "2023-07-28": "Ashura (estimated)",
+    "2023-06-27": "Day of Arafah",
+    "2023-06-28": "Eid al-Adha",
+    "2023-06-29": "Eid al-Adha",
+    "2023-06-30": "Eid al-Adha",
+    "2023-08-15": "Islamic Emirate Victory Day",
     "2023-08-19": "Afghanistan Independence Day",
     "2023-08-31": "American Withdrawal Day",
-    "2023-09-09": "Martyrs' Day",
-    "2023-09-27": "Prophet's Birthday (estimated)",
+    "2023-09-27": "Prophet's Birthday",
     "2024-02-15": "Liberation Day",
-    "2024-03-11": "First Day of Ramadan (estimated)",
-    "2024-04-10": "Eid al-Fitr (estimated)",
-    "2024-04-11": "Eid al-Fitr (estimated)",
-    "2024-04-12": "Eid al-Fitr (estimated)",
+    "2024-03-11": "First Day of Ramadan",
+    "2024-04-10": "Eid al-Fitr",
+    "2024-04-11": "Eid al-Fitr",
+    "2024-04-12": "Eid al-Fitr",
     "2024-04-28": "Mojahedin's Victory Day",
-    "2024-06-15": "Day of Arafah (estimated)",
-    "2024-06-16": "Eid al-Adha (estimated)",
-    "2024-06-17": "Eid al-Adha (estimated)",
-    "2024-06-18": "Eid al-Adha (estimated)",
-    "2024-07-16": "Ashura (estimated)",
+    "2024-06-16": "Day of Arafah",
+    "2024-06-17": "Eid al-Adha",
+    "2024-06-18": "Eid al-Adha",
+    "2024-06-19": "Eid al-Adha",
+    "2024-08-14": "Islamic Emirate Victory Day",
     "2024-08-19": "Afghanistan Independence Day",
     "2024-08-31": "American Withdrawal Day",
-    "2024-09-09": "Martyrs' Day",
-    "2024-09-15": "Prophet's Birthday (estimated)",
+    "2024-09-16": "Prophet's Birthday",
     "2025-02-15": "Liberation Day",
     "2025-03-01": "First Day of Ramadan (estimated)",
     "2025-03-30": "Eid al-Fitr (estimated)",
@@ -1051,11 +1046,10 @@
     "2025-06-06": "Eid al-Adha (estimated)",
     "2025-06-07": "Eid al-Adha (estimated)",
     "2025-06-08": "Eid al-Adha (estimated)",
-    "2025-07-05": "Ashura (estimated)",
+    "2025-08-15": "Islamic Emirate Victory Day",
     "2025-08-19": "Afghanistan Independence Day",
     "2025-08-31": "American Withdrawal Day",
     "2025-09-04": "Prophet's Birthday (estimated)",
-    "2025-09-09": "Martyrs' Day",
     "2026-02-15": "Liberation Day",
     "2026-02-18": "First Day of Ramadan (estimated)",
     "2026-03-20": "Eid al-Fitr (estimated)",
@@ -1066,11 +1060,10 @@
     "2026-05-27": "Eid al-Adha (estimated)",
     "2026-05-28": "Eid al-Adha (estimated)",
     "2026-05-29": "Eid al-Adha (estimated)",
-    "2026-06-25": "Ashura (estimated)",
+    "2026-08-15": "Islamic Emirate Victory Day",
     "2026-08-19": "Afghanistan Independence Day",
     "2026-08-25": "Prophet's Birthday (estimated)",
     "2026-08-31": "American Withdrawal Day",
-    "2026-09-09": "Martyrs' Day",
     "2027-02-08": "First Day of Ramadan (estimated)",
     "2027-02-15": "Liberation Day",
     "2027-03-09": "Eid al-Fitr (estimated)",
@@ -1081,11 +1074,10 @@
     "2027-05-16": "Eid al-Adha (estimated)",
     "2027-05-17": "Eid al-Adha (estimated)",
     "2027-05-18": "Eid al-Adha (estimated)",
-    "2027-06-15": "Ashura (estimated)",
     "2027-08-14": "Prophet's Birthday (estimated)",
+    "2027-08-15": "Islamic Emirate Victory Day",
     "2027-08-19": "Afghanistan Independence Day",
     "2027-08-31": "American Withdrawal Day",
-    "2027-09-09": "Martyrs' Day",
     "2028-01-28": "First Day of Ramadan (estimated)",
     "2028-02-15": "Liberation Day",
     "2028-02-26": "Eid al-Fitr (estimated)",
@@ -1096,11 +1088,10 @@
     "2028-05-05": "Eid al-Adha (estimated)",
     "2028-05-06": "Eid al-Adha (estimated)",
     "2028-05-07": "Eid al-Adha (estimated)",
-    "2028-06-03": "Ashura (estimated)",
     "2028-08-03": "Prophet's Birthday (estimated)",
+    "2028-08-14": "Islamic Emirate Victory Day",
     "2028-08-19": "Afghanistan Independence Day",
     "2028-08-31": "American Withdrawal Day",
-    "2028-09-09": "Martyrs' Day",
     "2029-01-16": "First Day of Ramadan (estimated)",
     "2029-02-14": "Eid al-Fitr (estimated)",
     "2029-02-15": "Eid al-Fitr (estimated); Liberation Day",
@@ -1110,11 +1101,10 @@
     "2029-04-25": "Eid al-Adha (estimated)",
     "2029-04-26": "Eid al-Adha (estimated)",
     "2029-04-28": "Mojahedin's Victory Day",
-    "2029-05-23": "Ashura (estimated)",
     "2029-07-24": "Prophet's Birthday (estimated)",
+    "2029-08-14": "Islamic Emirate Victory Day",
     "2029-08-19": "Afghanistan Independence Day",
     "2029-08-31": "American Withdrawal Day",
-    "2029-09-09": "Martyrs' Day",
     "2030-01-05": "First Day of Ramadan (estimated)",
     "2030-02-04": "Eid al-Fitr (estimated)",
     "2030-02-05": "Eid al-Fitr (estimated)",
@@ -1125,11 +1115,10 @@
     "2030-04-14": "Eid al-Adha (estimated)",
     "2030-04-15": "Eid al-Adha (estimated)",
     "2030-04-28": "Mojahedin's Victory Day",
-    "2030-05-12": "Ashura (estimated)",
     "2030-07-13": "Prophet's Birthday (estimated)",
+    "2030-08-15": "Islamic Emirate Victory Day",
     "2030-08-19": "Afghanistan Independence Day",
     "2030-08-31": "American Withdrawal Day",
-    "2030-09-09": "Martyrs' Day",
     "2030-12-26": "First Day of Ramadan (estimated)",
     "2031-01-24": "Eid al-Fitr (estimated)",
     "2031-01-25": "Eid al-Fitr (estimated)",
@@ -1140,11 +1129,10 @@
     "2031-04-03": "Eid al-Adha (estimated)",
     "2031-04-04": "Eid al-Adha (estimated)",
     "2031-04-28": "Mojahedin's Victory Day",
-    "2031-05-02": "Ashura (estimated)",
     "2031-07-02": "Prophet's Birthday (estimated)",
+    "2031-08-15": "Islamic Emirate Victory Day",
     "2031-08-19": "Afghanistan Independence Day",
     "2031-08-31": "American Withdrawal Day",
-    "2031-09-09": "Martyrs' Day",
     "2031-12-15": "First Day of Ramadan (estimated)",
     "2032-01-14": "Eid al-Fitr (estimated)",
     "2032-01-15": "Eid al-Fitr (estimated)",
@@ -1154,12 +1142,11 @@
     "2032-03-22": "Eid al-Adha (estimated)",
     "2032-03-23": "Eid al-Adha (estimated)",
     "2032-03-24": "Eid al-Adha (estimated)",
-    "2032-04-20": "Ashura (estimated)",
     "2032-04-28": "Mojahedin's Victory Day",
     "2032-06-20": "Prophet's Birthday (estimated)",
+    "2032-08-14": "Islamic Emirate Victory Day",
     "2032-08-19": "Afghanistan Independence Day",
     "2032-08-31": "American Withdrawal Day",
-    "2032-09-09": "Martyrs' Day",
     "2032-12-04": "First Day of Ramadan (estimated)",
     "2033-01-02": "Eid al-Fitr (estimated)",
     "2033-01-03": "Eid al-Fitr (estimated)",
@@ -1169,12 +1156,11 @@
     "2033-03-11": "Eid al-Adha (estimated)",
     "2033-03-12": "Eid al-Adha (estimated)",
     "2033-03-13": "Eid al-Adha (estimated)",
-    "2033-04-10": "Ashura (estimated)",
     "2033-04-28": "Mojahedin's Victory Day",
     "2033-06-09": "Prophet's Birthday (estimated)",
+    "2033-08-14": "Islamic Emirate Victory Day",
     "2033-08-19": "Afghanistan Independence Day",
     "2033-08-31": "American Withdrawal Day",
-    "2033-09-09": "Martyrs' Day",
     "2033-11-23": "First Day of Ramadan (estimated)",
     "2033-12-23": "Eid al-Fitr (estimated)",
     "2033-12-24": "Eid al-Fitr (estimated)",
@@ -1184,12 +1170,11 @@
     "2034-03-01": "Eid al-Adha (estimated)",
     "2034-03-02": "Eid al-Adha (estimated)",
     "2034-03-03": "Eid al-Adha (estimated)",
-    "2034-03-30": "Ashura (estimated)",
     "2034-04-28": "Mojahedin's Victory Day",
     "2034-05-30": "Prophet's Birthday (estimated)",
+    "2034-08-15": "Islamic Emirate Victory Day",
     "2034-08-19": "Afghanistan Independence Day",
     "2034-08-31": "American Withdrawal Day",
-    "2034-09-09": "Martyrs' Day",
     "2034-11-12": "First Day of Ramadan (estimated)",
     "2034-12-12": "Eid al-Fitr (estimated)",
     "2034-12-13": "Eid al-Fitr (estimated)",
@@ -1199,12 +1184,11 @@
     "2035-02-18": "Eid al-Adha (estimated)",
     "2035-02-19": "Eid al-Adha (estimated)",
     "2035-02-20": "Eid al-Adha (estimated)",
-    "2035-03-20": "Ashura (estimated)",
     "2035-04-28": "Mojahedin's Victory Day",
     "2035-05-20": "Prophet's Birthday (estimated)",
+    "2035-08-15": "Islamic Emirate Victory Day",
     "2035-08-19": "Afghanistan Independence Day",
     "2035-08-31": "American Withdrawal Day",
-    "2035-09-09": "Martyrs' Day",
     "2035-11-01": "First Day of Ramadan (estimated)",
     "2035-12-01": "Eid al-Fitr (estimated)",
     "2035-12-02": "Eid al-Fitr (estimated)",
@@ -1214,12 +1198,11 @@
     "2036-02-08": "Eid al-Adha (estimated)",
     "2036-02-09": "Eid al-Adha (estimated)",
     "2036-02-15": "Liberation Day",
-    "2036-03-08": "Ashura (estimated)",
     "2036-04-28": "Mojahedin's Victory Day",
     "2036-05-08": "Prophet's Birthday (estimated)",
+    "2036-08-14": "Islamic Emirate Victory Day",
     "2036-08-19": "Afghanistan Independence Day",
     "2036-08-31": "American Withdrawal Day",
-    "2036-09-09": "Martyrs' Day",
     "2036-10-20": "First Day of Ramadan (estimated)",
     "2036-11-19": "Eid al-Fitr (estimated)",
     "2036-11-20": "Eid al-Fitr (estimated)",
@@ -1229,11 +1212,10 @@
     "2037-01-27": "Eid al-Adha (estimated)",
     "2037-01-28": "Eid al-Adha (estimated)",
     "2037-02-15": "Liberation Day",
-    "2037-02-25": "Ashura (estimated)",
     "2037-04-28": "Mojahedin's Victory Day; Prophet's Birthday (estimated)",
+    "2037-08-14": "Islamic Emirate Victory Day",
     "2037-08-19": "Afghanistan Independence Day",
     "2037-08-31": "American Withdrawal Day",
-    "2037-09-09": "Martyrs' Day",
     "2037-10-10": "First Day of Ramadan (estimated)",
     "2037-11-08": "Eid al-Fitr (estimated)",
     "2037-11-09": "Eid al-Fitr (estimated)",
@@ -1242,13 +1224,12 @@
     "2038-01-16": "Eid al-Adha (estimated)",
     "2038-01-17": "Eid al-Adha (estimated)",
     "2038-01-18": "Eid al-Adha (estimated)",
-    "2038-02-14": "Ashura (estimated)",
     "2038-02-15": "Liberation Day",
     "2038-04-17": "Prophet's Birthday (estimated)",
     "2038-04-28": "Mojahedin's Victory Day",
+    "2038-08-15": "Islamic Emirate Victory Day",
     "2038-08-19": "Afghanistan Independence Day",
     "2038-08-31": "American Withdrawal Day",
-    "2038-09-09": "Martyrs' Day",
     "2038-09-30": "First Day of Ramadan (estimated)",
     "2038-10-29": "Eid al-Fitr (estimated)",
     "2038-10-30": "Eid al-Fitr (estimated)",
@@ -1257,13 +1238,12 @@
     "2039-01-05": "Eid al-Adha (estimated)",
     "2039-01-06": "Eid al-Adha (estimated)",
     "2039-01-07": "Eid al-Adha (estimated)",
-    "2039-02-04": "Ashura (estimated)",
     "2039-02-15": "Liberation Day",
     "2039-04-06": "Prophet's Birthday (estimated)",
     "2039-04-28": "Mojahedin's Victory Day",
+    "2039-08-15": "Islamic Emirate Victory Day",
     "2039-08-19": "Afghanistan Independence Day",
     "2039-08-31": "American Withdrawal Day",
-    "2039-09-09": "Martyrs' Day",
     "2039-09-19": "First Day of Ramadan (estimated)",
     "2039-10-19": "Eid al-Fitr (estimated)",
     "2039-10-20": "Eid al-Fitr (estimated)",
@@ -1272,14 +1252,13 @@
     "2039-12-26": "Eid al-Adha (estimated)",
     "2039-12-27": "Eid al-Adha (estimated)",
     "2039-12-28": "Eid al-Adha (estimated)",
-    "2040-01-24": "Ashura (estimated)",
     "2040-02-15": "Liberation Day",
     "2040-03-25": "Prophet's Birthday (estimated)",
     "2040-04-28": "Mojahedin's Victory Day",
+    "2040-08-14": "Islamic Emirate Victory Day",
     "2040-08-19": "Afghanistan Independence Day",
     "2040-08-31": "American Withdrawal Day",
     "2040-09-07": "First Day of Ramadan (estimated)",
-    "2040-09-09": "Martyrs' Day",
     "2040-10-07": "Eid al-Fitr (estimated)",
     "2040-10-08": "Eid al-Fitr (estimated)",
     "2040-10-09": "Eid al-Fitr (estimated)",
@@ -1287,14 +1266,13 @@
     "2040-12-14": "Eid al-Adha (estimated)",
     "2040-12-15": "Eid al-Adha (estimated)",
     "2040-12-16": "Eid al-Adha (estimated)",
-    "2041-01-13": "Ashura (estimated)",
     "2041-02-15": "Liberation Day",
     "2041-03-15": "Prophet's Birthday (estimated)",
     "2041-04-28": "Mojahedin's Victory Day",
+    "2041-08-14": "Islamic Emirate Victory Day",
     "2041-08-19": "Afghanistan Independence Day",
     "2041-08-28": "First Day of Ramadan (estimated)",
     "2041-08-31": "American Withdrawal Day",
-    "2041-09-09": "Martyrs' Day",
     "2041-09-26": "Eid al-Fitr (estimated)",
     "2041-09-27": "Eid al-Fitr (estimated)",
     "2041-09-28": "Eid al-Fitr (estimated)",
@@ -1302,14 +1280,13 @@
     "2041-12-04": "Eid al-Adha (estimated)",
     "2041-12-05": "Eid al-Adha (estimated)",
     "2041-12-06": "Eid al-Adha (estimated)",
-    "2042-01-02": "Ashura (estimated)",
     "2042-02-15": "Liberation Day",
     "2042-03-04": "Prophet's Birthday (estimated)",
     "2042-04-28": "Mojahedin's Victory Day",
+    "2042-08-15": "Islamic Emirate Victory Day",
     "2042-08-17": "First Day of Ramadan (estimated)",
     "2042-08-19": "Afghanistan Independence Day",
     "2042-08-31": "American Withdrawal Day",
-    "2042-09-09": "Martyrs' Day",
     "2042-09-15": "Eid al-Fitr (estimated)",
     "2042-09-16": "Eid al-Fitr (estimated)",
     "2042-09-17": "Eid al-Fitr (estimated)",
@@ -1317,52 +1294,47 @@
     "2042-11-23": "Eid al-Adha (estimated)",
     "2042-11-24": "Eid al-Adha (estimated)",
     "2042-11-25": "Eid al-Adha (estimated)",
-    "2042-12-23": "Ashura (estimated)",
     "2043-02-15": "Liberation Day",
     "2043-02-22": "Prophet's Birthday (estimated)",
     "2043-04-28": "Mojahedin's Victory Day",
     "2043-08-06": "First Day of Ramadan (estimated)",
+    "2043-08-15": "Islamic Emirate Victory Day",
     "2043-08-19": "Afghanistan Independence Day",
     "2043-08-31": "American Withdrawal Day",
     "2043-09-04": "Eid al-Fitr (estimated)",
     "2043-09-05": "Eid al-Fitr (estimated)",
     "2043-09-06": "Eid al-Fitr (estimated)",
-    "2043-09-09": "Martyrs' Day",
     "2043-11-11": "Day of Arafah (estimated)",
     "2043-11-12": "Eid al-Adha (estimated)",
     "2043-11-13": "Eid al-Adha (estimated)",
     "2043-11-14": "Eid al-Adha (estimated)",
-    "2043-12-12": "Ashura (estimated)",
     "2044-02-11": "Prophet's Birthday (estimated)",
     "2044-02-15": "Liberation Day",
     "2044-04-28": "Mojahedin's Victory Day",
     "2044-07-26": "First Day of Ramadan (estimated)",
+    "2044-08-14": "Islamic Emirate Victory Day",
     "2044-08-19": "Afghanistan Independence Day",
     "2044-08-24": "Eid al-Fitr (estimated)",
     "2044-08-25": "Eid al-Fitr (estimated)",
     "2044-08-26": "Eid al-Fitr (estimated)",
     "2044-08-31": "American Withdrawal Day",
-    "2044-09-09": "Martyrs' Day",
     "2044-10-30": "Day of Arafah (estimated)",
     "2044-10-31": "Eid al-Adha (estimated)",
     "2044-11-01": "Eid al-Adha (estimated)",
     "2044-11-02": "Eid al-Adha (estimated)",
-    "2044-11-30": "Ashura (estimated)",
     "2045-01-30": "Prophet's Birthday (estimated)",
     "2045-02-15": "Liberation Day",
     "2045-04-28": "Mojahedin's Victory Day",
     "2045-07-15": "First Day of Ramadan (estimated)",
-    "2045-08-14": "Eid al-Fitr (estimated)",
+    "2045-08-14": "Eid al-Fitr (estimated); Islamic Emirate Victory Day",
     "2045-08-15": "Eid al-Fitr (estimated)",
     "2045-08-16": "Eid al-Fitr (estimated)",
     "2045-08-19": "Afghanistan Independence Day",
     "2045-08-31": "American Withdrawal Day",
-    "2045-09-09": "Martyrs' Day",
     "2045-10-20": "Day of Arafah (estimated)",
     "2045-10-21": "Eid al-Adha (estimated)",
     "2045-10-22": "Eid al-Adha (estimated)",
     "2045-10-23": "Eid al-Adha (estimated)",
-    "2045-11-19": "Ashura (estimated)",
     "2046-01-19": "Prophet's Birthday (estimated)",
     "2046-02-15": "Liberation Day",
     "2046-04-28": "Mojahedin's Victory Day",
@@ -1370,14 +1342,13 @@
     "2046-08-03": "Eid al-Fitr (estimated)",
     "2046-08-04": "Eid al-Fitr (estimated)",
     "2046-08-05": "Eid al-Fitr (estimated)",
+    "2046-08-15": "Islamic Emirate Victory Day",
     "2046-08-19": "Afghanistan Independence Day",
     "2046-08-31": "American Withdrawal Day",
-    "2046-09-09": "Martyrs' Day",
     "2046-10-09": "Day of Arafah (estimated)",
     "2046-10-10": "Eid al-Adha (estimated)",
     "2046-10-11": "Eid al-Adha (estimated)",
     "2046-10-12": "Eid al-Adha (estimated)",
-    "2046-11-09": "Ashura (estimated)",
     "2047-01-08": "Prophet's Birthday (estimated)",
     "2047-02-15": "Liberation Day",
     "2047-04-28": "Mojahedin's Victory Day",
@@ -1385,14 +1356,13 @@
     "2047-07-24": "Eid al-Fitr (estimated)",
     "2047-07-25": "Eid al-Fitr (estimated)",
     "2047-07-26": "Eid al-Fitr (estimated)",
+    "2047-08-15": "Islamic Emirate Victory Day",
     "2047-08-19": "Afghanistan Independence Day",
     "2047-08-31": "American Withdrawal Day",
-    "2047-09-09": "Martyrs' Day",
     "2047-09-29": "Day of Arafah (estimated)",
     "2047-09-30": "Eid al-Adha (estimated)",
     "2047-10-01": "Eid al-Adha (estimated)",
     "2047-10-02": "Eid al-Adha (estimated)",
-    "2047-10-29": "Ashura (estimated)",
     "2047-12-29": "Prophet's Birthday (estimated)",
     "2048-02-15": "Liberation Day",
     "2048-04-28": "Mojahedin's Victory Day",
@@ -1400,14 +1370,13 @@
     "2048-07-12": "Eid al-Fitr (estimated)",
     "2048-07-13": "Eid al-Fitr (estimated)",
     "2048-07-14": "Eid al-Fitr (estimated)",
+    "2048-08-14": "Islamic Emirate Victory Day",
     "2048-08-19": "Afghanistan Independence Day",
     "2048-08-31": "American Withdrawal Day",
-    "2048-09-09": "Martyrs' Day",
     "2048-09-18": "Day of Arafah (estimated)",
     "2048-09-19": "Eid al-Adha (estimated)",
     "2048-09-20": "Eid al-Adha (estimated)",
     "2048-09-21": "Eid al-Adha (estimated)",
-    "2048-10-18": "Ashura (estimated)",
     "2048-12-18": "Prophet's Birthday (estimated)",
     "2049-02-15": "Liberation Day",
     "2049-04-28": "Mojahedin's Victory Day",
@@ -1415,13 +1384,13 @@
     "2049-07-01": "Eid al-Fitr (estimated)",
     "2049-07-02": "Eid al-Fitr (estimated)",
     "2049-07-03": "Eid al-Fitr (estimated)",
+    "2049-08-14": "Islamic Emirate Victory Day",
     "2049-08-19": "Afghanistan Independence Day",
     "2049-08-31": "American Withdrawal Day",
     "2049-09-07": "Day of Arafah (estimated)",
     "2049-09-08": "Eid al-Adha (estimated)",
-    "2049-09-09": "Eid al-Adha (estimated); Martyrs' Day",
+    "2049-09-09": "Eid al-Adha (estimated)",
     "2049-09-10": "Eid al-Adha (estimated)",
-    "2049-10-07": "Ashura (estimated)",
     "2049-12-07": "Prophet's Birthday (estimated)",
     "2050-02-15": "Liberation Day",
     "2050-04-28": "Mojahedin's Victory Day",
@@ -1429,13 +1398,12 @@
     "2050-06-20": "Eid al-Fitr (estimated)",
     "2050-06-21": "Eid al-Fitr (estimated)",
     "2050-06-22": "Eid al-Fitr (estimated)",
+    "2050-08-15": "Islamic Emirate Victory Day",
     "2050-08-19": "Afghanistan Independence Day",
     "2050-08-27": "Day of Arafah (estimated)",
     "2050-08-28": "Eid al-Adha (estimated)",
     "2050-08-29": "Eid al-Adha (estimated)",
     "2050-08-30": "Eid al-Adha (estimated)",
     "2050-08-31": "American Withdrawal Day",
-    "2050-09-09": "Martyrs' Day",
-    "2050-09-26": "Ashura (estimated)",
     "2050-11-26": "Prophet's Birthday (estimated)"
 }


Test patch:
diff --git a/tests/countries/test_afghanistan.py b/tests/countries/test_afghanistan.py
index 01d67151..0ca501e6 100644
--- a/tests/countries/test_afghanistan.py
+++ b/tests/countries/test_afghanistan.py
@@ -29,26 +29,6 @@ class TestAfghanistan(CommonCountryTests, TestCase):
     def test_no_holidays(self):
         self.assertNoHolidays(Afghanistan(years=1918))
 
-    def test_2021(self):
-        self.assertHolidays(
-            Afghanistan(years=2021),
-            ("2021-02-15", "روز آزادی"),
-            ("2021-04-13", "اول رمضان (برآورد شده)"),
-            ("2021-04-28", "روز پیروزی مجاهدین"),
-            ("2021-05-01", "روز جهانی کارگر"),
-            ("2021-05-13", "عید فطر (برآورد شده)"),
-            ("2021-05-14", "عید فطر (برآورد شده)"),
-            ("2021-05-15", "عید فطر (برآورد شده)"),
-            ("2021-07-19", "روز عرفه (برآورد شده)"),
-            ("2021-07-20", "عید قربانی (برآورد شده)"),
-            ("2021-07-21", "عید قربانی (برآورد شده)"),
-            ("2021-07-22", "عید قربانی (برآورد شده)"),
-            ("2021-08-18", "عاشورا (برآورد شده)"),
-            ("2021-08-19", "روز استقلال افغانستان"),
-            ("2021-09-09", "روز شهیدان"),
-            ("2021-10-18", "میلاد پیامبر (برآورد شده)"),
-        )
-
     def test_liberation_day(self):
         name = "روز آزادی"
         self.assertHolidayName(name, (f"{year}-02-15" for year in range(1989, 2050)))
@@ -57,8 +37,19 @@ class TestAfghanistan(CommonCountryTests, TestCase):
     def test_nowruz(self):
         name = "نوروز"
         self.assertHolidayName(
-            name, (f"{year}-03-21" for year in (*range(1919, 1997), *range(2001, 2021)))
+            name,
+            "2011-03-21",
+            "2012-03-20",
+            "2013-03-21",
+            "2014-03-21",
+            "2015-03-21",
+            "2016-03-20",
+            "2017-03-21",
+            "2018-03-21",
+            "2019-03-21",
+            "2020-03-20",
         )
+        self.assertHolidayName(name, range(1919, 1997), range(2001, 2021))
         self.assertNoHolidayName(name, range(1997, 2001), range(2021, 2050))
 
     def test_victory_of_mujahideen_day(self):
@@ -78,6 +69,17 @@ class TestAfghanistan(CommonCountryTests, TestCase):
         self.assertHolidayName(name, (f"{year}-05-09" for year in range(1978, 1989)))
         self.assertNoHolidayName(name, range(1919, 1978), (1989, 2050))
 
+    def test_islamic_emirat_victory_day(self):
+        name = "روز پیروزی امارت اسلامی"
+        self.assertHolidayName(
+            name,
+            "2022-08-15",
+            "2023-08-15",
+            "2024-08-14",
+        )
+        self.assertHolidayName(name, range(2022, 2050))
+        self.assertNoHolidayName(name, range(1919, 2022))
+
     def test_american_withdrawal_day(self):
         name = "روز خروج آمریکایی ها"
         self.assertHolidayName(name, (f"{year}-08-31" for year in range(2022, 2050)))
@@ -89,64 +91,235 @@ class TestAfghanistan(CommonCountryTests, TestCase):
 
     def test_martyrs_day(self):
         name = "روز شهیدان"
-        self.assertHolidayName(name, (f"{year}-09-09" for year in range(2012, 2050)))
-        self.assertNoHolidayName(name, range(1919, 2012))
+        self.assertHolidayName(name, (f"{year}-09-09" for year in range(2012, 2021)))
+        self.assertNoHolidayName(name, range(1919, 2012), (2021, 2050))
+
+    def test_ashura(self):
+        name = "عاشورا"
+        self.assertHolidayName(
+            name,
+            "2014-11-03",
+            "2015-10-24",
+            "2016-10-12",
+            "2017-10-01",
+            "2018-09-21",
+            "2019-09-10",
+            "2020-08-30",
+            "2021-08-19",
+        )
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
+        self.assertEqual(set(range(1924, 2022)), years_found)
+
+    def test_prophets_birthday(self):
+        name = "میلاد پیامبر"
+        self.assertHolidayName(
+            name,
+            "2014-01-14",
+            "2015-01-03",
+            "2015-12-24",
+            "2016-12-12",
+            "2017-12-01",
+            "2018-11-21",
+            "2019-11-10",
+            "2020-10-29",
+            "2021-10-19",
+            "2022-10-08",
+            "2023-09-27",
+            "2024-09-16",
+        )
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
+        self.assertEqual(set(range(1924, 2050)), years_found)
+
+    def test_first_day_of_ramadan(self):
+        name = "اول رمضان"
+        self.assertHolidayName(
+            name,
+            "2014-06-29",
+            "2015-06-18",
+            "2016-06-07",
+            "2017-05-27",
+            "2018-05-16",
+            "2019-05-06",
+            "2020-04-24",
+            "2021-04-13",
+            "2022-04-02",
+            "2023-03-23",
+            "2024-03-11",
+        )
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
+        self.assertEqual(set(range(1925, 2050)), years_found)
+
+    def test_eid_al_fitr(self):
+        name = "عید فطر"
+        self.assertHolidayName(
+            name,
+            "2014-07-29",
+            "2014-07-30",
+            "2014-07-31",
+            "2015-07-18",
+            "2015-07-19",
+            "2015-07-20",
+            "2016-07-07",
+            "2016-07-08",
+            "2016-07-09",
+            "2017-06-26",
+            "2017-06-27",
+            "2017-06-28",
+            "2018-06-15",
+            "2018-06-16",
+            "2018-06-17",
+            "2019-06-04",
+            "2019-06-05",
+            "2019-06-06",
+            "2020-05-24",
+            "2020-05-25",
+            "2020-05-26",
+            "2021-05-13",
+            "2021-05-14",
+            "2021-05-15",
+            "2022-05-01",
+            "2022-05-02",
+            "2022-05-03",
+            "2023-04-22",
+            "2023-04-23",
+            "2023-04-24",
+            "2024-04-10",
+            "2024-04-11",
+            "2024-04-12",
+        )
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
+        self.assertEqual(set(range(1925, 2050)), years_found)
+
+    def test_arafah_day(self):
+        name = "روز عرفه"
+        self.assertHolidayName(
+            name,
+            "2014-10-04",
+            "2015-09-22",
+            "2016-09-12",
+            "2017-09-01",
+            "2018-08-21",
+            "2019-08-10",
+            "2020-07-30",
+            "2021-07-19",
+            "2022-07-08",
+            "2023-06-27",
+            "2024-06-16",
+        )
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
+        self.assertEqual(set(range(1925, 2050)), years_found)
+
+    def test_eid_al_adha(self):
+        name = "عید قربانی"
+        self.assertHolidayName(
+            name,
+            "2014-10-05",
+            "2014-10-06",
+            "2014-10-07",
+            "2015-09-23",
+            "2015-09-24",
+            "2015-09-25",
+            "2016-09-13",
+            "2016-09-14",
+            "2016-09-15",
+            "2017-09-02",
+            "2017-09-03",
+            "2017-09-04",
+            "2018-08-22",
+            "2018-08-23",
+            "2018-08-24",
+            "2019-08-11",
+            "2019-08-12",
+            "2019-08-13",
+            "2020-07-31",
+            "2020-08-01",
+            "2020-08-02",
+            "2021-07-20",
+            "2021-07-21",
+            "2021-07-22",
+            "2022-07-09",
+            "2022-07-10",
+            "2022-07-11",
+            "2023-06-28",
+            "2023-06-29",
+            "2023-06-30",
+            "2024-06-17",
+            "2024-06-18",
+            "2024-06-19",
+        )
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
+        self.assertEqual(set(range(1925, 2050)), years_found)
+
+    def test_2021(self):
+        self.assertHolidays(
+            Afghanistan(years=2021),
+            ("2021-02-15", "روز آزادی"),
+            ("2021-04-13", "اول رمضان"),
+            ("2021-04-28", "روز پیروزی مجاهدین"),
+            ("2021-05-01", "روز جهانی کارگر"),
+            ("2021-05-13", "عید فطر"),
+            ("2021-05-14", "عید فطر"),
+            ("2021-05-15", "عید فطر"),
+            ("2021-07-19", "روز عرفه"),
+            ("2021-07-20", "عید قربانی"),
+            ("2021-07-21", "عید قربانی"),
+            ("2021-07-22", "عید قربانی"),
+            ("2021-08-19", "روز استقلال افغانستان; عاشورا"),
+            ("2021-10-19", "میلاد پیامبر"),
+        )
 
     def test_l10_default(self):
         self.assertLocalizedHolidays(
             ("2022-02-15", "روز آزادی"),
-            ("2022-04-02", "اول رمضان (برآورد شده)"),
+            ("2022-04-02", "اول رمضان"),
             ("2022-04-28", "روز پیروزی مجاهدین"),
-            ("2022-05-02", "عید فطر (برآورد شده)"),
-            ("2022-05-03", "عید فطر (برآورد شده)"),
-            ("2022-05-04", "عید فطر (برآورد شده)"),
-            ("2022-07-08", "روز عرفه (برآورد شده)"),
-            ("2022-07-09", "عید قربانی (برآورد شده)"),
-            ("2022-07-10", "عید قربانی (برآورد شده)"),
-            ("2022-07-11", "عید قربانی (برآورد شده)"),
-            ("2022-08-08", "عاشورا (برآورد شده)"),
+            ("2022-05-01", "عید فطر"),
+            ("2022-05-02", "عید فطر"),
+            ("2022-05-03", "عید فطر"),
+            ("2022-07-08", "روز عرفه"),
+            ("2022-07-09", "عید قربانی"),
+            ("2022-07-10", "عید قربانی"),
+            ("2022-07-11", "عید قربانی"),
+            ("2022-08-15", "روز پیروزی امارت اسلامی"),
             ("2022-08-19", "روز استقلال افغانستان"),
             ("2022-08-31", "روز خروج آمریکایی ها"),
-            ("2022-09-09", "روز شهیدان"),
-            ("2022-10-08", "میلاد پیامبر (برآورد شده)"),
-        )
-
-    def test_l10n_ps_af(self):
-        self.assertLocalizedHolidays(
-            "ps_AF",
-            ("2022-02-15", "د ازادۍ ورځ"),
-            ("2022-04-02", "د روژې لومړۍ نیټه (اټکل)"),
-            ("2022-04-28", "مجاهدو د بریا ورځ"),
-            ("2022-05-02", "عید فطر (اټکل)"),
-            ("2022-05-03", "عید فطر (اټکل)"),
-            ("2022-05-04", "عید فطر (اټکل)"),
-            ("2022-07-08", "د عرفه ورځ (اټکل)"),
-            ("2022-07-09", "عید قربانی (اټکل)"),
-            ("2022-07-10", "عید قربانی (اټکل)"),
-            ("2022-07-11", "عید قربانی (اټکل)"),
-            ("2022-08-08", "عاشورا (اټکل)"),
-            ("2022-08-19", "د افغانستان د استقلال ورځ"),
-            ("2022-08-31", "د امریکا د وتلو ورځ"),
-            ("2022-09-09", "د شهیدانو ورځ"),
-            ("2022-10-08", "د پیغمبر الله صلی الله علیه وسلم د میلاد ورځ (اټکل)"),
+            ("2022-10-08", "میلاد پیامبر"),
         )
 
     def test_l10n_en_us(self):
         self.assertLocalizedHolidays(
             "en_US",
             ("2022-02-15", "Liberation Day"),
-            ("2022-04-02", "First Day of Ramadan (estimated)"),
+            ("2022-04-02", "First Day of Ramadan"),
             ("2022-04-28", "Mojahedin's Victory Day"),
-            ("2022-05-02", "Eid al-Fitr (estimated)"),
-            ("2022-05-03", "Eid al-Fitr (estimated)"),
-            ("2022-05-04", "Eid al-Fitr (estimated)"),
-            ("2022-07-08", "Day of Arafah (estimated)"),
-            ("2022-07-09", "Eid al-Adha (estimated)"),
-            ("2022-07-10", "Eid al-Adha (estimated)"),
-            ("2022-07-11", "Eid al-Adha (estimated)"),
-            ("2022-08-08", "Ashura (estimated)"),
+            ("2022-05-01", "Eid al-Fitr"),
+            ("2022-05-02", "Eid al-Fitr"),
+            ("2022-05-03", "Eid al-Fitr"),
+            ("2022-07-08", "Day of Arafah"),
+            ("2022-07-09", "Eid al-Adha"),
+            ("2022-07-10", "Eid al-Adha"),
+            ("2022-07-11", "Eid al-Adha"),
+            ("2022-08-15", "Islamic Emirate Victory Day"),
             ("2022-08-19", "Afghanistan Independence Day"),
             ("2022-08-31", "American Withdrawal Day"),
-            ("2022-09-09", "Martyrs' Day"),
-            ("2022-10-08", "Prophet's Birthday (estimated)"),
+            ("2022-10-08", "Prophet's Birthday"),
+        )
+
+    def test_l10n_ps_af(self):
+        self.assertLocalizedHolidays(
+            "ps_AF",
+            ("2022-02-15", "د ازادۍ ورځ"),
+            ("2022-04-02", "د روژې لومړۍ نیټه"),
+            ("2022-04-28", "مجاهدو د بریا ورځ"),
+            ("2022-05-01", "عید فطر"),
+            ("2022-05-02", "عید فطر"),
+            ("2022-05-03", "عید فطر"),
+            ("2022-07-08", "د عرفه ورځ"),
+            ("2022-07-09", "عید قربانی"),
+            ("2022-07-10", "عید قربانی"),
+            ("2022-07-11", "عید قربانی"),
+            ("2022-08-15", "د اسلامي امارت د بریا ورځ"),
+            ("2022-08-19", "د افغانستان د استقلال ورځ"),
+            ("2022-08-31", "د امریکا د وتلو ورځ"),
+            ("2022-10-08", "د پیغمبر الله صلی الله علیه وسلم د میلاد ورځ"),
         )
diff --git a/tests/countries/test_argentina.py b/tests/countries/test_argentina.py
index 8c874045..e4fc1a12 100644
--- a/tests/countries/test_argentina.py
+++ b/tests/countries/test_argentina.py
@@ -139,8 +139,7 @@ class TestArgentina(CommonCountryTests, TestCase):
 
     def test_sovereignty_over_malvinas_day(self):
         name = (
-            "Día de los Derechos Argentinos sobre las Islas Malvinas, "
-            "Sandwich y del Atlántico Sur"
+            "Día de los Derechos Argentinos sobre las Islas Malvinas, Sandwich y del Atlántico Sur"
         )
 
         self.assertNoHolidayName(name, 1982, range(2001, 2050))
diff --git a/tests/countries/test_germany.py b/tests/countries/test_germany.py
index 7fdcb6fa..fd417d5e 100644
--- a/tests/countries/test_germany.py
+++ b/tests/countries/test_germany.py
@@ -97,7 +97,7 @@ class TestDE(CommonCountryTests, TestCase):
         self.assertEqual(
             all_h,
             y_2015,
-            f"missing: {all_h - y_2015 or 'no'}," f" extra: {y_2015 - all_h or 'no'}",
+            f"missing: {all_h - y_2015 or 'no'}, extra: {y_2015 - all_h or 'no'}",
         )
 
     def test_fixed_holidays(self):
diff --git a/tests/countries/test_laos.py b/tests/countries/test_laos.py
index a9aaf45c..d0b47a37 100644
--- a/tests/countries/test_laos.py
+++ b/tests/countries/test_laos.py
@@ -380,10 +380,7 @@ class TestLaos(CommonCountryTests, TestCase):
             ("2022-06-01", "ວັນປູກຕົ້ນໄມ້ແຫ່ງຊາດ; ວັນເດັກສາກົນ"),
             (
                 "2022-07-13",
-                (
-                    "ວັນຄ້າຍວັນເກີດ ທ່ານ ປະທານ ສຸພານຸວົງ; ວັນບຸນເຂົ້າພັນສາ; "
-                    "ວັນປ່ອຍປາ ແລະ ວັນອະນຸລັກສັດນ້ຳ-ສັດປ່າແຫ່ງຊາດ"
-                ),
+                ("ວັນຄ້າຍວັນເກີດ ທ່ານ ປະທານ ສຸພານຸວົງ; ວັນບຸນເຂົ້າພັນສາ; ວັນປ່ອຍປາ ແລະ ວັນອະນຸລັກສັດນ້ຳ-ສັດປ່າແຫ່ງຊາດ"),
             ),
             ("2022-07-20", "ວັນສ້າງຕັ້ງສະຫະພັນແມ່ຍິງລາວ"),
             ("2022-08-13", "ວັນສື່ມວນຊົນແຫ່ງຊາດ ແລະ ວັນພິມຈໍາໜ່າຍ"),
@@ -466,10 +463,7 @@ class TestLaos(CommonCountryTests, TestCase):
             ("2022-06-01", "วันปลูกต้นไม้แห่งชาติ; วันเด็กสากล"),
             (
                 "2022-07-13",
-                (
-                    "วันคล้ายวันเกิดท่านประธานสุภานุวงศ์; วันอนุรักษ์สัตว์น้ำ สัตว์ป่า "
-                    "และวันปล่อยปลาแห่งชาติ; วันเข้าพรรษา"
-                ),
+                ("วันคล้ายวันเกิดท่านประธานสุภานุวงศ์; วันอนุรักษ์สัตว์น้ำ สัตว์ป่า และวันปล่อยปลาแห่งชาติ; วันเข้าพรรษา"),
             ),
             ("2022-07-20", "วันก่อตั้งสหภาพแม่หญิงลาว"),
             ("2022-08-13", "วันสื่อสารมวลชนและการพิมพ์แห่งชาติ"),
diff --git a/tests/countries/test_spain.py b/tests/countries/test_spain.py
index af33bc1c..22ace437 100644
--- a/tests/countries/test_spain.py
+++ b/tests/countries/test_spain.py
@@ -33,8 +33,7 @@ class TestSpain(CommonCountryTests, TestCase):
                 self.assertEqual(
                     dt in prov_holidays,
                     subdiv in hol_provs,
-                    f"Failed date `{dt:%Y-%m-%d}`, "
-                    f"province `{subdiv}`: {', '.join(hol_provs)}",
+                    f"Failed date `{dt:%Y-%m-%d}`, province `{subdiv}`: {', '.join(hol_provs)}",
                 )
 
     def test_country_aliases(self):