SCREAMING_SNAKE_CASE__		:       Optional[int]       						=       [4, 1, 7, 4, 2, 6, 4, 1, 5, 3, 7, 5]
SCREAMING_SNAKE_CASE__		:       List[Any]       						=       [3, 7, 7, 4, 2, 6, 4, 1, 5, 3, 7, 5]
SCREAMING_SNAKE_CASE__		:       List[str]       						=       {
    0: "Sunday",
    1: "Monday",
    2: "Tuesday",
    3: "Wednesday",
    4: "Thursday",
    5: "Friday",
    6: "Saturday",
}







def      _a					(   lowercase__	:      int  ,	lowercase__	:      int  ,	lowercase__	:      int			):







     '''simple docstring'''


     assert len(str(lowercase__			)			) > 2, "year should be in YYYY format"
     assert 1 <= month <= 12, "month should be between 1 to 12"
     assert 1 <= day <= 31, "day should be between 1 to 31"

     # Doomsday algorithm:
     SCREAMING_SNAKE_CASE__					:					List[Any]      =		year // 1_00
     SCREAMING_SNAKE_CASE__					:					str      =		(5 * (century % 4) + 2) % 7
     SCREAMING_SNAKE_CASE__					:					int      =		year % 1_00
     SCREAMING_SNAKE_CASE__					:					Union[str, Any]      =		centurian % 12
     SCREAMING_SNAKE_CASE__					:					Any      =		(
         (centurian // 12) + centurian_m + (centurian_m // 4) + century_anchor
     ) % 7
     SCREAMING_SNAKE_CASE__					:					Tuple      =		(
         DOOMSDAY_NOT_LEAP[month - 1]
         if (year % 4 != 0) or (centurian == 0 and (year % 4_00) == 0)
         else DOOMSDAY_LEAP[month - 1]
     )
     SCREAMING_SNAKE_CASE__					:					Any      =		(dooms_day + day - day_anchor) % 7
     return WEEK_DAY_NAMES[week_day]


if __name__ == "__main__":
      import doctest

      doctest.testmod()








from collections import Counter

import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split

_lowerCAmelCase	:   int    =   datasets.load_iris()

_lowerCAmelCase	:   Tuple    =   np.array(data["data"])
_lowerCAmelCase	:   Any    =   np.array(data["target"])
_lowerCAmelCase	:   Union[str, Any]    =   data["target_names"]

_lowerCAmelCase,		_lowerCAmelCase,		_lowerCAmelCase,		_lowerCAmelCase	:   Optional[Any]    =   train_test_split(X, y)







def     UpperCAmelCase_		(					snake_case__    ,			snake_case__					)	->     Tuple:



				"""simple docstring"""





				return np.linalg.norm(np.array(snake_case__					) - np.array(snake_case__					)					)







def     UpperCAmelCase_		(					snake_case__    ,			snake_case__    ,			snake_case__    ,			snake_case__    ,			snake_case__=5					)	->     Dict:



				"""simple docstring"""





				lowerCAmelCase__		  =  zip(snake_case__    ,			snake_case__					)
				# List of distances of all points from the point to be classified
				lowerCAmelCase__		  =  []
				for data_point in data:
								lowerCAmelCase__		  =  euclidean_distance(data_point[0]    ,			snake_case__					)
								distances.append((distance, data_point[1])					)
				# Choosing 'k' points with the least distances.
				lowerCAmelCase__		  =  [i[1] for i in sorted(snake_case__					)[:k]]
				# Most commonly occurring class among them
				# is the class into which the point is classified
				lowerCAmelCase__		  =  Counter(snake_case__					).most_common(1					)[0][0]
				return classes[result]


if __name__ == "__main__":
	print(classifier(X_train, y_train, classes, [4.4, 3.1, 1.3, 1.4]))
