# Path: holidays/utils.py
# def _islamic_to_gre(Gyear: int, Hmonth: int, Hday: int) -> List[date]:
#     """
#     Find the Gregorian dates of all instances of Islamic (Lunar Hijrī) calendar
#     month and day falling within the Gregorian year. There could be up to two
#     such instances in a single Gregorian year since the Islamic (Lunar Hijrī)
#     calendar is about 11 days shorter.
# 
#     Relies on package `hijri_converter
#     <https://www.pypy.org/package/hijri_converter>`__.
# 
#     :param Gyear:
#         The Gregorian year.
# 
#     :param Hmonth:
#         The Lunar Hijrī (Islamic) month.
# 
#     :param Hday:
#         The Lunar Hijrī (Islamic) day.
# 
#     :return:
#         List of Gregorian dates within the Gregorian year specified that
#         matches the Islamic (Lunar Hijrī) calendar day and month specified.
#     """
#     Hyear = convert.Gregorian(Gyear, 1, 1).to_hijri().datetuple()[0]
#     gres = [
#         convert.Hijri(y, Hmonth, Hday).to_gregorian()
#         for y in range(Hyear - 1, Hyear + 2)
#     ]
#     gre_dates = [date(*gre.datetuple()) for gre in gres if gre.year == Gyear]
#     return gre_dates


import unittest
import holidays
from itertools import product
from datetime import date
from dateutil.easter import easter
from dateutil.relativedelta import relativedelta as rd, TH, FR, MO
from holidays.utils import _islamic_to_gre
from copy import deepcopy
                        date(year, 3, 19) in prov_holidays,
                        prov in ["CM", "MD", "ML", "MC", "NC", "PV", "VC"],
                    )
                elif year == 2016:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays,
                        prov in ["ML", "MC", "PV", "VC"],
                    )
                elif year == 2017:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays, prov in ["PV"]
                    )
                elif 2018 <= year <= 2019:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays,
                        prov in ["GA", "MC", "NC", "PV", "VC"],
                    )
                elif year == 2020:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays,
                        prov in ["CM", "GA", "MC", "NC", "PV", "VC"],
                    )
                self.assertEqual(
                    date(year, 6, 24) in prov_holidays,
                    prov in ["CT", "GA", "VC"],
                )

                year_province_days = deepcopy(province_days)
                if prov in ["ML"]:
                    eid_al_fitr_current_year = _islamic_to_gre(year, 10, 1)[0]

# Path: holidays/utils.py
# def _islamic_to_gre(Gyear: int, Hmonth: int, Hday: int) -> List[date]:
#     """
#     Find the Gregorian dates of all instances of Islamic (Lunar Hijrī) calendar
#     month and day falling within the Gregorian year. There could be up to two
#     such instances in a single Gregorian year since the Islamic (Lunar Hijrī)
#     calendar is about 11 days shorter.
# 
#     Relies on package `hijri_converter
#     <https://www.pypy.org/package/hijri_converter>`__.
# 
#     :param Gyear:
#         The Gregorian year.
# 
#     :param Hmonth:
#         The Lunar Hijrī (Islamic) month.
# 
#     :param Hday:
#         The Lunar Hijrī (Islamic) day.
# 
#     :return:
#         List of Gregorian dates within the Gregorian year specified that
#         matches the Islamic (Lunar Hijrī) calendar day and month specified.
#     """
#     Hyear = convert.Gregorian(Gyear, 1, 1).to_hijri().datetuple()[0]
#     gres = [
#         convert.Hijri(y, Hmonth, Hday).to_gregorian()
#         for y in range(Hyear - 1, Hyear + 2)
#     ]
#     gre_dates = [date(*gre.datetuple()) for gre in gres if gre.year == Gyear]
#     return gre_dates


# Path: test/countries/test_spain.py
import unittest
import holidays
from itertools import product
from datetime import date
from dateutil.easter import easter
from dateutil.relativedelta import relativedelta as rd, TH, FR, MO
from holidays.utils import _islamic_to_gre
from copy import deepcopy

                        date(year, 3, 19) in prov_holidays,
                        prov in ["CM", "MD", "ML", "MC", "NC", "PV", "VC"],
                    )
                elif year == 2016:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays,
                        prov in ["ML", "MC", "PV", "VC"],
                    )
                elif year == 2017:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays, prov in ["PV"]
                    )
                elif 2018 <= year <= 2019:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays,
                        prov in ["GA", "MC", "NC", "PV", "VC"],
                    )
                elif year == 2020:
                    self.assertEqual(
                        date(year, 3, 19) in prov_holidays,
                        prov in ["CM", "GA", "MC", "NC", "PV", "VC"],
                    )
                self.assertEqual(
                    date(year, 6, 24) in prov_holidays,
                    prov in ["CT", "GA", "VC"],
                )

                year_province_days = deepcopy(province_days)
                if prov in ["ML"]:
                    eid_al_fitr_current_year = _islamic_to_gre(year, 10, 1)[0]

                    eid_al_adha_current_year = _islamic_to_gre(year, 12, 10)[0]