






import unittest

from transformers import DebertaVaTokenizer, DebertaVaTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


A__			:    str         =				get_tests_dir('fixtures/spiece.model')
@require_sentencepiece
@require_tokenizers
class    _UpperCAmelCase      ( _lowerCAmelCase	,unittest.TestCase			):

				"""simple docstring"""




				lowercase__       							= DebertaVaTokenizer
				lowercase__       							= DebertaVaTokenizerFast
				lowercase__       							= True
				lowercase__       							= True




				def        lowercase__     (  self		:					Any						):

								'''simple docstring'''
								super().setUp()

								# We have a SentencePiece fixture for testing
								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						unk_token='''<unk>'''						)
								tokenizer.save_pretrained(self.tmpdirname						)




				def        lowercase__     (  self		:					str,						lowerCamelCase		:					List[str]						):

								'''simple docstring'''
								lowercase__     				=    '''this is a test'''
								lowercase__     				=    '''this is a test'''
								return input_text, output_text




				def        lowercase__     (  self		:					Tuple						):

								'''simple docstring'''
								lowercase__     				=    '''<pad>'''
								lowercase__     				=    0

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




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

								'''simple docstring'''
								lowercase__     				=    list(self.get_tokenizer().get_vocab().keys()						)
								self.assertEqual(vocab_keys[0],						'''<pad>'''						)
								self.assertEqual(vocab_keys[1],						'''<unk>'''						)
								self.assertEqual(vocab_keys[-1],						'''[PAD]'''						)
								self.assertEqual(len(_lowerCAmelCase						),						30_001						)




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

								'''simple docstring'''
								self.assertEqual(self.get_tokenizer().vocab_size,						30_000						)




				def        lowercase__     (  self		:					int						):

								'''simple docstring'''
								lowercase__     				=    ''' \tHeLLo!how  \n Are yoU?  '''
								lowercase__     				=    ['''▁hello''', '''!''', '''how''', '''▁are''', '''▁you''', '''?''']
								# fmt: on

								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    DebertaVaTokenizerFast(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




				@unittest.skip('''There is an inconsistency between slow and fast tokenizer due to a bug in the fast one.'''						)
				def        lowercase__     (  self		:					Union[str, Any]						):

								'''simple docstring'''
								pass




				@unittest.skip('''There is an inconsistency between slow and fast tokenizer due to a bug in the fast one.'''						)
				def        lowercase__     (  self		:					int						):

								'''simple docstring'''
								pass




				def        lowercase__     (  self		:					str						):

								'''simple docstring'''
								lowercase__     				=    '''I was born in 92000, and this is falsé.'''
								lowercase__     				=    ['''▁''', '''<unk>''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', '''▁''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''▁''', '''.''', ]
								# fmt: on

								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    DebertaVaTokenizerFast(_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




				def        lowercase__     (  self		:					List[str]						):

								'''simple docstring'''
								lowercase__     				=    '''I was born in 92000, and this is falsé.'''
								lowercase__     				=    ['''▁i''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', '''▁''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''▁''', '''.''', ]
								# fmt: on

								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    DebertaVaTokenizerFast(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




				def        lowercase__     (  self		:					int						):

								'''simple docstring'''
								lowercase__     				=    '''I was born in 92000, and this is falsé.'''
								lowercase__     				=    ['''▁i''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''.''', ]
								# fmt: on

								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    DebertaVaTokenizerFast(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




				def        lowercase__     (  self		:					Tuple						):

								'''simple docstring'''
								lowercase__     				=    '''I was born in 92000, and this is falsé.'''
								lowercase__     				=    ['''▁''', '''<unk>''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', '''▁''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''▁''', '''.''', ]
								# fmt: on

								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    DebertaVaTokenizerFast(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




				def        lowercase__     (  self		:					Tuple						):

								'''simple docstring'''
								lowercase__     				=    ''' \tHeLLo!how  \n Are yoU?  '''
								lowercase__     				=    ['''▁''', '''<unk>''', '''e''', '''<unk>''', '''o''', '''!''', '''how''', '''▁''', '''<unk>''', '''re''', '''▁yo''', '''<unk>''', '''?''']
								# fmt: on

								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    DebertaVaTokenizerFast(_lowerCAmelCase,						do_lower_case=_lowerCAmelCase,						split_by_punct=_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)

								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




				def        lowercase__     (  self		:					Optional[int]						):

								'''simple docstring'''
								lowercase__     				=    self.get_tokenizer()
								lowercase__     				=    self.get_rust_tokenizer()

								lowercase__     				=    '''I was born in 92000, and this is falsé.'''

								lowercase__     				=    tokenizer.convert_ids_to_tokens(tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    self.get_rust_tokenizer()
								lowercase__     				=    tokenizer.encode(_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.encode(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




				def        lowercase__     (  self		:					Dict						):

								'''simple docstring'''
								lowercase__     				=    '''This is a test'''
								lowercase__     				=    [13, 1, 4_398, 25, 21, 1_289]
								lowercase__     				=    ['''▁''', '''T''', '''his''', '''▁is''', '''▁a''', '''▁test''']
								lowercase__     				=    ['''▁''', '''<unk>''', '''his''', '''▁is''', '''▁a''', '''▁test''']

								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase,						keep_accents=_lowerCAmelCase						)
								lowercase__     				=    DebertaVaTokenizerFast(_lowerCAmelCase,						keep_accents=_lowerCAmelCase						)

								lowercase__     				=    tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    tokenizer.tokenize(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.tokenize(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								# fmt: off
								lowercase__     				=    '''I was born in 92000, and this is falsé.'''
								lowercase__     				=    [13, 1, 23, 386, 19, 561, 3_050, 15, 17, 48, 25, 8_256, 18, 1, 9]
								lowercase__     				=    ['''▁''', '''I''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''é''', '''.''', ]
								lowercase__     				=    ['''▁''', '''<unk>''', '''▁was''', '''▁born''', '''▁in''', '''▁9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''.''', ]
								# fmt: on

								lowercase__     				=    tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    tokenizer.tokenize(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    tokenizer.convert_ids_to_tokens(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)

								lowercase__     				=    rust_tokenizer.encode(_lowerCAmelCase,						add_special_tokens=_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.tokenize(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)
								lowercase__     				=    rust_tokenizer.convert_ids_to_tokens(_lowerCAmelCase						)
								self.assertListEqual(_lowerCAmelCase,						_lowerCAmelCase						)




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

								'''simple docstring'''
								lowercase__     				=    DebertaVaTokenizer(_lowerCAmelCase						)

								lowercase__     				=    tokenizer.encode('''sequence builders'''						)
								lowercase__     				=    tokenizer.encode('''multi-sequence build'''						)

								lowercase__     				=    tokenizer.build_inputs_with_special_tokens(_lowerCAmelCase						)
								lowercase__     				=    tokenizer.build_inputs_with_special_tokens(_lowerCAmelCase,						_lowerCAmelCase						)

								self.assertEqual([tokenizer.cls_token_id] + text + [tokenizer.sep_token_id],						_lowerCAmelCase						)
								self.assertEqual(
								    [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id] + text_a + [tokenizer.sep_token_id],						_lowerCAmelCase,						)




				@slow
				def        lowercase__     (  self		:					Optional[Any]						):

								'''simple docstring'''
								lowercase__     				=    {'''input_ids''': [[1, 39_867, 36, 19_390, 486, 27, 35_052, 81_436, 18, 60_685, 1_225, 7, 35_052, 81_436, 18, 9_367, 16_899, 18, 15_937, 53, 594, 773, 18, 16_287, 30_465, 36, 15_937, 6, 41_139, 38, 36_979, 60_763, 191, 6, 34_132, 99, 6, 50_538, 390, 43_230, 6, 34_132, 2_779, 20_850, 14, 699, 1_072, 1_194, 36, 382, 10_901, 53, 7, 699, 1_072, 2_084, 36, 20_422, 630, 53, 19, 105, 3_049, 1_896, 1_053, 16_899, 1_506, 11, 37_978, 4_243, 7, 1_237, 31_869, 200, 16_566, 654, 6, 35_052, 81_436, 7, 55_630, 13_593, 4, 2], [1, 26, 15_011, 13, 667, 8, 1_053, 18, 23_611, 1_237, 72_356, 12_820, 34, 104_134, 1_209, 35, 13_313, 6_627, 21, 202, 347, 7, 164, 2_399, 11, 46, 4_485, 4, 2, 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, 5, 1_232, 2_864, 15_785, 14_951, 105, 5, 8_581, 1_250, 4, 2, 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]], '''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, 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, 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]], '''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, 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], [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]]}  # noqa: E501
								# fmt: on

								self.tokenizer_integration_test_util(
								    expected_encoding=_lowerCAmelCase,						model_name='''microsoft/deberta-v2-xlarge''',						revision='''ad6e42c1532ddf3a15c39246b63f5559d558b670''',						)












from itertools import count






def 						a    (		lowerCamelCase_ = 50       ):






				'''simple docstring'''
				lowercase__     				=    [1] * min_block_length

				for n in count(lowerCamelCase_       ):
								fill_count_functions.append(1       )

								for block_length in range(lowerCamelCase_	,     n + 1       ):
												for block_start in range(n - block_length       ):
																fill_count_functions[n] += fill_count_functions[
																    n - block_start - block_length - 1
																]

												fill_count_functions[n] += 1

								if fill_count_functions[n] > 100_0000:
												break

				return n


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




