prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Regression in holidays in the Netherlands
  I noticed the change Update Netherlands holidays: add holiday categories #1552 broke my unit tests as it no longer considers Liberation day as a holiday on the 5yr interval even though it is a holiday for most people in the Netherlands every 5 years.
  
  On Liberation day (Bevrijdingsdag) the majority of employees have a day off every 5 years (2005, 2010, 2015, etc.). This was the previous behaviour which worked as expected.
  
  Now the 5-year rule of Liberation day is combined with Good Friday in the OPTIONAL category. This equates the status of Liberation day with Good Friday, but this is not logical. Good Fridays is more similar to Liberation Day on the non 5yr-years as those are still a bank holiday but fewer people have a guaranteed holiday than in the 5-yr years. There is no option to add the non-5yr holidays it seems.
  
  The behaviour I would expect is:
  - PUBLIC includes 5yr Liberation days
  - OPTIONAL includes Good Friday and the non-5yr liberation days
  
  </issue>
  <code>
  [start of holidays/countries/netherlands.py]
  1 #  python-holidays
  2 #  ---------------
  3 #  A fast, efficient Python library for generating country, province and state
  4 #  specific sets of holidays on the fly. It aims to make determining whether a
  5 #  specific date is a holiday as fast and flexible as possible.
  6 #
  7 #  Authors: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
  8 #           ryanss <ryanssdev@icloud.com> (c) 2014-2017
  9 #  Website: https://github.com/dr-prodigy/python-holidays
  10 #  License: MIT (see LICENSE file)
  11 
  12 from datetime import date
  13 from datetime import timedelta as td
  14 from gettext import gettext as tr
  15 
  16 from holidays.calendars.gregorian import APR, AUG
  17 from holidays.constants import OPTIONAL, PUBLIC
  18 from holidays.groups import ChristianHolidays, InternationalHolidays
  19 from holidays.holiday_base import HolidayBase
  20 
  21 
  22 class Netherlands(HolidayBase, ChristianHolidays, InternationalHolidays):
  23     """
  24     References:
  25 
  26     - https://en.wikipedia.org/wiki/Public_holidays_in_the_Netherlands
  27     - https://nl.wikipedia.org/wiki/Feestdagen_in_Nederland
  28     - http://www.iamsterdam.com/en/plan-your-trip/practical-info/public-holidays
  29     """
  30 
  31     country = "NL"
  32     default_language = "nl"
  33     supported_categories = (OPTIONAL, PUBLIC)
  34     supported_languages = ("en_US", "nl", "uk")
  35 
  36     def __init__(self, *args, **kwargs):
  37         ChristianHolidays.__init__(self)
  38         InternationalHolidays.__init__(self)
  39         super().__init__(*args, **kwargs)
  40 
  41     def _populate_public_holidays(self):
  42         # New Year's Day.
  43         self._add_new_years_day(tr("Nieuwjaarsdag"))
  44 
  45         # Easter Sunday.
  46         self._add_easter_sunday(tr("Eerste paasdag"))
  47 
  48         # Easter Monday.
  49         self._add_easter_monday(tr("Tweede paasdag"))
  50 
  51         # King's / Queen's day
  52         if self._year >= 1891:
  53             name = (
  54                 # King's Day.
  55                 tr("Koningsdag")
  56                 if self._year >= 2014
  57                 # Queen's Day.
  58                 else tr("Koninginnedag")
  59             )
  60             if self._year >= 2014:
  61                 dt = date(self._year, APR, 27)
  62             elif self._year >= 1949:
  63                 dt = date(self._year, APR, 30)
  64             else:
  65                 dt = date(self._year, AUG, 31)
  66             if self._is_sunday(dt):
  67                 dt += td(days=-1) if self._year >= 1980 else td(days=+1)
  68             self._add_holiday(name, dt)
  69 
  70         # Ascension Day.
  71         self._add_ascension_thursday(tr("Hemelvaartsdag"))
  72 
  73         # Whit Sunday.
  74         self._add_whit_sunday(tr("Eerste Pinksterdag"))
  75 
  76         # Whit Monday.
  77         self._add_whit_monday(tr("Tweede Pinksterdag"))
  78 
  79         # Christmas Day.
  80         self._add_christmas_day(tr("Eerste Kerstdag"))
  81 
  82         # Second Day of Christmas.
  83         self._add_christmas_day_two(tr("Tweede Kerstdag"))
  84 
  85     def _populate_optional_holidays(self):
  86         # Good Friday.
  87         self._add_good_friday(tr("Goede Vrijdag"))
  88 
  89         if (self._year >= 1945 and self._year % 5 == 0) or self._year >= 1990:
  90             # Liberation Day.
  91             self._add_holiday_may_5(tr("Bevrijdingsdag"))
  92 
  93 
  94 class NL(Netherlands):
  95     pass
  96 
  97 
  98 class NLD(Netherlands):
  99     pass
  100
  [end of holidays/countries/netherlands.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/holidays/countries/netherlands.py b/holidays/countries/netherlands.py
  --- a/holidays/countries/netherlands.py
  +++ b/holidays/countries/netherlands.py
  @@ -67,6 +67,10 @@
                   dt += td(days=-1) if self._year >= 1980 else td(days=+1)
               self._add_holiday(name, dt)
   
  +        if self._year >= 1950 and self._year % 5 == 0:
  +            # Liberation Day.
  +            self._add_holiday_may_5(tr("Bevrijdingsdag"))
  +
           # Ascension Day.
           self._add_ascension_thursday(tr("Hemelvaartsdag"))
   
  @@ -86,7 +90,7 @@
           # Good Friday.
           self._add_good_friday(tr("Goede Vrijdag"))
   
  -        if (self._year >= 1945 and self._year % 5 == 0) or self._year >= 1990:
  +        if self._year >= 1990:
               # Liberation Day.
               self._add_holiday_may_5(tr("Bevrijdingsdag"))
  
verification_info: {"golden_diff": "diff --git a/holidays/countries/netherlands.py b/holidays/countries/netherlands.py\n--- a/holidays/countries/netherlands.py\n+++ b/holidays/countries/netherlands.py\n@@ -67,6 +67,10 @@\n                 dt += td(days=-1) if self._year >= 1980 else td(days=+1)\n             self._add_holiday(name, dt)\n \n+        if self._year >= 1950 and self._year % 5 == 0:\n+            # Liberation Day.\n+            self._add_holiday_may_5(tr(\"Bevrijdingsdag\"))\n+\n         # Ascension Day.\n         self._add_ascension_thursday(tr(\"Hemelvaartsdag\"))\n \n@@ -86,7 +90,7 @@\n         # Good Friday.\n         self._add_good_friday(tr(\"Goede Vrijdag\"))\n \n-        if (self._year >= 1945 and self._year % 5 == 0) or self._year >= 1990:\n+        if self._year >= 1990:\n             # Liberation Day.\n             self._add_holiday_may_5(tr(\"Bevrijdingsdag\"))\n", "issue": "Regression in holidays in the Netherlands\nI noticed the change Update Netherlands holidays: add holiday categories #1552 broke my unit tests as it no longer considers Liberation day as a holiday on the 5yr interval even though it is a holiday for most people in the Netherlands every 5 years.\r\n\r\nOn Liberation day (Bevrijdingsdag) the majority of employees have a day off every 5 years (2005, 2010, 2015, etc.). This was the previous behaviour which worked as expected.\r\n\r\nNow the 5-year rule of Liberation day is combined with Good Friday in the OPTIONAL category. This equates the status of Liberation day with Good Friday, but this is not logical. Good Fridays is more similar to Liberation Day on the non 5yr-years as those are still a bank holiday but fewer people have a guaranteed holiday than in the 5-yr years. There is no option to add the non-5yr holidays it seems.\r\n\r\nThe behaviour I would expect is:\r\n- PUBLIC includes 5yr Liberation days\r\n- OPTIONAL includes Good Friday and the non-5yr liberation days\n", "before_files": [{"content": "#  python-holidays\n#  ---------------\n#  A fast, efficient Python library for generating country, province and state\n#  specific sets of holidays on the fly. It aims to make determining whether a\n#  specific date is a holiday as fast and flexible as possible.\n#\n#  Authors: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023\n#           ryanss <ryanssdev@icloud.com> (c) 2014-2017\n#  Website: https://github.com/dr-prodigy/python-holidays\n#  License: MIT (see LICENSE file)\n\nfrom datetime import date\nfrom datetime import timedelta as td\nfrom gettext import gettext as tr\n\nfrom holidays.calendars.gregorian import APR, AUG\nfrom holidays.constants import OPTIONAL, PUBLIC\nfrom holidays.groups import ChristianHolidays, InternationalHolidays\nfrom holidays.holiday_base import HolidayBase\n\n\nclass Netherlands(HolidayBase, ChristianHolidays, InternationalHolidays):\n    \"\"\"\n    References:\n\n    - https://en.wikipedia.org/wiki/Public_holidays_in_the_Netherlands\n    - https://nl.wikipedia.org/wiki/Feestdagen_in_Nederland\n    - http://www.iamsterdam.com/en/plan-your-trip/practical-info/public-holidays\n    \"\"\"\n\n    country = \"NL\"\n    default_language = \"nl\"\n    supported_categories = (OPTIONAL, PUBLIC)\n    supported_languages = (\"en_US\", \"nl\", \"uk\")\n\n    def __init__(self, *args, **kwargs):\n        ChristianHolidays.__init__(self)\n        InternationalHolidays.__init__(self)\n        super().__init__(*args, **kwargs)\n\n    def _populate_public_holidays(self):\n        # New Year's Day.\n        self._add_new_years_day(tr(\"Nieuwjaarsdag\"))\n\n        # Easter Sunday.\n        self._add_easter_sunday(tr(\"Eerste paasdag\"))\n\n        # Easter Monday.\n        self._add_easter_monday(tr(\"Tweede paasdag\"))\n\n        # King's / Queen's day\n        if self._year >= 1891:\n            name = (\n                # King's Day.\n                tr(\"Koningsdag\")\n                if self._year >= 2014\n                # Queen's Day.\n                else tr(\"Koninginnedag\")\n            )\n            if self._year >= 2014:\n                dt = date(self._year, APR, 27)\n            elif self._year >= 1949:\n                dt = date(self._year, APR, 30)\n            else:\n                dt = date(self._year, AUG, 31)\n            if self._is_sunday(dt):\n                dt += td(days=-1) if self._year >= 1980 else td(days=+1)\n            self._add_holiday(name, dt)\n\n        # Ascension Day.\n        self._add_ascension_thursday(tr(\"Hemelvaartsdag\"))\n\n        # Whit Sunday.\n        self._add_whit_sunday(tr(\"Eerste Pinksterdag\"))\n\n        # Whit Monday.\n        self._add_whit_monday(tr(\"Tweede Pinksterdag\"))\n\n        # Christmas Day.\n        self._add_christmas_day(tr(\"Eerste Kerstdag\"))\n\n        # Second Day of Christmas.\n        self._add_christmas_day_two(tr(\"Tweede Kerstdag\"))\n\n    def _populate_optional_holidays(self):\n        # Good Friday.\n        self._add_good_friday(tr(\"Goede Vrijdag\"))\n\n        if (self._year >= 1945 and self._year % 5 == 0) or self._year >= 1990:\n            # Liberation Day.\n            self._add_holiday_may_5(tr(\"Bevrijdingsdag\"))\n\n\nclass NL(Netherlands):\n    pass\n\n\nclass NLD(Netherlands):\n    pass\n", "path": "holidays/countries/netherlands.py"}]}