




import unittest

from transformers import GPTSwaTokenizer
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


_lowerCamelCase      :						Optional[Any]							=  get_tests_dir("""fixtures/test_sentencepiece_with_bytefallback.model""")


@require_sentencepiece
@require_tokenizers
class 							UpperCamelCase_       (					UpperCAmelCase__						,   unittest.TestCase	):

    '''simple docstring'''






    UpperCAmelCase__				    = GPTSwaTokenizer
    UpperCAmelCase__				    = False
    UpperCAmelCase__				    = True
    UpperCAmelCase__				    = False


    def 			SCREAMING_SNAKE_CASE				(     self :      int)		->Tuple:





           '''simple docstring'''

           super().setUp()

           # We have a SentencePiece fixture for testing
           A__ 					=       GPTSwaTokenizer(UpperCAmelCase__   ,					eos_token='''<unk>'''   ,					bos_token='''<unk>'''   ,					pad_token='''<unk>''')

           tokenizer.save_pretrained(self.tmpdirname)


    def 			SCREAMING_SNAKE_CASE				(     self :      Optional[int]   ,					UpperCAmelCase__ :      List[Any])		->Optional[Any]:





           '''simple docstring'''

           A__ 					=       '''This is a test'''
           A__ 					=       '''This is a test'''
           return input_text, output_text


    def 			SCREAMING_SNAKE_CASE				(     self :      int)		->Optional[int]:





           '''simple docstring'''

           A__ 					=       '''<s>'''
           A__ 					=       1

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


    def 			SCREAMING_SNAKE_CASE				(     self :      Optional[int])		->Dict:





           '''simple docstring'''

           A__ 					=       list(self.get_tokenizer().get_vocab().keys())

           self.assertEqual(vocab_keys[0]   ,					'''<unk>''')
           self.assertEqual(vocab_keys[1]   ,					'''<s>''')
           self.assertEqual(vocab_keys[-1]   ,					'''j''')
           self.assertEqual(len(UpperCAmelCase__)   ,					2_000)


    def 			SCREAMING_SNAKE_CASE				(     self :      int)		->Dict:





           '''simple docstring'''

           self.assertEqual(self.get_tokenizer().vocab_size   ,					2_000)


    def 			SCREAMING_SNAKE_CASE				(     self :      List[str])		->List[Any]:





           '''simple docstring'''

           A__ 					=       GPTSwaTokenizer(UpperCAmelCase__)

           A__ 					=       tokenizer.tokenize('''This is a test''')
           self.assertListEqual(UpperCAmelCase__   ,					['''▁This''', '''▁is''', '''▁a''', '''▁t''', '''est'''])

           self.assertListEqual(tokenizer.convert_tokens_to_ids(UpperCAmelCase__)   ,					[465, 287, 265, 631, 842])

           A__ 					=       tokenizer.tokenize('''I was born in 92000, and this is falsé.''')
           # fmt: off
           self.assertListEqual(
               UpperCAmelCase__   ,					['''▁I''', '''▁was''', '''▁bor''', '''n''', '''▁in''', '''▁''', '''<0x39>''', '''2''', '''0''', '''0''', '''0''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁f''', '''al''', '''s''', '''<0xC3>''', '''<0xA9>''', '''.''']   ,					)
           # fmt: on

           A__ 					=       tokenizer.convert_tokens_to_ids(UpperCAmelCase__)
           self.assertListEqual(
               UpperCAmelCase__   ,					[262, 272, 1_525, 286, 271, 268, 60, 916, 633, 633, 633, 259, 266, 301, 287, 384, 367, 263, 198, 172, 260]   ,					)

           A__ 					=       tokenizer.convert_ids_to_tokens(UpperCAmelCase__)
           # fmt: off
           self.assertListEqual(
               UpperCAmelCase__   ,					['''▁I''', '''▁was''', '''▁bor''', '''n''', '''▁in''', '''▁''', '''<0x39>''', '''2''', '''0''', '''0''', '''0''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁f''', '''al''', '''s''', '''<0xC3>''', '''<0xA9>''', '''.'''])
           # fmt: on


    def 			SCREAMING_SNAKE_CASE				(     self :      str)		->List[Any]:





           '''simple docstring'''

           A__ 					=       GPTSwaTokenizer(UpperCAmelCase__)
           A__ 					=       ['''This is a test''', '''I was born in 92000, and this is falsé.''']
           A__ 					=       [
               [465, 287, 265, 631, 842],
               [262, 272, 1_525, 286, 271, 268, 60, 916, 633, 633, 633, 259, 266, 301, 287, 384, 367, 263, 198, 172, 260],
           ]

           # Test that encode_fast returns the same as tokenize + convert_tokens_to_ids
           for text, expected_ids in zip(UpperCAmelCase__   ,					UpperCAmelCase__):
                  self.assertListEqual(tokenizer.encode_fast(UpperCAmelCase__)   ,					UpperCAmelCase__)

           # Test that decode_fast returns the input text
           for text, token_ids in zip(UpperCAmelCase__   ,					UpperCAmelCase__):
                  self.assertEqual(tokenizer.decode_fast(UpperCAmelCase__)   ,					UpperCAmelCase__)





    @slow
    def 			SCREAMING_SNAKE_CASE				(     self :      Any)		->int:





           '''simple docstring'''

           A__ 					=       [
               '''<|python|>def fibonacci(n)\n    if n < 0:\n        print(\'Incorrect input\')''',
               '''Hey there, how are you doing this fine day?''',
               '''This is a text with a trailing spaces followed by a dot     .''',
               '''Häj sväjs lillebrör! =)''',
               '''Det är inget fel på Mr. Cool''',
           ]

           # fmt: off
           A__ 					=       {'''input_ids''': [[63_423, 5, 6_811, 14_954, 282, 816, 3_821, 63_466, 63_425, 63_462, 18, 63_978, 678, 301, 1_320, 63_423, 63_455, 63_458, 18, 63_982, 4_246, 3_940, 1_901, 47_789, 5_547, 18_994], [19_630, 1_100, 63_446, 1_342, 633, 544, 4_488, 593, 5_102, 2_416, 63_495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1_652, 428, 268, 1_936, 515, 268, 58_593, 22_413, 9_106, 546, 268, 33_213, 63_979, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [55_130, 63_450, 924, 63_449, 2_249, 4_062, 1_558, 318, 63_504, 21_498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [509, 377, 2_827, 2_559, 332, 6_575, 63_443, 26_801, 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]], '''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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [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], [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]]}
           # fmt: on
           self.tokenizer_integration_test_util(
               expected_encoding=UpperCAmelCase__   ,					model_name='''AI-Sweden/gpt-sw3-126m'''   ,					sequences=UpperCAmelCase__   ,					)







'''simple docstring'''

import qiskit







def a_     (    __UpperCAmelCase				,							__UpperCAmelCase					)				->					qiskit.result.counts.Counts:





			"""simple docstring"""







			snake_case:    Union[str, Any]      							=qiskit.Aer.get_backend('aer_simulator'					)

			# Create a Quantum Circuit acting on the q register
			snake_case:    Dict      							=qiskit.QuantumCircuit(__UpperCAmelCase				,							__UpperCAmelCase					)

			# Map the quantum measurement to the classical bits
			circuit.measure([0]				,							[0]					)

			# Execute the circuit on the simulator
			snake_case:    Dict      							=qiskit.execute(__UpperCAmelCase				,							__UpperCAmelCase				,							shots=10_00					)

			# Return the histogram data of the results of the experiment.
			return job.result().get_counts(__UpperCAmelCase					)


if __name__ == "__main__":
	print(F"""Total count for various states are: {single_qubit_measure(1, 1)}""")




