






"""simple docstring"""





from __future__ import annotations

import unittest
import warnings

from transformers import AutoTokenizer, MarianConfig, MarianTokenizer, TranslationPipeline, is_tf_available
from transformers.testing_utils import require_sentencepiece, require_tf, require_tokenizers, slow
from transformers.utils import cached_property

from ...test_configuration_common import ConfigTester
from ...test_modeling_tf_common import TFModelTesterMixin, ids_tensor
from ...test_pipeline_mixin import PipelineTesterMixin


if is_tf_available():
  import tensorflow as tf

  from transformers import TFAutoModelForSeqaSeqLM, TFMarianModel, TFMarianMTModel







@require_tf
class 						_a  :





   '''simple docstring'''






   UpperCamelCase__     	=							MarianConfig
   UpperCamelCase__     	=							{}
   UpperCamelCase__     	=							"""gelu"""





   def __init__(       self					, UpperCAmelCase_					, UpperCAmelCase_=13					, UpperCAmelCase_=7					, UpperCAmelCase_=True					, UpperCAmelCase_=False					, UpperCAmelCase_=99					, UpperCAmelCase_=32					, UpperCAmelCase_=2					, UpperCAmelCase_=4					, UpperCAmelCase_=37					, UpperCAmelCase_=0.1					, UpperCAmelCase_=0.1					, UpperCAmelCase_=20					, UpperCAmelCase_=2					, UpperCAmelCase_=1					, UpperCAmelCase_=0					, )			->   Optional[int]:




          '''simple docstring'''




          lowercase__:							Union[str, Any]         =     parent
          lowercase__:							List[Any]         =     batch_size
          lowercase__:							Tuple         =     seq_length
          lowercase__:							str         =     is_training
          lowercase__:							Any         =     use_labels
          lowercase__:							str         =     vocab_size
          lowercase__:							Dict         =     hidden_size
          lowercase__:							Union[str, Any]         =     num_hidden_layers
          lowercase__:							Any         =     num_attention_heads
          lowercase__:							Optional[Any]         =     intermediate_size

          lowercase__:							Optional[Any]         =     hidden_dropout_prob
          lowercase__:							List[Any]         =     attention_probs_dropout_prob
          lowercase__:							Dict         =     max_position_embeddings
          lowercase__:							Union[str, Any]         =     eos_token_id
          lowercase__:							Optional[Any]         =     pad_token_id
          lowercase__:							List[Any]         =     bos_token_id





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




          '''simple docstring'''




          lowercase__:							List[str]         =     ids_tensor([self.batch_size, self.seq_length - 1]					, self.vocab_size)
          lowercase__:							List[str]         =     tf.expand_dims(tf.constant([self.eos_token_id] * self.batch_size)					, 1)
          lowercase__:							int         =     tf.concat([input_ids, eos_tensor]					, axis=1)

          lowercase__:							int         =     ids_tensor([self.batch_size, self.seq_length]					, self.vocab_size)

          lowercase__:							List[Any]         =     self.config_cls(
              vocab_size=self.vocab_size					, d_model=self.hidden_size					, encoder_layers=self.num_hidden_layers					, decoder_layers=self.num_hidden_layers					, encoder_attention_heads=self.num_attention_heads					, decoder_attention_heads=self.num_attention_heads					, encoder_ffn_dim=self.intermediate_size					, decoder_ffn_dim=self.intermediate_size					, dropout=self.hidden_dropout_prob					, attention_dropout=self.attention_probs_dropout_prob					, max_position_embeddings=self.max_position_embeddings					, eos_token_ids=[2]					, bos_token_id=self.bos_token_id					, pad_token_id=self.pad_token_id					, decoder_start_token_id=self.pad_token_id					, **self.config_updates					, )
          lowercase__:							str         =     prepare_marian_inputs_dict(UpperCAmelCase_					, UpperCAmelCase_					, UpperCAmelCase_)
          return config, inputs_dict





   def __lowercase							(       self					, UpperCAmelCase_					, UpperCAmelCase_)			->   Optional[Any]:




          '''simple docstring'''




          lowercase__:							List[Any]         =     TFMarianModel(config=UpperCAmelCase_).get_decoder()
          lowercase__:							List[str]         =     inputs_dict["input_ids"]

          lowercase__:							Dict         =     input_ids[:1, :]
          lowercase__:							int         =     inputs_dict["attention_mask"][:1, :]
          lowercase__:							int         =     inputs_dict["head_mask"]
          lowercase__:							Tuple         =     1

          # first forward pass
          lowercase__:							Optional[Any]         =     model(UpperCAmelCase_					, attention_mask=UpperCAmelCase_					, head_mask=UpperCAmelCase_					, use_cache=UpperCAmelCase_)

          lowercase__    ,      lowercase__:							int         =     outputs.to_tuple()

          # create hypothetical next token and extent to next_input_ids
          lowercase__:							str         =     ids_tensor((self.batch_size, 3)					, config.vocab_size)
          lowercase__:							str         =     tf.cast(ids_tensor((self.batch_size, 3)					, 2)					, tf.inta)

          # append to next input_ids and
          lowercase__:							List[Any]         =     tf.concat([input_ids, next_tokens]					, axis=-1)
          lowercase__:							str         =     tf.concat([attention_mask, next_attn_mask]					, axis=-1)

          lowercase__:							Any         =     model(UpperCAmelCase_					, attention_mask=UpperCAmelCase_)[0]
          lowercase__:							Tuple         =     model(UpperCAmelCase_					, attention_mask=UpperCAmelCase_					, past_key_values=UpperCAmelCase_)[0]

          self.parent.assertEqual(next_tokens.shape[1]					, output_from_past.shape[1])

          # select random slice
          lowercase__:							Optional[Any]         =     int(ids_tensor((1,)					, output_from_past.shape[-1]))
          lowercase__:							List[str]         =     output_from_no_past[:, -3:, random_slice_idx]
          lowercase__:							Optional[int]         =     output_from_past[:, :, random_slice_idx]

          # test that outputs are equal for slice
          tf.debugging.assert_near(UpperCAmelCase_					, UpperCAmelCase_					, rtol=1E-3)







def 							A(    snake_case_		,  snake_case_		,  snake_case_		,  snake_case_=None		,  snake_case_=None		,  snake_case_=None		,  snake_case_=None		,  snake_case_=None		,  ):
       """simple docstring"""





       if attention_mask is None:
              lowercase__:							Optional[int]         =     tf.cast(tf.math.not_equal(snake_case_		,  config.pad_token_id						)		,  tf.inta						)
       if decoder_attention_mask is None:
              lowercase__:							Optional[Any]         =     tf.concat(
                  [
                      tf.ones(decoder_input_ids[:, :1].shape		,  dtype=tf.inta						),
                      tf.cast(tf.math.not_equal(decoder_input_ids[:, 1:]		,  config.pad_token_id						)		,  tf.inta						),
                  ]		,  axis=-1		,  )
       if head_mask is None:
              lowercase__:							str         =     tf.ones((config.encoder_layers, config.encoder_attention_heads)						)
       if decoder_head_mask is None:
              lowercase__:							Union[str, Any]         =     tf.ones((config.decoder_layers, config.decoder_attention_heads)						)
       if cross_attn_head_mask is None:
              lowercase__:							str         =     tf.ones((config.decoder_layers, config.decoder_attention_heads)						)
       return {
           "input_ids": input_ids,
           "decoder_input_ids": decoder_input_ids,
           "attention_mask": attention_mask,
           "decoder_attention_mask": decoder_attention_mask,
           "head_mask": head_mask,
           "decoder_head_mask": decoder_head_mask,
           "cross_attn_head_mask": cross_attn_head_mask,
       }







@require_tf
class 						_a  (		lowercase_							,	lowercase_							,	unittest.TestCase       ):





   '''simple docstring'''






   UpperCamelCase__     	=							(TFMarianMTModel, TFMarianModel) if is_tf_available() else ()
   UpperCamelCase__     	=							(TFMarianMTModel,) if is_tf_available() else ()
   UpperCamelCase__     	=							(
       {
           """conversational""": TFMarianMTModel,
           """feature-extraction""": TFMarianModel,
           """summarization""": TFMarianMTModel,
           """text2text-generation""": TFMarianMTModel,
           """translation""": TFMarianMTModel,
       }
       if is_tf_available()
       else {}
   )
   UpperCamelCase__     	=							True
   UpperCamelCase__     	=							False
   UpperCamelCase__     	=							False





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




          '''simple docstring'''




          lowercase__:							Tuple         =     TFMarianModelTester(self)
          lowercase__:							Dict         =     ConfigTester(self					, config_class=UpperCAmelCase_)





   def __lowercase							(       self)			->   Any:




          '''simple docstring'''




          self.config_tester.run_common_tests()





   def __lowercase							(       self)			->   int:




          '''simple docstring'''




          lowercase__:							List[Any]         =     self.model_tester.prepare_config_and_inputs_for_common()
          self.model_tester.check_decoder_model_past_large_inputs(*UpperCAmelCase_)







@require_tf
class 						_a  (		unittest.TestCase       ):





   '''simple docstring'''






   UpperCamelCase__     	=							1_000  # show more chars for failing integration tests





   @classmethod
   def __lowercase							(       cls)			->   None:




          '''simple docstring'''




          lowercase__:							Union[str, Any]         =     F"""Helsinki-NLP/opus-mt-{cls.src}-{cls.tgt}"""
          return cls





   @cached_property
   def __lowercase							(       self)			->   MarianTokenizer:




          '''simple docstring'''




          return AutoTokenizer.from_pretrained(self.model_name)





   @property
   def __lowercase							(       self)			->   int:




          '''simple docstring'''




          return self.tokenizer.eos_token_id





   @cached_property
   def __lowercase							(       self)			->   int:




          '''simple docstring'''




          warnings.simplefilter("error")
          lowercase__:							TFMarianMTModel         =     TFAutoModelForSeqaSeqLM.from_pretrained(self.model_name)
          assert isinstance(UpperCAmelCase_					, UpperCAmelCase_)
          lowercase__:							Optional[Any]         =     model.config
          self.assertListEqual(c.bad_words_ids					, [[c.pad_token_id]])
          self.assertEqual(c.max_length					, 512)
          self.assertEqual(c.decoder_start_token_id					, c.pad_token_id)
          return model





   def __lowercase							(       self					, **UpperCAmelCase_)			->   Tuple:




          '''simple docstring'''




          lowercase__:							List[str]         =     self.translate_src_text(**UpperCAmelCase_)
          self.assertListEqual(self.expected_text					, UpperCAmelCase_)





   def __lowercase							(       self					, **UpperCAmelCase_)			->   Union[str, Any]:




          '''simple docstring'''




          lowercase__:							int         =     self.tokenizer(self.src_text					, **UpperCAmelCase_					, padding=UpperCAmelCase_					, return_tensors="tf")
          lowercase__:							Optional[Any]         =     self.model.generate(
              model_inputs.input_ids					, attention_mask=model_inputs.attention_mask					, num_beams=2					, max_length=128)
          lowercase__:							Optional[Any]         =     self.tokenizer.batch_decode(generated_ids.numpy()					, skip_special_tokens=UpperCAmelCase_)
          return generated_words







@require_sentencepiece
@require_tokenizers
@require_tf
class 						_a  (		lowercase_       ):





   '''simple docstring'''






   UpperCamelCase__     	=							"""mt"""
   UpperCamelCase__     	=							"""en"""
   UpperCamelCase__     	=							["""Billi messu b'mod ġentili, Ġesù fejjaq raġel li kien milqut bil - marda kerha tal - ġdiem."""]
   UpperCamelCase__     	=							["""Touching gently, Jesus healed a man who was affected by the sad disease of leprosy."""]





   @unittest.skip("Skipping until #12647 is resolved.")
   @slow
   def __lowercase							(       self)			->   List[Any]:




          '''simple docstring'''




          self._assert_generated_batch_equal_expected()







@require_sentencepiece
@require_tokenizers
@require_tf
class 						_a  (		lowercase_       ):





   '''simple docstring'''






   UpperCamelCase__     	=							"""en"""
   UpperCamelCase__     	=							"""zh"""
   UpperCamelCase__     	=							["""My name is Wolfgang and I live in Berlin"""]
   UpperCamelCase__     	=							["""我叫沃尔夫冈 我住在柏林"""]





   @unittest.skip("Skipping until #12647 is resolved.")
   @slow
   def __lowercase							(       self)			->   List[str]:




          '''simple docstring'''




          self._assert_generated_batch_equal_expected()







@require_sentencepiece
@require_tokenizers
@require_tf
class 						_a  (		lowercase_       ):





   '''simple docstring'''






   UpperCamelCase__     	=							"""en"""
   UpperCamelCase__     	=							"""ROMANCE"""
   UpperCamelCase__     	=							[
       """>>fr<< Don't spend so much time watching TV.""",
       """>>pt<< Your message has been sent.""",
       """>>es<< He's two years older than me.""",
   ]
   UpperCamelCase__     	=							[
       """Ne passez pas autant de temps à regarder la télé.""",
       """A sua mensagem foi enviada.""",
       """Es dos años más viejo que yo.""",
   ]





   @unittest.skip("Skipping until #12647 is resolved.")
   @slow
   def __lowercase							(       self)			->   Optional[Any]:




          '''simple docstring'''




          self._assert_generated_batch_equal_expected()





   @unittest.skip("Skipping until #12647 is resolved.")
   @slow
   def __lowercase							(       self)			->   Optional[Any]:




          '''simple docstring'''




          lowercase__:							Any         =     TranslationPipeline(self.model					, self.tokenizer					, framework="tf")
          lowercase__:							Optional[int]         =     pipeline(self.src_text)
          self.assertEqual(self.expected_text					, [x["translation_text"] for x in output])













from __future__ import annotations

import unittest

from transformers import is_tf_available
from transformers.testing_utils import require_tf, slow

from ...test_configuration_common import ConfigTester
from ...test_modeling_tf_common import TFModelTesterMixin, ids_tensor, random_attention_mask
from ...test_pipeline_mixin import PipelineTesterMixin


if is_tf_available():
    import tensorflow as tf

    from transformers import (
        TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFXLMForMultipleChoice,
        TFXLMForQuestionAnsweringSimple,
        TFXLMForSequenceClassification,
        TFXLMForTokenClassification,
        TFXLMModel,
        TFXLMWithLMHeadModel,
        XLMConfig,
    )







class 		_lowerCAmelCase:

  """simple docstring"""







  def __init__(   self    ,							UpperCAmelCase    ,							)->   List[Any]:
     __A    =  parent
     __A    =  13
     __A    =  7
     __A    =  True
     __A    =  True
     __A    =  True
     __A    =  True
     __A    =  True
     __A    =  False
     __A    =  False
     __A    =  False
     __A    =  2
     __A    =  99
     __A    =  0
     __A    =  32
     __A    =  2
     __A    =  4
     __A    =  0.1
     __A    =  0.1
     __A    =  5_12
     __A    =  16
     __A    =  2
     __A    =  0.02
     __A    =  3
     __A    =  4
     __A    =  '''last'''
     __A    =  True
     __A    =  None
     __A    =  0

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Optional[Any]:
     __A    =  ids_tensor([self.batch_size, self.seq_length]    ,							self.vocab_size      )
     __A    =  random_attention_mask([self.batch_size, self.seq_length]    ,							dtype=tf.floataa      )

     __A    =  None
     if self.use_input_lengths:
        __A    =  (
            ids_tensor([self.batch_size]    ,							vocab_size=2      ) + self.seq_length - 2
        )  # small variation of seq_length

     __A    =  None
     if self.use_token_type_ids:
        __A    =  ids_tensor([self.batch_size, self.seq_length]    ,							self.n_langs      )

     __A    =  None
     __A    =  None
     __A    =  None
     if self.use_labels:
        __A    =  ids_tensor([self.batch_size]    ,							self.type_sequence_label_size      )
        __A    =  ids_tensor([self.batch_size, self.seq_length]    ,							self.num_labels      )
        __A    =  ids_tensor([self.batch_size]    ,							2    ,							dtype=tf.floataa      )
        __A    =  ids_tensor([self.batch_size]    ,							self.num_choices      )

     __A    =  XLMConfig(
         vocab_size=self.vocab_size    ,							n_special=self.n_special    ,							emb_dim=self.hidden_size    ,							n_layers=self.num_hidden_layers    ,							n_heads=self.num_attention_heads    ,							dropout=self.hidden_dropout_prob    ,							attention_dropout=self.attention_probs_dropout_prob    ,							gelu_activation=self.gelu_activation    ,							sinusoidal_embeddings=self.sinusoidal_embeddings    ,							asm=self.asm    ,							causal=self.causal    ,							n_langs=self.n_langs    ,							max_position_embeddings=self.max_position_embeddings    ,							initializer_range=self.initializer_range    ,							summary_type=self.summary_type    ,							use_proj=self.use_proj    ,							bos_token_id=self.bos_token_id    ,							)

     return (
         config,
         input_ids,
         token_type_ids,
         input_lengths,
         sequence_labels,
         token_labels,
         is_impossible_labels,
         choice_labels,
         input_mask,
     )

  def 						SCREAMING_SNAKE_CASE__			(   self    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							)->   Optional[Any]:
     __A    =  TFXLMModel(config=UpperCAmelCase      )
     __A    =  {'''input_ids''': input_ids, '''lengths''': input_lengths, '''langs''': token_type_ids}
     __A    =  model(UpperCAmelCase      )

     __A    =  [input_ids, input_mask]
     __A    =  model(UpperCAmelCase      )
     self.parent.assertEqual(result.last_hidden_state.shape    ,							(self.batch_size, self.seq_length, self.hidden_size)      )

  def 						SCREAMING_SNAKE_CASE__			(   self    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							)->   Tuple:
     __A    =  TFXLMWithLMHeadModel(UpperCAmelCase      )

     __A    =  {'''input_ids''': input_ids, '''lengths''': input_lengths, '''langs''': token_type_ids}
     __A    =  model(UpperCAmelCase      )

     __A    =  outputs

     self.parent.assertEqual(result.logits.shape    ,							(self.batch_size, self.seq_length, self.vocab_size)      )

  def 						SCREAMING_SNAKE_CASE__			(   self    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							)->   Dict:
     __A    =  TFXLMForQuestionAnsweringSimple(UpperCAmelCase      )

     __A    =  {'''input_ids''': input_ids, '''lengths''': input_lengths}

     __A    =  model(UpperCAmelCase      )

     self.parent.assertEqual(result.start_logits.shape    ,							(self.batch_size, self.seq_length)      )
     self.parent.assertEqual(result.end_logits.shape    ,							(self.batch_size, self.seq_length)      )

  def 						SCREAMING_SNAKE_CASE__			(   self    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							)->   Union[str, Any]:
     __A    =  TFXLMForSequenceClassification(UpperCAmelCase      )

     __A    =  {'''input_ids''': input_ids, '''lengths''': input_lengths}

     __A    =  model(UpperCAmelCase      )

     self.parent.assertEqual(result.logits.shape    ,							(self.batch_size, self.type_sequence_label_size)      )

  def 						SCREAMING_SNAKE_CASE__			(   self    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							)->   Tuple:
     __A    =  self.num_labels
     __A    =  TFXLMForTokenClassification(config=UpperCAmelCase      )
     __A    =  {'''input_ids''': input_ids, '''attention_mask''': input_mask, '''token_type_ids''': token_type_ids}
     __A    =  model(UpperCAmelCase      )
     self.parent.assertEqual(result.logits.shape    ,							(self.batch_size, self.seq_length, self.num_labels)      )

  def 						SCREAMING_SNAKE_CASE__			(   self    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							)->   Union[str, Any]:
     __A    =  self.num_choices
     __A    =  TFXLMForMultipleChoice(config=UpperCAmelCase      )
     __A    =  tf.tile(tf.expand_dims(UpperCAmelCase    ,							1      )    ,							(1, self.num_choices, 1)      )
     __A    =  tf.tile(tf.expand_dims(UpperCAmelCase    ,							1      )    ,							(1, self.num_choices, 1)      )
     __A    =  tf.tile(tf.expand_dims(UpperCAmelCase    ,							1      )    ,							(1, self.num_choices, 1)      )
     __A    =  {
         '''input_ids''': multiple_choice_inputs_ids,
         '''attention_mask''': multiple_choice_input_mask,
         '''token_type_ids''': multiple_choice_token_type_ids,
     }
     __A    =  model(UpperCAmelCase      )
     self.parent.assertEqual(result.logits.shape    ,							(self.batch_size, self.num_choices)      )





  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Optional[Any]:
     __A    =  self.prepare_config_and_inputs()
     (
         (
         __A
     )   ,		(
         __A
     )   ,		(
         __A
     )   ,		(
         __A
     )   ,		(
         __A
     )   ,		(
         __A
     )   ,		(
         __A
     )   ,		(
         __A
     )   ,		(
         __A
     )   ,		
     )    =  config_and_inputs
     __A    =  {
         '''input_ids''': input_ids,
         '''token_type_ids''': token_type_ids,
         '''langs''': token_type_ids,
         '''lengths''': input_lengths,
     }
     return config, inputs_dict







@require_tf
class 		_lowerCAmelCase(		_a						,       _a						,       unittest.TestCase):

  """simple docstring"""







  lowerCamelCase__     	=       (
      (
          TFXLMModel,
          TFXLMWithLMHeadModel,
          TFXLMForSequenceClassification,
          TFXLMForQuestionAnsweringSimple,
          TFXLMForTokenClassification,
          TFXLMForMultipleChoice,
      )
      if is_tf_available()
      else ()
  )
  lowerCamelCase__     	=       (
      (TFXLMWithLMHeadModel,) if is_tf_available() else ()
  )  # TODO (PVP): Check other models whether language generation is also applicable
  lowerCamelCase__     	=       (
      {
          '''feature-extraction''': TFXLMModel,
          '''fill-mask''': TFXLMWithLMHeadModel,
          '''question-answering''': TFXLMForQuestionAnsweringSimple,
          '''text-classification''': TFXLMForSequenceClassification,
          '''text-generation''': TFXLMWithLMHeadModel,
          '''token-classification''': TFXLMForTokenClassification,
          '''zero-shot''': TFXLMForSequenceClassification,
      }
      if is_tf_available()
      else {}
  )
  lowerCamelCase__     	=       False
  lowerCamelCase__     	=       False

  def 						SCREAMING_SNAKE_CASE__			(   self    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase    ,							UpperCAmelCase      )->   List[Any]:
     if (
         pipeline_test_casse_name == "QAPipelineTests"
         and tokenizer_name is not None
         and not tokenizer_name.endswith('''Fast'''      )
     ):
        # `QAPipelineTests` fails for a few models when the slower tokenizer are used.
        # (The slower tokenizers were never used for pipeline tests before the pipeline testing rework)
        # TODO: check (and possibly fix) the `QAPipelineTests` with slower tokenizer
        return True

     return False

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Any:
     __A    =  TFXLMModelTester(self      )
     __A    =  ConfigTester(self    ,							config_class=UpperCAmelCase    ,							emb_dim=37      )

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   List[str]:
     self.config_tester.run_common_tests()

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Any:
     __A    =  self.model_tester.prepare_config_and_inputs()
     self.model_tester.create_and_check_xlm_model(*UpperCAmelCase      )

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Any:
     __A    =  self.model_tester.prepare_config_and_inputs()
     self.model_tester.create_and_check_xlm_lm_head(*UpperCAmelCase      )

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   List[Any]:
     __A    =  self.model_tester.prepare_config_and_inputs()
     self.model_tester.create_and_check_xlm_qa(*UpperCAmelCase      )

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Any:
     __A    =  self.model_tester.prepare_config_and_inputs()
     self.model_tester.create_and_check_xlm_sequence_classif(*UpperCAmelCase      )

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Tuple:
     __A    =  self.model_tester.prepare_config_and_inputs()
     self.model_tester.create_and_check_xlm_for_token_classification(*UpperCAmelCase      )

  def 						SCREAMING_SNAKE_CASE__			(   self      )->   int:
     __A    =  self.model_tester.prepare_config_and_inputs()
     self.model_tester.create_and_check_xlm_for_multiple_choice(*UpperCAmelCase      )





  @slow
  def 						SCREAMING_SNAKE_CASE__			(   self      )->   Optional[int]:
     for model_name in TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
        __A    =  TFXLMModel.from_pretrained(UpperCAmelCase      )
        self.assertIsNotNone(UpperCAmelCase      )







@require_tf
class 		_lowerCAmelCase(		unittest.TestCase):

  """simple docstring"""







  @slow
  def 						SCREAMING_SNAKE_CASE__			(   self      )->   int:
     __A    =  TFXLMWithLMHeadModel.from_pretrained('''xlm-mlm-en-2048'''      )
     __A    =  tf.convert_to_tensor([[14, 4_47]]    ,							dtype=tf.intaa      )  # the president
     __A    =  [
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
         14,
         4_47,
     ]  # the president the president the president the president the president the president the president the president the president the president
     # TODO(PVP): this and other input_ids I tried for generation give pretty bad results. Not sure why. Model might just not be made for auto-regressive inference
     __A    =  model.generate(UpperCAmelCase    ,							do_sample=UpperCAmelCase      )
     self.assertListEqual(output_ids[0].numpy().tolist()    ,							UpperCAmelCase      )

