'''simple docstring'''






import unittest

from transformers import AlbertTokenizer, AlbertTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


__a									=   get_tests_dir('fixtures/spiece.model')





@require_sentencepiece
@require_tokenizers
class        A__				(			SCREAMING_SNAKE_CASE__   ,						unittest.TestCase  ):





   """simple docstring"""





   UpperCamelCase_			:		Union[str, Any]       							=	AlbertTokenizer
   UpperCamelCase_			:		Optional[int]       							=	AlbertTokenizerFast
   UpperCamelCase_			:		List[str]       							=	True
   UpperCamelCase_			:		Optional[int]       							=	True
   UpperCamelCase_			:		Union[str, Any]       							=	True




   def      _lowerCAmelCase						(					self	:						Tuple     )			->       List[str]:







      """simple docstring"""




      super().setUp()

      # We have a SentencePiece fixture for testing
      _UpperCAmelCase				:      str				=  AlbertTokenizer(__lowerCamelCase     )
      tokenizer.save_pretrained(self.tmpdirname     )




   def      _lowerCAmelCase						(					self	:						Any		,	lowerCAmelCase__	:						Optional[int]     )			->       List[str]:







      """simple docstring"""




      _UpperCAmelCase				:      Tuple				=  '''this is a test'''
      _UpperCAmelCase				:      Union[str, Any]				=  '''this is a test'''
      return input_text, output_text




   def      _lowerCAmelCase						(					self	:						Union[str, Any]     )			->       List[str]:







      """simple docstring"""




      _UpperCAmelCase				:      int				=  '''<pad>'''
      _UpperCAmelCase				:      Optional[int]				=  0

      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	:						Any     )			->       str:







      """simple docstring"""




      _UpperCAmelCase				:      str				=  list(self.get_tokenizer().get_vocab().keys()     )

      self.assertEqual(vocab_keys[0]		,	"<pad>"     )
      self.assertEqual(vocab_keys[1]		,	"<unk>"     )
      self.assertEqual(vocab_keys[-1]		,	"▁eloquent"     )
      self.assertEqual(len(__lowerCamelCase     )		,	3_0_0_0_0     )




   def      _lowerCAmelCase						(					self	:						Optional[Any]     )			->       str:







      """simple docstring"""




      self.assertEqual(self.get_tokenizer().vocab_size		,	3_0_0_0_0     )




   def      _lowerCAmelCase						(					self	:						Tuple     )			->       List[Any]:







      """simple docstring"""




      if not self.test_rust_tokenizer:
         return

      _UpperCAmelCase				:      Dict				=  self.get_tokenizer()
      _UpperCAmelCase				:      List[Any]				=  self.get_rust_tokenizer()

      _UpperCAmelCase				:      int				=  '''I was born in 92000, and this is falsé.'''

      _UpperCAmelCase				:      Any				=  tokenizer.tokenize(__lowerCamelCase     )
      _UpperCAmelCase				:      Dict				=  rust_tokenizer.tokenize(__lowerCamelCase     )
      self.assertListEqual(__lowerCamelCase		,	__lowerCamelCase     )

      _UpperCAmelCase				:      List[Any]				=  tokenizer.encode(__lowerCamelCase		,	add_special_tokens=__lowerCamelCase     )
      _UpperCAmelCase				:      List[str]				=  rust_tokenizer.encode(__lowerCamelCase		,	add_special_tokens=__lowerCamelCase     )
      self.assertListEqual(__lowerCamelCase		,	__lowerCamelCase     )

      _UpperCAmelCase				:      List[Any]				=  self.get_rust_tokenizer()
      _UpperCAmelCase				:      Union[str, Any]				=  tokenizer.encode(__lowerCamelCase     )
      _UpperCAmelCase				:      List[Any]				=  rust_tokenizer.encode(__lowerCamelCase     )
      self.assertListEqual(__lowerCamelCase		,	__lowerCamelCase     )




   def      _lowerCAmelCase						(					self	:						List[str]     )			->       int:







      """simple docstring"""




      _UpperCAmelCase				:      List[str]				=  AlbertTokenizer(__lowerCamelCase		,	keep_accents=__lowerCamelCase     )

      _UpperCAmelCase				:      Optional[int]				=  tokenizer.tokenize("This is a test"     )
      self.assertListEqual(__lowerCamelCase		,	["▁this", "▁is", "▁a", "▁test"]     )

      self.assertListEqual(tokenizer.convert_tokens_to_ids(__lowerCamelCase     )		,	[4_8, 2_5, 2_1, 1_2_8_9]     )

      _UpperCAmelCase				:      Tuple				=  tokenizer.tokenize("I was born in 92000, and this is falsé."     )
      self.assertListEqual(
          __lowerCamelCase		,	["▁i", "▁was", "▁born", "▁in", "▁9", "2000", ",", "▁and", "▁this", "▁is", "▁fal", "s", "é", "."]     )
      _UpperCAmelCase				:      Optional[Any]				=  tokenizer.convert_tokens_to_ids(__lowerCamelCase     )
      self.assertListEqual(__lowerCamelCase		,	[3_1, 2_3, 3_8_6, 1_9, 5_6_1, 3_0_5_0, 1_5, 1_7, 4_8, 2_5, 8_2_5_6, 1_8, 1, 9]     )

      _UpperCAmelCase				:      Optional[Any]				=  tokenizer.convert_ids_to_tokens(__lowerCamelCase     )
      self.assertListEqual(
          __lowerCamelCase		,	["▁i", "▁was", "▁born", "▁in", "▁9", "2000", ",", "▁and", "▁this", "▁is", "▁fal", "s", "<unk>", "."]		,	)




   def      _lowerCAmelCase						(					self	:						Optional[Any]     )			->       str:







      """simple docstring"""




      _UpperCAmelCase				:      Optional[Any]				=  AlbertTokenizer(__lowerCamelCase     )

      _UpperCAmelCase				:      List[Any]				=  tokenizer.encode("sequence builders"     )
      _UpperCAmelCase				:      str				=  tokenizer.encode("multi-sequence build"     )

      _UpperCAmelCase				:      Union[str, Any]				=  tokenizer.build_inputs_with_special_tokens(__lowerCamelCase     )
      _UpperCAmelCase				:      Optional[int]				=  tokenizer.build_inputs_with_special_tokens(__lowerCamelCase		,	__lowerCamelCase     )

      assert encoded_sentence == [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id]
      assert encoded_pair == [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id] + text_a + [
          tokenizer.sep_token_id
      ]




   @slow
   def      _lowerCAmelCase						(					self	:						List[Any]     )			->       str:







      """simple docstring"""




      _UpperCAmelCase				:      Dict				=  {'''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, 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], [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]], '''input_ids''': [[2, 2_1_9_7_0, 1_3, 5, 6_0_9_2, 1_6_7, 2_8, 7_1_0_3, 2_1_5_3, 6_7_3, 8, 7_0_2_8, 1_2_0_5_1, 1_8, 1_7, 7_1_0_3, 2_1_5_3, 6_7_3, 8, 3_5_1_5, 1_8_6_8_4, 8, 4_4_6_1, 6, 1_9_2_7, 2_9_7, 8, 1_2_0_6_0, 2_6_0_7, 1_8, 1_3, 5, 4_4_6_1, 1_5, 1_0_5_3_8, 3_8, 8, 1_3_5, 1_5, 8_2_2, 5_8, 1_5, 9_9_3, 1_0_3_6_3, 1_5, 1_4_6_0, 8_0_0_5, 4_4_6_1, 1_5, 9_9_3, 2_5_5, 2_3_2_8, 9, 9, 9, 6, 2_6, 1_1_1_2, 8_1_6, 3_2_6_0, 1_3, 5, 1_0_3, 2_3_7_7, 6, 1_7, 1_1_1_2, 8_1_6, 2_7_8_2, 1_3, 5, 1_0_3, 1_0_6_4_1, 6, 2_9, 8_4, 2_5_1_2, 2_4_3_0, 7_8_2, 1_8_6_8_4, 2_7_6_1, 1_9, 8_0_8, 2_4_3_0, 2_5_5_6, 1_7, 8_5_5, 1_4_8_0, 9_4_7_7, 4_0_9_1, 1_2_8, 1_1_7_1_2, 1_5, 7_1_0_3, 2_1_5_3, 6_7_3, 1_7, 2_4_8_8_3, 9_9_9_0, 9, 3], [2, 1_1_5_0_2, 2_5, 1_0_0_6, 2_0, 7_8_2, 8, 1_1_8_0_9, 8_5_5, 1_7_3_2, 1_9_3_9_3, 1_8_6_6_7, 3_7, 3_6_7, 2_1_0_1_8, 6_9, 1_8_5_4, 3_4, 1_1_8_6_0, 1_9_1_2_4, 2_7, 1_5_6, 2_2_5, 1_7, 1_9_3, 4_1_4_1, 1_9, 6_5, 9_1_2_4, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1_4, 2_2_3_1, 8_8_6, 2_3_8_5, 1_7_6_5_9, 8_4, 1_4, 1_6_7_9_2, 1_9_5_2, 9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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="albert-base-v2"		,	revision="6b6560eaf5ff2e250b00c50f380c5389a9c2d82e"		,	)






"""simple docstring"""



from collections import defaultdict
from math import gcd







def 						__lowercase	(  snake_case_    :    int = 1500000		)  ->int:



    '''simple docstring'''







    __A       :		defaultdict							=	defaultdict(snake_case_		)
    __A       :		Any							=	2
    while 2 * euclid_m * (euclid_m + 1) <= limit:
        for euclid_n in range((euclid_m % 2) + 1							,snake_case_							,2		):
            if gcd(snake_case_							,snake_case_		) > 1:
                continue
            __A       :		List[Any]							=	2 * euclid_m * (euclid_m + euclid_n)
            for perimeter in range(snake_case_							,limit + 1							,snake_case_		):
                frequencies[perimeter] += 1
        euclid_m += 1
    return sum(1 for frequency in frequencies.values() if frequency == 1		)


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




