
import tempfile

import torch

from diffusers import PNDMScheduler

from .test_schedulers import SchedulerCommonTest

class __snake_case		(      lowerCAmelCase     ):
    _a		:						str=				(PNDMScheduler,)
    _a		:						List[Any]=				(("num_inference_steps", 50),)
    def       _SCREAMING_SNAKE_CASE       (  self		,**snake_case      ):



           '''simple docstring'''







           lowercase							:     Dict       	=      {
               """num_train_timesteps""": 1000,
               """beta_start""": 0.0_001,
               """beta_end""": 0.02,
               """beta_schedule""": """linear""",
           }

           config.update(**snake_case      )
           return config
    def       _SCREAMING_SNAKE_CASE       (  self		,snake_case=0		,**snake_case      ):



           '''simple docstring'''







           lowercase							:     Union[str, Any]       	=      dict(self.forward_default_kwargs      )
           lowercase							:     List[str]       	=      kwargs.pop("""num_inference_steps"""		,snake_case      )
           lowercase							:     Optional[Any]       	=      self.dummy_sample
           lowercase							:     Optional[int]       	=      0.1 * sample
           lowercase							:     Dict       	=      [residual + 0.2, residual + 0.15, residual + 0.1, residual + 0.05]

           for scheduler_class in self.scheduler_classes:
                  lowercase							:     str       	=      self.get_scheduler_config(**snake_case      )
                  lowercase							:     Union[str, Any]       	=      scheduler_class(**snake_case      )
                  scheduler.set_timesteps(snake_case      )
                  # copy over dummy past residuals
                  lowercase							:     Dict       	=      dummy_past_residuals[:]

                  with tempfile.TemporaryDirectory() as tmpdirname:
                         scheduler.save_config(snake_case      )
                         lowercase							:     str       	=      scheduler_class.from_pretrained(snake_case      )
                         new_scheduler.set_timesteps(snake_case      )
                         # copy over dummy past residuals
                         lowercase							:     Dict       	=      dummy_past_residuals[:]

                  lowercase							:     Optional[int]       	=      scheduler.step_prk(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample
                  lowercase							:     Tuple       	=      new_scheduler.step_prk(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample

                  assert torch.sum(torch.abs(output - new_output      )      ) < 1e-5, "Scheduler outputs are not identical"

                  lowercase							:     Tuple       	=      scheduler.step_plms(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample
                  lowercase							:     Union[str, Any]       	=      new_scheduler.step_plms(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample

                  assert torch.sum(torch.abs(output - new_output      )      ) < 1e-5, "Scheduler outputs are not identical"
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           pass
    def       _SCREAMING_SNAKE_CASE       (  self		,snake_case=0		,**snake_case      ):



           '''simple docstring'''







           lowercase							:     int       	=      dict(self.forward_default_kwargs      )
           lowercase							:     int       	=      kwargs.pop("""num_inference_steps"""		,snake_case      )
           lowercase							:     Dict       	=      self.dummy_sample
           lowercase							:     Dict       	=      0.1 * sample
           lowercase							:     Any       	=      [residual + 0.2, residual + 0.15, residual + 0.1, residual + 0.05]

           for scheduler_class in self.scheduler_classes:
                  lowercase							:     Optional[Any]       	=      self.get_scheduler_config()
                  lowercase							:     Tuple       	=      scheduler_class(**snake_case      )
                  scheduler.set_timesteps(snake_case      )

                  # copy over dummy past residuals (must be after setting timesteps)
                  lowercase							:     Any       	=      dummy_past_residuals[:]

                  with tempfile.TemporaryDirectory() as tmpdirname:
                         scheduler.save_config(snake_case      )
                         lowercase							:     Any       	=      scheduler_class.from_pretrained(snake_case      )
                         # copy over dummy past residuals
                         new_scheduler.set_timesteps(snake_case      )

                         # copy over dummy past residual (must be after setting timesteps)
                         lowercase							:     str       	=      dummy_past_residuals[:]

                  lowercase							:     List[Any]       	=      scheduler.step_prk(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample
                  lowercase							:     List[str]       	=      new_scheduler.step_prk(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample

                  assert torch.sum(torch.abs(output - new_output      )      ) < 1e-5, "Scheduler outputs are not identical"

                  lowercase							:     Any       	=      scheduler.step_plms(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample
                  lowercase							:     Optional[int]       	=      new_scheduler.step_plms(snake_case		,snake_case		,snake_case		,**snake_case      ).prev_sample

                  assert torch.sum(torch.abs(output - new_output      )      ) < 1e-5, "Scheduler outputs are not identical"
    def       _SCREAMING_SNAKE_CASE       (  self		,**snake_case      ):



           '''simple docstring'''







           lowercase							:     Optional[Any]       	=      self.scheduler_classes[0]
           lowercase							:     Tuple       	=      self.get_scheduler_config(**snake_case      )
           lowercase							:     str       	=      scheduler_class(**snake_case      )

           lowercase							:     Tuple       	=      10
           lowercase							:     Union[str, Any]       	=      self.dummy_model()
           lowercase							:     List[Any]       	=      self.dummy_sample_deter
           scheduler.set_timesteps(snake_case      )

           for i, t in enumerate(scheduler.prk_timesteps      ):
                  lowercase							:     Tuple       	=      model(snake_case		,snake_case      )
                  lowercase							:     int       	=      scheduler.step_prk(snake_case		,snake_case		,snake_case      ).prev_sample

           for i, t in enumerate(scheduler.plms_timesteps      ):
                  lowercase							:     List[Any]       	=      model(snake_case		,snake_case      )
                  lowercase							:     Optional[int]       	=      scheduler.step_plms(snake_case		,snake_case		,snake_case      ).prev_sample

           return sample
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     List[str]       	=      dict(self.forward_default_kwargs      )

           lowercase							:     Tuple       	=      kwargs.pop("""num_inference_steps"""		,snake_case      )

           for scheduler_class in self.scheduler_classes:
                  lowercase							:     List[str]       	=      self.get_scheduler_config()
                  lowercase							:     Optional[int]       	=      scheduler_class(**snake_case      )

                  lowercase							:     Optional[Any]       	=      self.dummy_sample
                  lowercase							:     List[str]       	=      0.1 * sample

                  if num_inference_steps is not None and hasattr(snake_case		,"""set_timesteps"""      ):
                         scheduler.set_timesteps(snake_case      )
                  elif num_inference_steps is not None and not hasattr(snake_case		,"""set_timesteps"""      ):
                         lowercase							:     Optional[Any]       	=      num_inference_steps

                  # copy over dummy past residuals (must be done after set_timesteps)
                  lowercase							:     Tuple       	=      [residual + 0.2, residual + 0.15, residual + 0.1, residual + 0.05]
                  lowercase							:     Optional[Any]       	=      dummy_past_residuals[:]

                  lowercase							:     Tuple       	=      scheduler.step_prk(snake_case		,0		,snake_case		,**snake_case      ).prev_sample
                  lowercase							:     Union[str, Any]       	=      scheduler.step_prk(snake_case		,1		,snake_case		,**snake_case      ).prev_sample

                  self.assertEqual(output_a.shape		,sample.shape      )
                  self.assertEqual(output_a.shape		,output_a.shape      )

                  lowercase							:     List[str]       	=      scheduler.step_plms(snake_case		,0		,snake_case		,**snake_case      ).prev_sample
                  lowercase							:     Any       	=      scheduler.step_plms(snake_case		,1		,snake_case		,**snake_case      ).prev_sample

                  self.assertEqual(output_a.shape		,sample.shape      )
                  self.assertEqual(output_a.shape		,output_a.shape      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for timesteps in [100, 1000]:
                  self.check_over_configs(num_train_timesteps=snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for steps_offset in [0, 1]:
                  self.check_over_configs(steps_offset=snake_case      )

           lowercase							:     Optional[Any]       	=      self.scheduler_classes[0]
           lowercase							:     Optional[Any]       	=      self.get_scheduler_config(steps_offset=1      )
           lowercase							:     Optional[int]       	=      scheduler_class(**snake_case      )
           scheduler.set_timesteps(10      )
           assert torch.equal(
               scheduler.timesteps		,torch.LongTensor(
                   [901, 851, 851, 801, 801, 751, 751, 701, 701, 651, 651, 601, 601, 501, 401, 301, 201, 101, 1]      )		,)
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for beta_start, beta_end in zip([0.0_001, 0.001]		,[0.002, 0.02]      ):
                  self.check_over_configs(beta_start=snake_case		,beta_end=snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for schedule in ["linear", "squaredcos_cap_v2"]:
                  self.check_over_configs(beta_schedule=snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for prediction_type in ["epsilon", "v_prediction"]:
                  self.check_over_configs(prediction_type=snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for t in [1, 5, 10]:
                  self.check_over_forward(time_step=snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for t, num_inference_steps in zip([1, 5, 10]		,[10, 50, 100]      ):
                  self.check_over_forward(num_inference_steps=snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Union[str, Any]       	=      27

           for scheduler_class in self.scheduler_classes:
                  lowercase							:     List[str]       	=      self.dummy_sample
                  lowercase							:     Dict       	=      0.1 * sample

                  lowercase							:     Any       	=      self.get_scheduler_config()
                  lowercase							:     int       	=      scheduler_class(**snake_case      )

                  scheduler.set_timesteps(snake_case      )

                  # before power of 3 fix, would error on first step, so we only need to do two
                  for i, t in enumerate(scheduler.prk_timesteps[:2]      ):
                         lowercase							:     int       	=      scheduler.step_prk(snake_case		,snake_case		,snake_case      ).prev_sample
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           with self.assertRaises(snake_case      ):
                  lowercase							:     List[Any]       	=      self.scheduler_classes[0]
                  lowercase							:     int       	=      self.get_scheduler_config()
                  lowercase							:     List[Any]       	=      scheduler_class(**snake_case      )

                  scheduler.step_plms(self.dummy_sample		,1		,self.dummy_sample      ).prev_sample
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Optional[int]       	=      self.full_loop()
           lowercase							:     Optional[Any]       	=      torch.sum(torch.abs(snake_case      )      )
           lowercase							:     str       	=      torch.mean(torch.abs(snake_case      )      )

           assert abs(result_sum.item() - 198.1_318      ) < 1e-2
           assert abs(result_mean.item() - 0.2_580      ) < 1e-3
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     List[str]       	=      self.full_loop(prediction_type="""v_prediction"""      )
           lowercase							:     str       	=      torch.sum(torch.abs(snake_case      )      )
           lowercase							:     Optional[int]       	=      torch.mean(torch.abs(snake_case      )      )

           assert abs(result_sum.item() - 67.3_986      ) < 1e-2
           assert abs(result_mean.item() - 0.0_878      ) < 1e-3
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Tuple       	=      self.full_loop(set_alpha_to_one=snake_case		,beta_start=0.01      )
           lowercase							:     Optional[int]       	=      torch.sum(torch.abs(snake_case      )      )
           lowercase							:     Union[str, Any]       	=      torch.mean(torch.abs(snake_case      )      )

           assert abs(result_sum.item() - 230.0_399      ) < 1e-2
           assert abs(result_mean.item() - 0.2_995      ) < 1e-3
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Any       	=      self.full_loop(set_alpha_to_one=snake_case		,beta_start=0.01      )
           lowercase							:     str       	=      torch.sum(torch.abs(snake_case      )      )
           lowercase							:     Any       	=      torch.mean(torch.abs(snake_case      )      )

           assert abs(result_sum.item() - 186.9_482      ) < 1e-2
           assert abs(result_mean.item() - 0.2_434      ) < 1e-3


from __future__ import annotations

import unittest

from transformers import is_tf_available
from transformers.testing_utils import require_sentencepiece, require_tf, require_tokenizers, 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 numpy as np
  import tensorflow as tf

  from transformers import (
      TF_FLAUBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
      FlaubertConfig,
      TFFlaubertForMultipleChoice,
      TFFlaubertForQuestionAnsweringSimple,
      TFFlaubertForSequenceClassification,
      TFFlaubertForTokenClassification,
      TFFlaubertModel,
      TFFlaubertWithLMHeadModel,
  )

class __snake_case		:
    def __init__(  self		,snake_case		,):



           '''simple docstring'''







           lowercase							:     Any       	=      parent
           lowercase							:     Tuple       	=      13
           lowercase							:     str       	=      7
           lowercase							:     Dict       	=      True
           lowercase							:     Dict       	=      True
           lowercase							:     str       	=      True
           lowercase							:     List[str]       	=      True
           lowercase							:     int       	=      True
           lowercase							:     Union[str, Any]       	=      False
           lowercase							:     Dict       	=      False
           lowercase							:     List[Any]       	=      False
           lowercase							:     List[Any]       	=      2
           lowercase							:     Optional[Any]       	=      99
           lowercase							:     int       	=      0
           lowercase							:     Tuple       	=      32
           lowercase							:     int       	=      2
           lowercase							:     Tuple       	=      4
           lowercase							:     List[Any]       	=      0.1
           lowercase							:     Tuple       	=      0.1
           lowercase							:     List[Any]       	=      512
           lowercase							:     int       	=      16
           lowercase							:     Dict       	=      2
           lowercase							:     int       	=      0.02
           lowercase							:     Union[str, Any]       	=      3
           lowercase							:     Any       	=      4
           lowercase							:     List[Any]       	=      """last"""
           lowercase							:     Tuple       	=      True
           lowercase							:     List[Any]       	=      None
           lowercase							:     Any       	=      0
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     List[Any]       	=      ids_tensor([self.batch_size, self.seq_length]		,self.vocab_size      )
           lowercase							:     List[str]       	=      random_attention_mask([self.batch_size, self.seq_length]		,dtype=tf.floataa      )

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

           lowercase							:     Tuple       	=      None
           if self.use_token_type_ids:
                  lowercase							:     Optional[int]       	=      ids_tensor([self.batch_size, self.seq_length]		,self.n_langs      )

           lowercase							:     List[str]       	=      None
           lowercase							:     List[str]       	=      None
           lowercase							:     Optional[Any]       	=      None
           if self.use_labels:
                  lowercase							:     List[str]       	=      ids_tensor([self.batch_size]		,self.type_sequence_label_size      )
                  lowercase							:     List[str]       	=      ids_tensor([self.batch_size, self.seq_length]		,self.num_labels      )
                  lowercase							:     str       	=      ids_tensor([self.batch_size]		,2		,dtype=tf.floataa      )
                  lowercase							:     Optional[Any]       	=      ids_tensor([self.batch_size]		,self.num_choices      )

           lowercase							:     str       	=      FlaubertConfig(
               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		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,):



           '''simple docstring'''







           lowercase							:     Tuple       	=      TFFlaubertModel(config=snake_case      )
           lowercase							:     str       	=      {"""input_ids""": input_ids, """lengths""": input_lengths, """langs""": token_type_ids}
           lowercase							:     Optional[Any]       	=      model(snake_case      )

           lowercase							:     List[Any]       	=      [input_ids, input_mask]
           lowercase							:     int       	=      model(snake_case      )
           self.parent.assertEqual(result.last_hidden_state.shape		,(self.batch_size, self.seq_length, self.hidden_size)      )
    def       _SCREAMING_SNAKE_CASE       (  self		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,):



           '''simple docstring'''







           lowercase							:     List[Any]       	=      TFFlaubertWithLMHeadModel(snake_case      )

           lowercase							:     Optional[Any]       	=      {"""input_ids""": input_ids, """lengths""": input_lengths, """langs""": token_type_ids}
           lowercase							:     int       	=      model(snake_case      )

           self.parent.assertEqual(result.logits.shape		,(self.batch_size, self.seq_length, self.vocab_size)      )
    def       _SCREAMING_SNAKE_CASE       (  self		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,):



           '''simple docstring'''







           lowercase							:     Tuple       	=      TFFlaubertForQuestionAnsweringSimple(snake_case      )

           lowercase							:     Union[str, Any]       	=      {"""input_ids""": input_ids, """lengths""": input_lengths}

           lowercase							:     Tuple       	=      model(snake_case      )

           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		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,):



           '''simple docstring'''







           lowercase							:     Union[str, Any]       	=      TFFlaubertForSequenceClassification(snake_case      )

           lowercase							:     str       	=      {"""input_ids""": input_ids, """lengths""": input_lengths}

           lowercase							:     str       	=      model(snake_case      )

           self.parent.assertEqual(result.logits.shape		,(self.batch_size, self.type_sequence_label_size)      )
    def       _SCREAMING_SNAKE_CASE       (  self		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,):



           '''simple docstring'''







           lowercase							:     Any       	=      self.num_labels
           lowercase							:     List[str]       	=      TFFlaubertForTokenClassification(config=snake_case      )
           lowercase							:     Dict       	=      {"""input_ids""": input_ids, """attention_mask""": input_mask, """token_type_ids""": token_type_ids}
           lowercase							:     int       	=      model(snake_case      )
           self.parent.assertEqual(result.logits.shape		,(self.batch_size, self.seq_length, self.num_labels)      )
    def       _SCREAMING_SNAKE_CASE       (  self		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case		,):



           '''simple docstring'''







           lowercase							:     Any       	=      self.num_choices
           lowercase							:     Dict       	=      TFFlaubertForMultipleChoice(config=snake_case      )
           lowercase							:     Any       	=      tf.tile(tf.expand_dims(snake_case		,1      )		,(1, self.num_choices, 1)      )
           lowercase							:     Optional[Any]       	=      tf.tile(tf.expand_dims(snake_case		,1      )		,(1, self.num_choices, 1)      )
           lowercase							:     Dict       	=      tf.tile(tf.expand_dims(snake_case		,1      )		,(1, self.num_choices, 1)      )
           lowercase							:     Union[str, Any]       	=      {
               """input_ids""": multiple_choice_inputs_ids,
               """attention_mask""": multiple_choice_input_mask,
               """token_type_ids""": multiple_choice_token_type_ids,
           }
           lowercase							:     int       	=      model(snake_case      )
           self.parent.assertEqual(result.logits.shape		,(self.batch_size, self.num_choices)      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Any       	=      self.prepare_config_and_inputs()
           (
               (
               lowercase
           )	,			(
               lowercase
           )	,			(
               lowercase
           )	,			(
               lowercase
           )	,			(
               lowercase
           )	,			(
               lowercase
           )	,			(
               lowercase
           )	,			(
               lowercase
           )	,			(
               lowercase
           )	,			
           )							:     int       	=      config_and_inputs
           lowercase							:     List[str]       	=      {
               """input_ids""": input_ids,
               """token_type_ids""": token_type_ids,
               """langs""": token_type_ids,
               """lengths""": input_lengths,
           }
           return config, inputs_dict






@require_tf
class __snake_case		(      lowerCAmelCase					,	lowerCAmelCase					,	unittest.TestCase     ):
    _a		:						Dict=				(
        (
            TFFlaubertModel,
            TFFlaubertWithLMHeadModel,
            TFFlaubertForSequenceClassification,
            TFFlaubertForQuestionAnsweringSimple,
            TFFlaubertForTokenClassification,
            TFFlaubertForMultipleChoice,
        )
        if is_tf_available()
        else ()
    )
    _a		:						Optional[Any]=				(
        (TFFlaubertWithLMHeadModel,) if is_tf_available() else ()
    )  # TODO (PVP): Check other models whether language generation is also applicable
    _a		:						Any=				(
        {
            "feature-extraction": TFFlaubertModel,
            "fill-mask": TFFlaubertWithLMHeadModel,
            "question-answering": TFFlaubertForQuestionAnsweringSimple,
            "text-classification": TFFlaubertForSequenceClassification,
            "token-classification": TFFlaubertForTokenClassification,
            "zero-shot": TFFlaubertForSequenceClassification,
        }
        if is_tf_available()
        else {}
    )
    _a		:						Tuple=				False
    _a		:						int=				False
    def       _SCREAMING_SNAKE_CASE       (  self		,snake_case		,snake_case		,snake_case		,snake_case		,snake_case      ):



           '''simple docstring'''







           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      ):



           '''simple docstring'''







           lowercase							:     str       	=      TFFlaubertModelTester(self      )
           lowercase							:     List[Any]       	=      ConfigTester(self		,config_class=snake_case		,emb_dim=37      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           self.config_tester.run_common_tests()
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Tuple       	=      self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_flaubert_model(*snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Optional[int]       	=      self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_flaubert_lm_head(*snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     int       	=      self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_flaubert_qa(*snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     Optional[Any]       	=      self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_flaubert_sequence_classif(*snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     str       	=      self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_flaubert_for_token_classification(*snake_case      )
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     List[str]       	=      self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_flaubert_for_multiple_choice(*snake_case      )
    @slow
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           for model_name in TF_FLAUBERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
                  lowercase							:     Dict       	=      TFFlaubertModel.from_pretrained(snake_case      )
                  self.assertIsNotNone(snake_case      )






@require_tf
@require_sentencepiece
@require_tokenizers
class __snake_case		(      unittest.TestCase     ):
    @slow
    def       _SCREAMING_SNAKE_CASE       (  self      ):



           '''simple docstring'''







           lowercase							:     List[Any]       	=      TFFlaubertModel.from_pretrained("""jplu/tf-flaubert-small-cased"""      )

           lowercase							:     int       	=      tf.convert_to_tensor(
               [[0, 158, 735, 2592, 1424, 6727, 82, 1]]		,dtype=tf.intaa		,)  # "J'aime flaubert !"

           lowercase							:     Dict       	=      model(snake_case      )[0]
           lowercase							:     Union[str, Any]       	=      tf.TensorShape((1, 8, 512)      )
           self.assertEqual(output.shape		,snake_case      )
           # compare the actual values for a slice.
           lowercase							:     Tuple       	=      tf.convert_to_tensor(
               [
                   [
                       [-1.8_768_773, -1.566_555, 0.27_072_418],
                       [-1.6_920_038, -0.5_873_505, 1.9_329_599],
                       [-2.9_563_985, -1.6_993_835, 1.7_972_052],
                   ]
               ]		,dtype=tf.floataa		,)

           self.assertTrue(np.allclose(output[:, :3, :3].numpy()		,expected_slice.numpy()		,atol=1e-4      )      )
