



"""simple docstring"""
import math
from datetime import datetime, timedelta





def      __magic_name__				(							lowercase ):
   SCREAMING_SNAKE_CASE_: List[str]     			=year % 19
   SCREAMING_SNAKE_CASE_: List[Any]     			=year % 4
   SCREAMING_SNAKE_CASE_: List[str]     			=year % 7
   SCREAMING_SNAKE_CASE_: Dict     			=math.floor(year / 100 )
   SCREAMING_SNAKE_CASE_: str     			=math.floor((13 + 8 * leap_day_inhibits) / 25 )
   SCREAMING_SNAKE_CASE_: List[Any]     			=leap_day_inhibits / 4
   SCREAMING_SNAKE_CASE_: Optional[Any]     			=(
       15 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
   ) % 30
   SCREAMING_SNAKE_CASE_: Tuple     			=(4 + leap_day_inhibits - leap_day_reinstall_number) % 7

   # days to be added to March 21
   SCREAMING_SNAKE_CASE_: Dict     			=(19 * metonic_cycle + secular_moon_shift) % 30

   # PHM -> Paschal Full Moon
   SCREAMING_SNAKE_CASE_: Optional[Any]     			=(
       2 * julian_leap_year
       + 4 * non_leap_year
       + 6 * days_to_add
       + century_starting_point
   ) % 7

   if days_to_add == 29 and days_from_phm_to_sunday == 6:
      return datetime(__SCREAMING_SNAKE_CASE							,			4							,			19 )
   elif days_to_add == 28 and days_from_phm_to_sunday == 6:
      return datetime(__SCREAMING_SNAKE_CASE							,			4							,			18 )
   else:
      return datetime(__SCREAMING_SNAKE_CASE							,			3							,			22 ) + timedelta(
          days=int(days_to_add + days_from_phm_to_sunday ) )


if __name__ == "__main__":
   for year in (1_9_9_4, 2_0_0_0, 2_0_1_0, 2_0_2_1, 2_0_2_3):
      _UpperCAmelCase     :   Optional[int]     =			"""will be""" if year > datetime.now().year else """was"""
      print(f"""Easter in {year} {tense} {gauss_easter(year)}""")








"""simple docstring"""
import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
from sklearn.metrics import ConfusionMatrixDisplay
from sklearn.model_selection import train_test_split
from xgboost import XGBClassifier





def      __magic_name__				(							lowercase ):
   return (data["data"], data["target"])





def      __magic_name__				(							lowercase							,			lowercase ):
   SCREAMING_SNAKE_CASE_: Dict     			=XGBClassifier()
   classifier.fit(lowercase							,			lowercase )
   return classifier





def      __magic_name__				(							):
   SCREAMING_SNAKE_CASE_: Optional[Any]     			=load_iris()
   SCREAMING_SNAKE_CASE_			,		SCREAMING_SNAKE_CASE_: Tuple     			=data_handling(lowercase )
   SCREAMING_SNAKE_CASE_			,		SCREAMING_SNAKE_CASE_			,		SCREAMING_SNAKE_CASE_			,		SCREAMING_SNAKE_CASE_: List[Any]     			=train_test_split(
       lowercase							,			lowercase							,			test_size=0.25 )

   SCREAMING_SNAKE_CASE_: Tuple     			=iris["""target_names"""]

   # Create an XGBoost Classifier from the training data
   SCREAMING_SNAKE_CASE_: Optional[int]     			=xgboost(lowercase							,			lowercase )

   # Display the confusion matrix of the classifier with both training and test sets
   ConfusionMatrixDisplay.from_estimator(
       lowercase							,			lowercase							,			lowercase							,			display_labels=lowercase							,			cmap="""Blues"""							,			normalize="""true"""							,			)
   plt.title("""Normalized Confusion Matrix - IRIS Dataset""" )
   plt.show()


if __name__ == "__main__":
   import doctest

   doctest.testmod(verbose=True)
   main()



