





'''simple docstring'''




import unittest

from transformers import SPIECE_UNDERLINE, XLNetTokenizer, XLNetTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


__UpperCAmelCase            =       get_tests_dir("""fixtures/test_sentencepiece.model""")




@require_sentencepiece
@require_tokenizers
class      UpperCamelCase__					(					lowercase_						,					unittest.TestCase			):




					"""simple docstring"""
					SCREAMING_SNAKE_CASE__				=	XLNetTokenizer
					SCREAMING_SNAKE_CASE__				=	XLNetTokenizerFast
					SCREAMING_SNAKE_CASE__				=	True
					SCREAMING_SNAKE_CASE__				=	True


					def lowerCamelCase_			(						self				:			Any						):

							'''simple docstring'''



							super().setUp()

							# We have a SentencePiece fixture for testing
							SCREAMING_SNAKE_CASE :				Optional[Any]		=			XLNetTokenizer(lowerCamelCase_      ,						keep_accents=lowerCamelCase_						)
							tokenizer.sanitize_special_tokens()
							tokenizer.save_pretrained(self.tmpdirname						)


					def lowerCamelCase_			(						self				:			int						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				List[Any]		=			"""<s>"""
							SCREAMING_SNAKE_CASE :				List[str]		=			1

							self.assertEqual(self.get_tokenizer()._convert_token_to_id(lowerCamelCase_						)      ,						lowerCamelCase_						)
							self.assertEqual(self.get_tokenizer()._convert_id_to_token(lowerCamelCase_						)      ,						lowerCamelCase_						)


					def lowerCamelCase_			(						self				:			str						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				Tuple		=			list(self.get_tokenizer().get_vocab().keys()						)

							self.assertEqual(vocab_keys[0]      ,						"""<unk>"""						)
							self.assertEqual(vocab_keys[1]      ,						"""<s>"""						)
							self.assertEqual(vocab_keys[-1]      ,						"""<eod>"""						)
							self.assertEqual(len(lowerCamelCase_						)      ,						10_06						)


					def lowerCamelCase_			(						self				:			Optional[Any]						):

							'''simple docstring'''



							self.assertEqual(self.get_tokenizer().vocab_size      ,						10_00						)


					def lowerCamelCase_			(						self				:			Optional[Any]						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				str		=			XLNetTokenizer(lowerCamelCase_      ,						keep_accents=lowerCamelCase_						)

							SCREAMING_SNAKE_CASE :				Any		=			tokenizer.tokenize("""This is a test"""						)
							self.assertListEqual(lowerCamelCase_      ,						["""▁This""", """▁is""", """▁a""", """▁t""", """est"""]						)

							self.assertListEqual(tokenizer.convert_tokens_to_ids(lowerCamelCase_						)      ,						[2_85, 46, 10, 1_70, 3_82]						)

							SCREAMING_SNAKE_CASE :				List[str]		=			tokenizer.tokenize("""I was born in 92000, and this is falsé."""						)
							self.assertListEqual(
							    lowerCamelCase_      ,						[
							        SPIECE_UNDERLINE + """I""",
							        SPIECE_UNDERLINE + """was""",
							        SPIECE_UNDERLINE + """b""",
							        """or""",
							        """n""",
							        SPIECE_UNDERLINE + """in""",
							        SPIECE_UNDERLINE + """""",
							        """9""",
							        """2""",
							        """0""",
							        """0""",
							        """0""",
							        """,""",
							        SPIECE_UNDERLINE + """and""",
							        SPIECE_UNDERLINE + """this""",
							        SPIECE_UNDERLINE + """is""",
							        SPIECE_UNDERLINE + """f""",
							        """al""",
							        """s""",
							        """é""",
							        """.""",
							    ]      ,						)
							SCREAMING_SNAKE_CASE :				Optional[int]		=			tokenizer.convert_tokens_to_ids(lowerCamelCase_						)
							self.assertListEqual(lowerCamelCase_      ,						[8, 21, 84, 55, 24, 19, 7, 0, 6_02, 3_47, 3_47, 3_47, 3, 12, 66, 46, 72, 80, 6, 0, 4]						)

							SCREAMING_SNAKE_CASE :				int		=			tokenizer.convert_ids_to_tokens(lowerCamelCase_						)
							self.assertListEqual(
							    lowerCamelCase_      ,						[
							        SPIECE_UNDERLINE + """I""",
							        SPIECE_UNDERLINE + """was""",
							        SPIECE_UNDERLINE + """b""",
							        """or""",
							        """n""",
							        SPIECE_UNDERLINE + """in""",
							        SPIECE_UNDERLINE + """""",
							        """<unk>""",
							        """2""",
							        """0""",
							        """0""",
							        """0""",
							        """,""",
							        SPIECE_UNDERLINE + """and""",
							        SPIECE_UNDERLINE + """this""",
							        SPIECE_UNDERLINE + """is""",
							        SPIECE_UNDERLINE + """f""",
							        """al""",
							        """s""",
							        """<unk>""",
							        """.""",
							    ]      ,						)


					def lowerCamelCase_			(						self				:			str						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				Any		=			XLNetTokenizer(lowerCamelCase_      ,						do_lower_case=lowerCamelCase_						)
							SCREAMING_SNAKE_CASE :				List[Any]		=			tokenizer.tokenize("""I was born in 92000, and this is falsé."""						)
							self.assertListEqual(
							    lowerCamelCase_      ,						[
							        SPIECE_UNDERLINE + """""",
							        """i""",
							        SPIECE_UNDERLINE + """was""",
							        SPIECE_UNDERLINE + """b""",
							        """or""",
							        """n""",
							        SPIECE_UNDERLINE + """in""",
							        SPIECE_UNDERLINE + """""",
							        """9""",
							        """2""",
							        """0""",
							        """0""",
							        """0""",
							        """,""",
							        SPIECE_UNDERLINE + """and""",
							        SPIECE_UNDERLINE + """this""",
							        SPIECE_UNDERLINE + """is""",
							        SPIECE_UNDERLINE + """f""",
							        """al""",
							        """se""",
							        """.""",
							    ]      ,						)
							self.assertListEqual(tokenizer.tokenize("""H\u00E9llo"""						)      ,						["""▁he""", """ll""", """o"""]						)


					def lowerCamelCase_			(						self				:			Optional[Any]						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				List[Any]		=			XLNetTokenizer(lowerCamelCase_      ,						do_lower_case=lowerCamelCase_						)
							SCREAMING_SNAKE_CASE :				List[str]		=			tokenizer.tokenize("""I was born in 92000, and this is falsé."""						)
							self.assertListEqual(
							    lowerCamelCase_      ,						[
							        SPIECE_UNDERLINE + """I""",
							        SPIECE_UNDERLINE + """was""",
							        SPIECE_UNDERLINE + """b""",
							        """or""",
							        """n""",
							        SPIECE_UNDERLINE + """in""",
							        SPIECE_UNDERLINE + """""",
							        """9""",
							        """2""",
							        """0""",
							        """0""",
							        """0""",
							        """,""",
							        SPIECE_UNDERLINE + """and""",
							        SPIECE_UNDERLINE + """this""",
							        SPIECE_UNDERLINE + """is""",
							        SPIECE_UNDERLINE + """f""",
							        """al""",
							        """se""",
							        """.""",
							    ]      ,						)


					@slow
					def lowerCamelCase_			(						self				:			int						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				Dict		=			XLNetTokenizer.from_pretrained("""xlnet-base-cased"""						)

							SCREAMING_SNAKE_CASE :				int		=			tokenizer.encode("""sequence builders"""      ,						add_special_tokens=lowerCamelCase_						)
							SCREAMING_SNAKE_CASE :				List[str]		=			tokenizer.encode("""multi-sequence build"""      ,						add_special_tokens=lowerCamelCase_						)

							SCREAMING_SNAKE_CASE :				Optional[int]		=			tokenizer.build_inputs_with_special_tokens(lowerCamelCase_						)
							SCREAMING_SNAKE_CASE :				List[Any]		=			tokenizer.build_inputs_with_special_tokens(lowerCamelCase_      ,						lowerCamelCase_						)

							assert encoded_sentence == text + [4, 3]
							assert encoded_pair == text + [4] + text_a + [4, 3]



					@slow
					def lowerCamelCase_			(						self				:			str						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				List[str]		=			{"""input_ids""": [[17, 2_14_42, 2_70, 17, 10, 1_46_45, 3_18, 34, 17, 45_46, 31_45, 7_87, 13, 77_52, 2_20_18, 23, 21, 17, 45_46, 31_45, 7_87, 13, 33_52, 1_44_31, 13, 55_00, 11, 11_76, 5_80, 13, 1_68_19, 47_97, 23, 17, 10, 1_71_35, 6_58, 19, 4_57, 79_32, 13, 1_84, 19, 31_54, 1_71_35, 64_68, 19, 14_04, 1_22_69, 19, 42_29, 53_56, 1_62_64, 46, 19, 17, 2_05_45, 1_03_95, 9, 9, 9, 11, 28, 64_21, 95_31, 2_07_29, 17, 10, 3_53, 1_70_22, 11, 21, 64_21, 95_31, 1_69_49, 17, 10, 1_15_09, 7_53, 11, 33, 95, 24_21, 73_85, 9_56, 1_44_31, 26_26, 25, 8_42, 73_85, 48_36, 21, 14_29, 22_72, 98_55, 31_20, 1_61, 2_47_38, 19, 1_32_03, 6_58, 2_18, 7_87, 21, 4_30, 1_84_82, 8_47, 26_37, 9, 4, 3], [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3_22, 2_21_78, 27, 10_64, 22, 9_56, 13, 1_11_01, 14_29, 58_54, 2_43_13, 1_89_53, 40, 4_22, 2_43_66, 68, 17_58, 37, 1_04_83, 1_42_57, 31, 2_07, 2_63, 21, 2_03, 37_73, 25, 71, 97_35, 9, 4, 3], [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 32, 20_49, 34_42, 17, 1_38_94, 33_80, 23, 95, 18, 1_76_34, 22_88, 9, 4, 3]], """token_type_ids""": [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]], """attention_mask""": [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]}  # noqa: E501
							# fmt: on

							self.tokenizer_integration_test_util(
							    expected_encoding=lowerCamelCase_      ,						model_name="""xlnet-base-cased"""      ,						revision="""c841166438c31ec7ca9a106dee7bb312b73ae511"""      ,						)










'''simple docstring'''




import torch

from diffusers import UnCLIPScheduler

from .test_schedulers import SchedulerCommonTest




class      UpperCamelCase__					(					lowercase_			):




					"""simple docstring"""
					SCREAMING_SNAKE_CASE__				=	(UnCLIPScheduler,)


					def lowerCamelCase_			(						self				:			List[str]      ,						**lowerCamelCase_				:			List[Any]						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				List[Any]		=			{
							    """num_train_timesteps""": 10_00,
							    """variance_type""": """fixed_small_log""",
							    """clip_sample""": True,
							    """clip_sample_range""": 1.0,
							    """prediction_type""": """epsilon""",
							}

							config.update(**lowerCamelCase_						)
							return config


					def lowerCamelCase_			(						self				:			List[Any]						):

							'''simple docstring'''



							for timesteps in [1, 5, 1_00, 10_00]:
									self.check_over_configs(num_train_timesteps=lowerCamelCase_						)


					def lowerCamelCase_			(						self				:			str						):

							'''simple docstring'''



							for variance in ["fixed_small_log", "learned_range"]:
									self.check_over_configs(variance_type=lowerCamelCase_						)


					def lowerCamelCase_			(						self				:			List[Any]						):

							'''simple docstring'''



							for clip_sample in [True, False]:
									self.check_over_configs(clip_sample=lowerCamelCase_						)


					def lowerCamelCase_			(						self				:			Union[str, Any]						):

							'''simple docstring'''



							for clip_sample_range in [1, 5, 10, 20]:
									self.check_over_configs(clip_sample_range=lowerCamelCase_						)


					def lowerCamelCase_			(						self				:			List[Any]						):

							'''simple docstring'''



							for prediction_type in ["epsilon", "sample"]:
									self.check_over_configs(prediction_type=lowerCamelCase_						)


					def lowerCamelCase_			(						self				:			List[Any]						):

							'''simple docstring'''



							for time_step in [0, 5_00, 9_99]:
									for prev_timestep in [None, 5, 1_00, 2_50, 5_00, 7_50]:
											if prev_timestep is not None and prev_timestep >= time_step:
													continue

											self.check_over_forward(time_step=lowerCamelCase_      ,						prev_timestep=lowerCamelCase_						)


					def lowerCamelCase_			(						self				:			List[str]						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				int		=			self.scheduler_classes[0]
							SCREAMING_SNAKE_CASE :				Dict		=			self.get_scheduler_config(variance_type="""fixed_small_log"""						)
							SCREAMING_SNAKE_CASE :				Optional[Any]		=			scheduler_class(**lowerCamelCase_						)

							assert torch.sum(torch.abs(scheduler._get_variance(0						) - 1.0000e-10						)						) < 1e-5
							assert torch.sum(torch.abs(scheduler._get_variance(4_87						) - 0.0_549_625						)						) < 1e-5
							assert torch.sum(torch.abs(scheduler._get_variance(9_99						) - 0.9_994_987						)						) < 1e-5


					def lowerCamelCase_			(						self				:			Optional[Any]						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				Tuple		=			self.scheduler_classes[0]
							SCREAMING_SNAKE_CASE :				Optional[int]		=			self.get_scheduler_config(variance_type="""learned_range"""						)
							SCREAMING_SNAKE_CASE :				List[str]		=			scheduler_class(**lowerCamelCase_						)

							SCREAMING_SNAKE_CASE :				List[str]		=			0.5

							assert scheduler._get_variance(1      ,						predicted_variance=lowerCamelCase_						) - -10.1_712_790 < 1e-5
							assert scheduler._get_variance(4_87      ,						predicted_variance=lowerCamelCase_						) - -5.7_998_052 < 1e-5
							assert scheduler._get_variance(9_99      ,						predicted_variance=lowerCamelCase_						) - -0.0_010_011 < 1e-5


					def lowerCamelCase_			(						self				:			str						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				Tuple		=			self.scheduler_classes[0]
							SCREAMING_SNAKE_CASE :				int		=			self.get_scheduler_config()
							SCREAMING_SNAKE_CASE :				List[Any]		=			scheduler_class(**lowerCamelCase_						)

							SCREAMING_SNAKE_CASE :				Optional[Any]		=			scheduler.timesteps

							SCREAMING_SNAKE_CASE :				Optional[int]		=			self.dummy_model()
							SCREAMING_SNAKE_CASE :				Optional[int]		=			self.dummy_sample_deter
							SCREAMING_SNAKE_CASE :				str		=			torch.manual_seed(0						)

							for i, t in enumerate(lowerCamelCase_						):
									# 1. predict noise residual
									SCREAMING_SNAKE_CASE :				List[str]		=			model(lowerCamelCase_      ,						lowerCamelCase_						)

									# 2. predict previous mean of sample x_t-1
									SCREAMING_SNAKE_CASE :				Optional[int]		=			scheduler.step(lowerCamelCase_      ,						lowerCamelCase_      ,						lowerCamelCase_      ,						generator=lowerCamelCase_						).prev_sample

									SCREAMING_SNAKE_CASE :				Union[str, Any]		=			pred_prev_sample

							SCREAMING_SNAKE_CASE :				Optional[int]		=			torch.sum(torch.abs(lowerCamelCase_						)						)
							SCREAMING_SNAKE_CASE :				int		=			torch.mean(torch.abs(lowerCamelCase_						)						)

							assert abs(result_sum.item() - 252.2_682_495						) < 1e-2
							assert abs(result_mean.item() - 0.3_284_743						) < 1e-3


					def lowerCamelCase_			(						self				:			Optional[Any]						):

							'''simple docstring'''



							SCREAMING_SNAKE_CASE :				Optional[Any]		=			self.scheduler_classes[0]
							SCREAMING_SNAKE_CASE :				Dict		=			self.get_scheduler_config()
							SCREAMING_SNAKE_CASE :				List[str]		=			scheduler_class(**lowerCamelCase_						)

							scheduler.set_timesteps(25						)

							SCREAMING_SNAKE_CASE :				List[str]		=			scheduler.timesteps

							SCREAMING_SNAKE_CASE :				Optional[int]		=			self.dummy_model()
							SCREAMING_SNAKE_CASE :				Tuple		=			self.dummy_sample_deter
							SCREAMING_SNAKE_CASE :				Any		=			torch.manual_seed(0						)

							for i, t in enumerate(lowerCamelCase_						):
									# 1. predict noise residual
									SCREAMING_SNAKE_CASE :				int		=			model(lowerCamelCase_      ,						lowerCamelCase_						)

									if i + 1 == timesteps.shape[0]:
											SCREAMING_SNAKE_CASE :				Union[str, Any]		=			None
									else:
											SCREAMING_SNAKE_CASE :				int		=			timesteps[i + 1]

									# 2. predict previous mean of sample x_t-1
									SCREAMING_SNAKE_CASE :				int		=			scheduler.step(
									    lowerCamelCase_      ,						lowerCamelCase_      ,						lowerCamelCase_      ,						prev_timestep=lowerCamelCase_      ,						generator=lowerCamelCase_						).prev_sample

									SCREAMING_SNAKE_CASE :				Union[str, Any]		=			pred_prev_sample

							SCREAMING_SNAKE_CASE :				Union[str, Any]		=			torch.sum(torch.abs(lowerCamelCase_						)						)
							SCREAMING_SNAKE_CASE :				Union[str, Any]		=			torch.mean(torch.abs(lowerCamelCase_						)						)

							assert abs(result_sum.item() - 258.2_044_983						) < 1e-2
							assert abs(result_mean.item() - 0.3_362_038						) < 1e-3


					def lowerCamelCase_			(						self				:			Dict						):

							'''simple docstring'''



							pass



					def lowerCamelCase_			(						self				:			int						):

							'''simple docstring'''



							pass



