


from __future__ import annotations





def   _UpperCAmelCase       (     UpperCAmelCase      :			float						,	UpperCAmelCase      :			float						,	UpperCAmelCase      :			float      ):
      """simple docstring"""




      if days_between_payments <= 0:
            raise ValueError("""days_between_payments must be > 0"""      )
      if daily_interest_rate < 0:
            raise ValueError("""daily_interest_rate must be >= 0"""      )
      if principal <= 0:
            raise ValueError("""principal must be > 0"""      )
      return principal * daily_interest_rate * days_between_payments





def   _UpperCAmelCase       (     UpperCAmelCase      :			float						,	UpperCAmelCase      :			float						,	UpperCAmelCase      :			float						,	):
      """simple docstring"""




      if number_of_compounding_periods <= 0:
            raise ValueError("""number_of_compounding_periods must be > 0"""      )
      if nominal_annual_interest_rate_percentage < 0:
            raise ValueError("""nominal_annual_interest_rate_percentage must be >= 0"""      )
      if principal <= 0:
            raise ValueError("""principal must be > 0"""      )

      return principal * (
          (1 + nominal_annual_interest_rate_percentage) ** number_of_compounding_periods
          - 1
      )





def   _UpperCAmelCase       (     UpperCAmelCase      :			float						,	UpperCAmelCase      :			float						,	UpperCAmelCase      :			float						,	):
      """simple docstring"""




      if number_of_years <= 0:
            raise ValueError("""number_of_years must be > 0"""      )
      if nominal_annual_percentage_rate < 0:
            raise ValueError("""nominal_annual_percentage_rate must be >= 0"""      )
      if principal <= 0:
            raise ValueError("""principal must be > 0"""      )

      return compound_interest(
          UpperCAmelCase						,	nominal_annual_percentage_rate / 365						,	number_of_years * 365      )


if __name__ == "__main__":
    import doctest

    doctest.testmod()







def   _UpperCAmelCase       (     ):
      """simple docstring"""




      __lowerCamelCase     :      Optional[int]       						=						[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

      __lowerCamelCase     :      str       						=						6
      __lowerCamelCase     :      Optional[int]       						=						1
      __lowerCamelCase     :      Optional[int]       						=						1_901

      __lowerCamelCase     :      Optional[Any]       						=						0

      while year < 2_001:
            day += 7

            if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
                  if day > days_per_month[month - 1] and month != 2:
                        month += 1
                        __lowerCamelCase     :      Tuple       						=						day - days_per_month[month - 2]
                  elif day > 29 and month == 2:
                        month += 1
                        __lowerCamelCase     :      str       						=						day - 29
            else:
                  if day > days_per_month[month - 1]:
                        month += 1
                        __lowerCamelCase     :      Any       						=						day - days_per_month[month - 2]

            if month > 12:
                  year += 1
                  __lowerCamelCase     :      Optional[Any]       						=						1

            if year < 2_001 and day == 1:
                  sundays += 1
      return sundays


if __name__ == "__main__":
    print(solution())



