


import unittest

from transformers import SPIECE_UNDERLINE, XLNetTokenizer, XLNetTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


__UpperCAmelCase       =							get_tests_dir('''fixtures/test_sentencepiece.model''')




@require_sentencepiece
@require_tokenizers
class 		a__    (							A_    ,    unittest.TestCase  ):





							'''simple docstring'''






							lowercase__      :       List[str]     						=				XLNetTokenizer
							lowercase__      :       Optional[Any]     						=				XLNetTokenizerFast
							lowercase__      :       Any     						=				True
							lowercase__      :       Dict     						=				True







							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Optional[Any]:
														super().setUp()

														# We have a SentencePiece fixture for testing
														lowerCAmelCase__	       =     XLNetTokenizer(snake_case__ ,   keep_accents=snake_case__       )
														tokenizer.sanitize_special_tokens()
														tokenizer.save_pretrained(self.tmpdirname       )







							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Union[str, Any]:
														lowerCAmelCase__	       =     "<s>"
														lowerCAmelCase__	       =     1

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







							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Tuple:
														lowerCAmelCase__	       =     list(self.get_tokenizer().get_vocab().keys()       )

														self.assertEqual(vocab_keys[0] ,   '''<unk>'''       )
														self.assertEqual(vocab_keys[1] ,   '''<s>'''       )
														self.assertEqual(vocab_keys[-1] ,   '''<eod>'''       )
														self.assertEqual(len(snake_case__       ) ,   10_06       )







							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Any:
														self.assertEqual(self.get_tokenizer().vocab_size ,   10_00       )







							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Optional[int]:
														lowerCAmelCase__	       =     XLNetTokenizer(snake_case__ ,   keep_accents=snake_case__       )

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

														self.assertListEqual(tokenizer.convert_tokens_to_ids(snake_case__       ) ,   [2_85, 46, 10, 1_70, 3_82]       )

														lowerCAmelCase__	       =     tokenizer.tokenize('''I was born in 92000, and this is falsé.'''       )
														self.assertListEqual(
														    snake_case__ ,   [
														        SPIECE_UNDERLINE + '''I''',
														        SPIECE_UNDERLINE + '''was''',
														        SPIECE_UNDERLINE + '''b''',
														        '''or''',
														        '''n''',
														        SPIECE_UNDERLINE + '''in''',
														        SPIECE_UNDERLINE + '''''',
														        '''9''',
														        '''2''',
														        '''0''',
														        '''0''',
														        '''0''',
														        ''',''',
														        SPIECE_UNDERLINE + '''and''',
														        SPIECE_UNDERLINE + '''this''',
														        SPIECE_UNDERLINE + '''is''',
														        SPIECE_UNDERLINE + '''f''',
														        '''al''',
														        '''s''',
														        '''é''',
														        '''.''',
														    ] ,   )
														lowerCAmelCase__	       =     tokenizer.convert_tokens_to_ids(snake_case__       )
														self.assertListEqual(snake_case__ ,   [8, 21, 84, 55, 24, 19, 7, 0, 6_02, 3_47, 3_47, 3_47, 3, 12, 66, 46, 72, 80, 6, 0, 4]       )

														lowerCAmelCase__	       =     tokenizer.convert_ids_to_tokens(snake_case__       )
														self.assertListEqual(
														    snake_case__ ,   [
														        SPIECE_UNDERLINE + '''I''',
														        SPIECE_UNDERLINE + '''was''',
														        SPIECE_UNDERLINE + '''b''',
														        '''or''',
														        '''n''',
														        SPIECE_UNDERLINE + '''in''',
														        SPIECE_UNDERLINE + '''''',
														        '''<unk>''',
														        '''2''',
														        '''0''',
														        '''0''',
														        '''0''',
														        ''',''',
														        SPIECE_UNDERLINE + '''and''',
														        SPIECE_UNDERLINE + '''this''',
														        SPIECE_UNDERLINE + '''is''',
														        SPIECE_UNDERLINE + '''f''',
														        '''al''',
														        '''s''',
														        '''<unk>''',
														        '''.''',
														    ] ,   )







							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Union[str, Any]:
														lowerCAmelCase__	       =     XLNetTokenizer(snake_case__ ,   do_lower_case=snake_case__       )
														lowerCAmelCase__	       =     tokenizer.tokenize('''I was born in 92000, and this is falsé.'''       )
														self.assertListEqual(
														    snake_case__ ,   [
														        SPIECE_UNDERLINE + '''''',
														        '''i''',
														        SPIECE_UNDERLINE + '''was''',
														        SPIECE_UNDERLINE + '''b''',
														        '''or''',
														        '''n''',
														        SPIECE_UNDERLINE + '''in''',
														        SPIECE_UNDERLINE + '''''',
														        '''9''',
														        '''2''',
														        '''0''',
														        '''0''',
														        '''0''',
														        ''',''',
														        SPIECE_UNDERLINE + '''and''',
														        SPIECE_UNDERLINE + '''this''',
														        SPIECE_UNDERLINE + '''is''',
														        SPIECE_UNDERLINE + '''f''',
														        '''al''',
														        '''se''',
														        '''.''',
														    ] ,   )
														self.assertListEqual(tokenizer.tokenize('''H\u00E9llo'''       ) ,   ['''▁he''', '''ll''', '''o''']       )







							def   __SCREAMING_SNAKE_CASE							(		self       )	->							int:
														lowerCAmelCase__	       =     XLNetTokenizer(snake_case__ ,   do_lower_case=snake_case__       )
														lowerCAmelCase__	       =     tokenizer.tokenize('''I was born in 92000, and this is falsé.'''       )
														self.assertListEqual(
														    snake_case__ ,   [
														        SPIECE_UNDERLINE + '''I''',
														        SPIECE_UNDERLINE + '''was''',
														        SPIECE_UNDERLINE + '''b''',
														        '''or''',
														        '''n''',
														        SPIECE_UNDERLINE + '''in''',
														        SPIECE_UNDERLINE + '''''',
														        '''9''',
														        '''2''',
														        '''0''',
														        '''0''',
														        '''0''',
														        ''',''',
														        SPIECE_UNDERLINE + '''and''',
														        SPIECE_UNDERLINE + '''this''',
														        SPIECE_UNDERLINE + '''is''',
														        SPIECE_UNDERLINE + '''f''',
														        '''al''',
														        '''se''',
														        '''.''',
														    ] ,   )







							@slow
							def   __SCREAMING_SNAKE_CASE							(		self       )	->							List[str]:
														lowerCAmelCase__	       =     XLNetTokenizer.from_pretrained('''xlnet-base-cased'''       )

														lowerCAmelCase__	       =     tokenizer.encode('''sequence builders''' ,   add_special_tokens=snake_case__       )
														lowerCAmelCase__	       =     tokenizer.encode('''multi-sequence build''' ,   add_special_tokens=snake_case__       )

														lowerCAmelCase__	       =     tokenizer.build_inputs_with_special_tokens(snake_case__       )
														lowerCAmelCase__	       =     tokenizer.build_inputs_with_special_tokens(snake_case__ ,   snake_case__       )

														assert encoded_sentence == text + [4, 3]
														assert encoded_pair == text + [4] + text_a + [4, 3]







							@slow
							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Optional[int]:
														lowerCAmelCase__	       =     {"input_ids": [[17, 2_14_42, 2_70, 17, 10, 1_46_45, 3_18, 34, 17, 45_46, 31_45, 7_87, 13, 77_52, 2_20_18, 23, 21, 17, 45_46, 31_45, 7_87, 13, 33_52, 1_44_31, 13, 55_00, 11, 11_76, 5_80, 13, 1_68_19, 47_97, 23, 17, 10, 1_71_35, 6_58, 19, 4_57, 79_32, 13, 1_84, 19, 31_54, 1_71_35, 64_68, 19, 14_04, 1_22_69, 19, 42_29, 53_56, 1_62_64, 46, 19, 17, 2_05_45, 1_03_95, 9, 9, 9, 11, 28, 64_21, 95_31, 2_07_29, 17, 10, 3_53, 1_70_22, 11, 21, 64_21, 95_31, 1_69_49, 17, 10, 1_15_09, 7_53, 11, 33, 95, 24_21, 73_85, 9_56, 1_44_31, 26_26, 25, 8_42, 73_85, 48_36, 21, 14_29, 22_72, 98_55, 31_20, 1_61, 2_47_38, 19, 1_32_03, 6_58, 2_18, 7_87, 21, 4_30, 1_84_82, 8_47, 26_37, 9, 4, 3], [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3_22, 2_21_78, 27, 10_64, 22, 9_56, 13, 1_11_01, 14_29, 58_54, 2_43_13, 1_89_53, 40, 4_22, 2_43_66, 68, 17_58, 37, 1_04_83, 1_42_57, 31, 2_07, 2_63, 21, 2_03, 37_73, 25, 71, 97_35, 9, 4, 3], [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 32, 20_49, 34_42, 17, 1_38_94, 33_80, 23, 95, 18, 1_76_34, 22_88, 9, 4, 3]], "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, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]], "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], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 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, 1, 1]]}  # noqa: E501
														# fmt: on

														self.tokenizer_integration_test_util(
														    expected_encoding=snake_case__ ,   model_name='''xlnet-base-cased''' ,   revision='''c841166438c31ec7ca9a106dee7bb312b73ae511''' ,   )



'''simple docstring'''






import unittest

from transformers import (
    MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
    TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
    TextClassificationPipeline,
    pipeline,
)
from transformers.testing_utils import is_pipeline_test, nested_simplify, require_tf, require_torch, slow

from .test_pipelines_common import ANY


# These 2 model types require different inputs than those of the usual text models.
__UpperCAmelCase       =							{'''LayoutLMv2Config''', '''LayoutLMv3Config'''}




@is_pipeline_test
class 		a__    (							unittest.TestCase  ):





							'''simple docstring'''






							lowercase__      :       Optional[Any]     						=				MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING
							lowercase__      :       List[Any]     						=				TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING

							if model_mapping is not None:
														lowercase__      :       Optional[Any]     						=				{config: model for config, model in model_mapping.items() if config.__name__ not in _TO_SKIP}
							if tf_model_mapping is not None:
														lowercase__      :       Tuple     						=				{
														    config: model for config, model in tf_model_mapping.items() if config.__name__ not in _TO_SKIP
														}







							@require_torch
							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Optional[int]:
														lowerCAmelCase__	       =     pipeline(
														    task='''text-classification''' ,   model='''hf-internal-testing/tiny-random-distilbert''' ,   framework='''pt'''       )

														lowerCAmelCase__	       =     text_classifier('''This is great !'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''LABEL_0''', '''score''': 0.504}]       )

														lowerCAmelCase__	       =     text_classifier('''This is great !''' ,   top_k=2       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''LABEL_0''', '''score''': 0.504}, {'''label''': '''LABEL_1''', '''score''': 0.496}]       )

														lowerCAmelCase__	       =     text_classifier(['''This is great !''', '''This is bad'''] ,   top_k=2       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [
														        [{'''label''': '''LABEL_0''', '''score''': 0.504}, {'''label''': '''LABEL_1''', '''score''': 0.496}],
														        [{'''label''': '''LABEL_0''', '''score''': 0.504}, {'''label''': '''LABEL_1''', '''score''': 0.496}],
														    ] ,   )

														lowerCAmelCase__	       =     text_classifier('''This is great !''' ,   top_k=1       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''LABEL_0''', '''score''': 0.504}]       )

														# Legacy behavior
														lowerCAmelCase__	       =     text_classifier('''This is great !''' ,   return_all_scores=lowerCamelCase_       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''LABEL_0''', '''score''': 0.504}]       )

														lowerCAmelCase__	       =     text_classifier('''This is great !''' ,   return_all_scores=lowerCamelCase_       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [[{'''label''': '''LABEL_0''', '''score''': 0.504}, {'''label''': '''LABEL_1''', '''score''': 0.496}]]       )

														lowerCAmelCase__	       =     text_classifier(['''This is great !''', '''Something else'''] ,   return_all_scores=lowerCamelCase_       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [
														        [{'''label''': '''LABEL_0''', '''score''': 0.504}, {'''label''': '''LABEL_1''', '''score''': 0.496}],
														        [{'''label''': '''LABEL_0''', '''score''': 0.504}, {'''label''': '''LABEL_1''', '''score''': 0.496}],
														    ] ,   )

														lowerCAmelCase__	       =     text_classifier(['''This is great !''', '''Something else'''] ,   return_all_scores=lowerCamelCase_       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [
														        {'''label''': '''LABEL_0''', '''score''': 0.504},
														        {'''label''': '''LABEL_0''', '''score''': 0.504},
														    ] ,   )







							@require_torch
							def   __SCREAMING_SNAKE_CASE							(		self       )	->							int:
														import torch

														lowerCAmelCase__	       =     pipeline(
														    task='''text-classification''' ,   model='''hf-internal-testing/tiny-random-distilbert''' ,   framework='''pt''' ,   device=torch.device('''cpu'''       ) ,   )

														lowerCAmelCase__	       =     text_classifier('''This is great !'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''LABEL_0''', '''score''': 0.504}]       )







							@require_tf
							def   __SCREAMING_SNAKE_CASE							(		self       )	->							str:
														lowerCAmelCase__	       =     pipeline(
														    task='''text-classification''' ,   model='''hf-internal-testing/tiny-random-distilbert''' ,   framework='''tf'''       )

														lowerCAmelCase__	       =     text_classifier('''This is great !'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''LABEL_0''', '''score''': 0.504}]       )







							@slow
							@require_torch
							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Dict:
														lowerCAmelCase__	       =     pipeline('''text-classification'''       )

														lowerCAmelCase__	       =     text_classifier('''This is great !'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''POSITIVE''', '''score''': 1.0}]       )
														lowerCAmelCase__	       =     text_classifier('''This is bad !'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''NEGATIVE''', '''score''': 1.0}]       )
														lowerCAmelCase__	       =     text_classifier('''Birds are a type of animal'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''POSITIVE''', '''score''': 0.988}]       )







							@slow
							@require_tf
							def   __SCREAMING_SNAKE_CASE							(		self       )	->							Optional[Any]:
														lowerCAmelCase__	       =     pipeline('''text-classification''' ,   framework='''tf'''       )

														lowerCAmelCase__	       =     text_classifier('''This is great !'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''POSITIVE''', '''score''': 1.0}]       )
														lowerCAmelCase__	       =     text_classifier('''This is bad !'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''NEGATIVE''', '''score''': 1.0}]       )
														lowerCAmelCase__	       =     text_classifier('''Birds are a type of animal'''       )
														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': '''POSITIVE''', '''score''': 0.988}]       )







							def   __SCREAMING_SNAKE_CASE							(		self ,   lowerCamelCase_ ,   lowerCamelCase_ ,   lowerCamelCase_       )	->							Tuple:
														lowerCAmelCase__	       =     TextClassificationPipeline(model=lowerCamelCase_ ,   tokenizer=lowerCamelCase_       )
														return text_classifier, ["HuggingFace is in", "This is another test"]







							def   __SCREAMING_SNAKE_CASE							(		self ,   lowerCamelCase_ ,   lowerCamelCase_       )	->							Union[str, Any]:
														lowerCAmelCase__	       =     text_classifier.model
														# Small inputs because BartTokenizer tiny has maximum position embeddings = 22
														lowerCAmelCase__	       =     '''HuggingFace is in'''
														lowerCAmelCase__	       =     text_classifier(lowerCamelCase_       )

														self.assertEqual(nested_simplify(lowerCamelCase_       ) ,   [{'''label''': ANY(lowerCamelCase_       ), '''score''': ANY(lowerCamelCase_       )}]       )
														self.assertTrue(outputs[0]['''label'''] in model.config.idalabel.values()       )

														lowerCAmelCase__	       =     ['''HuggingFace is in ''', '''Paris is in France''']
														lowerCAmelCase__	       =     text_classifier(lowerCamelCase_       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [{'''label''': ANY(lowerCamelCase_       ), '''score''': ANY(lowerCamelCase_       )}, {'''label''': ANY(lowerCamelCase_       ), '''score''': ANY(lowerCamelCase_       )}] ,   )
														self.assertTrue(outputs[0]['''label'''] in model.config.idalabel.values()       )
														self.assertTrue(outputs[1]['''label'''] in model.config.idalabel.values()       )

														# Forcing to get all results with `top_k=None`
														# This is NOT the legacy format
														lowerCAmelCase__	       =     text_classifier(lowerCamelCase_ ,   top_k=lowerCamelCase_       )
														lowerCAmelCase__	       =     len(model.config.idalabel.values()       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [[{'''label''': ANY(lowerCamelCase_       ), '''score''': ANY(lowerCamelCase_       )}] * N, [{'''label''': ANY(lowerCamelCase_       ), '''score''': ANY(lowerCamelCase_       )}] * N] ,   )

														lowerCAmelCase__	       =     {'''text''': '''HuggingFace is in ''', '''text_pair''': '''Paris is in France'''}
														lowerCAmelCase__	       =     text_classifier(lowerCamelCase_       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   {'''label''': ANY(lowerCamelCase_       ), '''score''': ANY(lowerCamelCase_       )} ,   )
														self.assertTrue(outputs['''label'''] in model.config.idalabel.values()       )

														# This might be used a text pair, but tokenizer + pipe interaction
														# makes it hard to understand that it's not using the pair properly
														# https://github.com/huggingface/transformers/issues/17305
														# We disabled this usage instead as it was outputting wrong outputs.
														lowerCAmelCase__	       =     [['''HuggingFace is in ''', '''Paris is in France''']]
														with self.assertRaises(lowerCamelCase_       ):
																					text_classifier(lowerCamelCase_       )

														# This used to be valid for doing text pairs
														# We're keeping it working because of backward compatibility
														lowerCAmelCase__	       =     text_classifier([[['''HuggingFace is in ''', '''Paris is in France''']]]       )
														self.assertEqual(
														    nested_simplify(lowerCamelCase_       ) ,   [{'''label''': ANY(lowerCamelCase_       ), '''score''': ANY(lowerCamelCase_       )}] ,   )
														self.assertTrue(outputs[0]['''label'''] in model.config.idalabel.values()       )