




import glob
import os

from get_test_info import get_tester_classes


if __name__ == "__main__":
	lowercase_			:       Union[str, Any]						       =				[]

	lowercase_			:       Tuple						       =				os.path.join('tests', 'models', '**', 'test_modeling_*.py')
	lowercase_			:       int						       =				glob.glob(pattern)
	# TODO: deal with TF/Flax too
	lowercase_			:       List[Any]						       =				[
	    x for x in test_files if not (x.startswith('test_modeling_tf_') or x.startswith('test_modeling_flax_'))
	]

	for test_file in test_files:
		lowercase_			:       Any						       =				get_tester_classes(test_file)
		for tester_class in tester_classes:
			# A few tester classes don't have `parent` parameter in `__init__`.
			# TODO: deal this better
			try:
				lowercase_			:       List[str]						       =				tester_class(parent=None)
			except Exception:
				continue
			if hasattr(tester, 'get_config'):
				lowercase_			:       Tuple						       =				tester.get_config()
				for k, v in config.to_dict().items():
					if isinstance(v, int):
						lowercase_			:       Dict						       =				None
						if k in ["vocab_size"]:
							lowercase_			:       Union[str, Any]						       =				1_00
						elif k in ["max_position_embeddings"]:
							lowercase_			:       List[Any]						       =				1_28
						elif k in ["hidden_size", "d_model"]:
							lowercase_			:       Dict						       =				40
						elif k == ["num_layers", "num_hidden_layers", "num_encoder_layers", "num_decoder_layers"]:
							lowercase_			:       Any						       =				5
						if target is not None and v > target:
							failures.append(
							    f"""{tester_class.__name__} will produce a `config` of type `{config.__class__.__name__}`"""
							    f""" with config[\"{k}\"] = {v} which is too large for testing! Set its value to be smaller"""
							    f""" than {target}."""
							)

	if len(failures) > 0:
		raise Exception(f"""There were {len(failures)} failures:\n""" + '\n'.join(failures))










def 							__SCREAMING_SNAKE_CASE						(    snake_case_ = 99_8001		):

						'''simple docstring'''


						for number in range(n - 1			,					9999			,					-1		):
												_UpperCAmelCase									=  str(snake_case_		)

												# checks whether 'str_number' is a palindrome.
												if str_number == str_number[::-1]:
																		_UpperCAmelCase									=  999

																		# if 'number' is a product of two 3-digit numbers
																		# then number is the answer otherwise fetch next number.
																		while divisor != 99:
																								if (number % divisor == 0) and (len(str(number // divisor		)		) == 3.0):
																														return number
																								divisor -= 1
						raise ValueError("That number is larger than our acceptable range."		)


if __name__ == "__main__":
				print(f"""{solution() = }""")




