


"""simple docstring"""



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


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







@require_sentencepiece
@require_tokenizers
class    __a						( __snake_case					,			unittest.TestCase							):
				lowerCamelCase     :       Dict			       =DebertaVaTokenizer
				lowerCamelCase     :       List[Any]			       =DebertaVaTokenizerFast
				lowerCamelCase     :       Dict			       =True
				lowerCamelCase     :       Tuple			       =True







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






					super().setUp()

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







				def      lowerCamelCase_     ( self      ,	UpperCAmelCase   ):

					'''simple docstring'''






					lowerCAmelCase_      							=			'''this is a test'''
					lowerCAmelCase_      							=			'''this is a test'''
					return input_text, output_text







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






					lowerCAmelCase_      							=			'''<pad>'''
					lowerCAmelCase_      							=			0

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







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






					lowerCAmelCase_      							=			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(UpperCAmelCase   )      ,	3_0001   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






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







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






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

					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			DebertaVaTokenizerFast(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







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

					'''simple docstring'''






					pass







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

					'''simple docstring'''






					pass







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






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

					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			DebertaVaTokenizerFast(UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






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

					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			DebertaVaTokenizerFast(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






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

					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			DebertaVaTokenizerFast(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






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

					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			DebertaVaTokenizerFast(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






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

					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			DebertaVaTokenizerFast(UpperCAmelCase      ,	do_lower_case=UpperCAmelCase      ,	split_by_punct=UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )

					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






					lowerCAmelCase_      							=			self.get_tokenizer()
					lowerCAmelCase_      							=			self.get_rust_tokenizer()

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

					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			self.get_rust_tokenizer()
					lowerCAmelCase_      							=			tokenizer.encode(UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.encode(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






					lowerCAmelCase_      							=			'''This is a test'''
					lowerCAmelCase_      							=			[13, 1, 4398, 25, 21, 1289]
					lowerCAmelCase_      							=			['''▁''', '''T''', '''his''', '''▁is''', '''▁a''', '''▁test''']
					lowerCAmelCase_      							=			['''▁''', '''<unk>''', '''his''', '''▁is''', '''▁a''', '''▁test''']

					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase      ,	keep_accents=UpperCAmelCase   )
					lowerCAmelCase_      							=			DebertaVaTokenizerFast(UpperCAmelCase      ,	keep_accents=UpperCAmelCase   )

					lowerCAmelCase_      							=			tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.tokenize(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.tokenize(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

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

					lowerCAmelCase_      							=			tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.tokenize(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.convert_ids_to_tokens(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )

					lowerCAmelCase_      							=			rust_tokenizer.encode(UpperCAmelCase      ,	add_special_tokens=UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.tokenize(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )
					lowerCAmelCase_      							=			rust_tokenizer.convert_ids_to_tokens(UpperCAmelCase   )
					self.assertListEqual(UpperCAmelCase      ,	UpperCAmelCase   )







				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






					lowerCAmelCase_      							=			DebertaVaTokenizer(UpperCAmelCase   )

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

					lowerCAmelCase_      							=			tokenizer.build_inputs_with_special_tokens(UpperCAmelCase   )
					lowerCAmelCase_      							=			tokenizer.build_inputs_with_special_tokens(UpperCAmelCase      ,	UpperCAmelCase   )

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







				@slow
				def      lowerCamelCase_     ( self   ):

					'''simple docstring'''






					lowerCAmelCase_      							=			{'''input_ids''': [[1, 3_9867, 36, 1_9390, 486, 27, 3_5052, 8_1436, 18, 6_0685, 1225, 7, 3_5052, 8_1436, 18, 9367, 1_6899, 18, 1_5937, 53, 594, 773, 18, 1_6287, 3_0465, 36, 1_5937, 6, 4_1139, 38, 3_6979, 6_0763, 191, 6, 3_4132, 99, 6, 5_0538, 390, 4_3230, 6, 3_4132, 2779, 2_0850, 14, 699, 1072, 1194, 36, 382, 1_0901, 53, 7, 699, 1072, 2084, 36, 2_0422, 630, 53, 19, 105, 3049, 1896, 1053, 1_6899, 1506, 11, 3_7978, 4243, 7, 1237, 3_1869, 200, 1_6566, 654, 6, 3_5052, 8_1436, 7, 5_5630, 1_3593, 4, 2], [1, 26, 1_5011, 13, 667, 8, 1053, 18, 2_3611, 1237, 7_2356, 1_2820, 34, 10_4134, 1209, 35, 1_3313, 6627, 21, 202, 347, 7, 164, 2399, 11, 46, 4485, 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, 1232, 2864, 1_5785, 1_4951, 105, 5, 8581, 1250, 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=UpperCAmelCase      ,	model_name='''microsoft/deberta-v2-xlarge'''      ,	revision='''ad6e42c1532ddf3a15c39246b63f5559d558b670'''      ,	)



"""simple docstring"""



from collections import Counter
from timeit import timeit
def      UpperCAmelCase     (       _lowercase :   str = ""			,   )						-> bool:


	"""simple docstring"""




	return sum(c % 2 for c in Counter(input_str.replace(''' '''			,   ''''''	).lower()	).values()	) < 2
def      UpperCAmelCase     (       _lowercase :   str = ""	)						-> bool:


	"""simple docstring"""




	if len(_lowercase	) == 0:
		return True
	lowerCAmelCase_      							=			input_str.replace(''' '''			,   ''''''	).lower()
	# character_freq_dict: Stores the frequency of every character in the input string
	lowerCAmelCase_      							=			{}

	for character in lower_case_input_str:
		lowerCAmelCase_      							=			character_freq_dict.get(_lowercase			,   0	) + 1
	lowerCAmelCase_      							=			0

	for character_count in character_freq_dict.values():
		if character_count % 2:
			odd_char += 1
	if odd_char > 1:
		return False
	return True
def      UpperCAmelCase     (       _lowercase :   str = ""	)						-> None:


	"""simple docstring"""




	print('''\nFor string = '''			,   _lowercase			,   ''':'''	)
	print(
	    '''> can_string_be_rearranged_as_palindrome_counter()'''			,   '''\tans ='''			,   can_string_be_rearranged_as_palindrome_counter(_lowercase	)			,   '''\ttime ='''			,   timeit(
	        '''z.can_string_be_rearranged_as_palindrome_counter(z.check_str)'''			,   setup='''import __main__ as z'''			,   )			,   '''seconds'''			,   )
	print(
	    '''> can_string_be_rearranged_as_palindrome()'''			,   '''\tans ='''			,   can_string_be_rearranged_as_palindrome(_lowercase	)			,   '''\ttime ='''			,   timeit(
	        '''z.can_string_be_rearranged_as_palindrome(z.check_str)'''			,   setup='''import __main__ as z'''			,   )			,   '''seconds'''			,   )


if __name__ == "__main__":
		lowercase_							=							input(
		    'Enter string to determine if it can be rearranged as a palindrome or not: '
		).strip()
		benchmark(check_str)
		lowercase_							=							can_string_be_rearranged_as_palindrome_counter(check_str)
		print(f"""{check_str} can {'' if status else 'not '}be rearranged as a palindrome""")