






"""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


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




@require_sentencepiece
@require_tokenizers
class 						__UpperCamelCase     (     UpperCamelCase   ,     unittest.TestCase						):
					lowercase_    :				Union[str, Any]      =  AlbertTokenizer
					lowercase_    :				List[str]      =  AlbertTokenizerFast
					lowercase_    :				Dict      =  True
					lowercase_    :				Any      =  True
					lowercase_    :				int      =  True
					def        UpperCAmelCase__ (							self							:	int   )	->       Union[str, Any]:
											super().setUp()

											# We have a SentencePiece fixture for testing
											lowerCAmelCase   :Optional[Any]						=			AlbertTokenizer(UpperCAmelCase   )
											tokenizer.save_pretrained(self.tmpdirname   )
					def        UpperCAmelCase__ (							self							:	Any     , UpperCAmelCase							:	Dict   )	->       Dict:
											lowerCAmelCase   :Tuple						=			'this is a test'
											lowerCAmelCase   :List[str]						=			'this is a test'
											return input_text, output_text
					def        UpperCAmelCase__ (							self							:	Dict   )	->       Dict:
											lowerCAmelCase   :Optional[int]						=			'<pad>'
											lowerCAmelCase   :str						=			0

											self.assertEqual(self.get_tokenizer()._convert_token_to_id(UpperCAmelCase   )     , UpperCAmelCase   )
											self.assertEqual(self.get_tokenizer()._convert_id_to_token(UpperCAmelCase   )     , UpperCAmelCase   )
					def        UpperCAmelCase__ (							self							:	str   )	->       List[Any]:
											lowerCAmelCase   :List[Any]						=			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(UpperCAmelCase   )     , 3_0000   )
					def        UpperCAmelCase__ (							self							:	Union[str, Any]   )	->       str:
											self.assertEqual(self.get_tokenizer().vocab_size     , 3_0000   )
					def        UpperCAmelCase__ (							self							:	List[Any]   )	->       int:
											if not self.test_rust_tokenizer:
																	return

											lowerCAmelCase   :int						=			self.get_tokenizer()
											lowerCAmelCase   :List[str]						=			self.get_rust_tokenizer()

											lowerCAmelCase   :Optional[int]						=			'I was born in 92000, and this is falsé.'

											lowerCAmelCase   :int						=			tokenizer.tokenize(UpperCAmelCase   )
											lowerCAmelCase   :Union[str, Any]						=			rust_tokenizer.tokenize(UpperCAmelCase   )
											self.assertListEqual(UpperCAmelCase     , UpperCAmelCase   )

											lowerCAmelCase   :List[str]						=			tokenizer.encode(UpperCAmelCase     , add_special_tokens=UpperCAmelCase   )
											lowerCAmelCase   :int						=			rust_tokenizer.encode(UpperCAmelCase     , add_special_tokens=UpperCAmelCase   )
											self.assertListEqual(UpperCAmelCase     , UpperCAmelCase   )

											lowerCAmelCase   :List[Any]						=			self.get_rust_tokenizer()
											lowerCAmelCase   :Optional[Any]						=			tokenizer.encode(UpperCAmelCase   )
											lowerCAmelCase   :int						=			rust_tokenizer.encode(UpperCAmelCase   )
											self.assertListEqual(UpperCAmelCase     , UpperCAmelCase   )
					def        UpperCAmelCase__ (							self							:	int   )	->       List[str]:
											lowerCAmelCase   :List[Any]						=			AlbertTokenizer(UpperCAmelCase     , keep_accents=UpperCAmelCase   )

											lowerCAmelCase   :int						=			tokenizer.tokenize('This is a test'   )
											self.assertListEqual(UpperCAmelCase     , ['▁this', '▁is', '▁a', '▁test']   )

											self.assertListEqual(tokenizer.convert_tokens_to_ids(UpperCAmelCase   )     , [48, 25, 21, 1289]   )

											lowerCAmelCase   :Any						=			tokenizer.tokenize('I was born in 92000, and this is falsé.'   )
											self.assertListEqual(
											    UpperCAmelCase     , ['▁i', '▁was', '▁born', '▁in', '▁9', '2000', ',', '▁and', '▁this', '▁is', '▁fal', 's', 'é', '.']   )
											lowerCAmelCase   :Any						=			tokenizer.convert_tokens_to_ids(UpperCAmelCase   )
											self.assertListEqual(UpperCAmelCase     , [31, 23, 386, 19, 561, 3050, 15, 17, 48, 25, 8256, 18, 1, 9]   )

											lowerCAmelCase   :Optional[int]						=			tokenizer.convert_ids_to_tokens(UpperCAmelCase   )
											self.assertListEqual(
											    UpperCAmelCase     , ['▁i', '▁was', '▁born', '▁in', '▁9', '2000', ',', '▁and', '▁this', '▁is', '▁fal', 's', '<unk>', '.']     , )
					def        UpperCAmelCase__ (							self							:	int   )	->       List[Any]:
											lowerCAmelCase   :int						=			AlbertTokenizer(UpperCAmelCase   )

											lowerCAmelCase   :Any						=			tokenizer.encode('sequence builders'   )
											lowerCAmelCase   :str						=			tokenizer.encode('multi-sequence build'   )

											lowerCAmelCase   :Union[str, Any]						=			tokenizer.build_inputs_with_special_tokens(UpperCAmelCase   )
											lowerCAmelCase   :Optional[Any]						=			tokenizer.build_inputs_with_special_tokens(UpperCAmelCase     , UpperCAmelCase   )

											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        UpperCAmelCase__ (							self							:	Tuple   )	->       str:
											# fmt: off
											lowerCAmelCase   :Optional[int]						=			{'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_1970, 13, 5, 6092, 167, 28, 7103, 2153, 673, 8, 7028, 1_2051, 18, 17, 7103, 2153, 673, 8, 3515, 1_8684, 8, 4461, 6, 1927, 297, 8, 1_2060, 2607, 18, 13, 5, 4461, 15, 1_0538, 38, 8, 135, 15, 822, 58, 15, 993, 1_0363, 15, 1460, 8005, 4461, 15, 993, 255, 2328, 9, 9, 9, 6, 26, 1112, 816, 3260, 13, 5, 103, 2377, 6, 17, 1112, 816, 2782, 13, 5, 103, 1_0641, 6, 29, 84, 2512, 2430, 782, 1_8684, 2761, 19, 808, 2430, 2556, 17, 855, 1480, 9477, 4091, 128, 1_1712, 15, 7103, 2153, 673, 17, 2_4883, 9990, 9, 3], [2, 1_1502, 25, 1006, 20, 782, 8, 1_1809, 855, 1732, 1_9393, 1_8667, 37, 367, 2_1018, 69, 1854, 34, 1_1860, 1_9124, 27, 156, 225, 17, 193, 4141, 19, 65, 9124, 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, 14, 2231, 886, 2385, 1_7659, 84, 14, 1_6792, 1952, 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=UpperCAmelCase     , model_name='albert-base-v2'     , revision='6b6560eaf5ff2e250b00c50f380c5389a9c2d82e'     , )







"""simple docstring"""


import qiskit


def        UpperCAmelCase      (					a__     ,      a__ ):





						'''simple docstring'''






						lowerCAmelCase   :List[Any]						=			qiskit.Aer.get_backend('aer_simulator' )

						# Create a Quantum Circuit acting on the q register
						lowerCAmelCase   :Optional[int]						=			qiskit.QuantumCircuit(a__     ,      a__ )

						# Apply X (NOT) Gate to Qubits 0 & 1
						circuit.x(0 )
						circuit.x(1 )

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

						# Execute the circuit on the qasm simulator
						lowerCAmelCase   :Dict						=			qiskit.execute(a__     ,      a__     ,      shots=10_00 )

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


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