

'''simple docstring'''

from __future__ import annotations

import unittest

from transformers import is_tf_available, is_torch_available
from transformers.testing_utils import DUMMY_UNKNOWN_IDENTIFIER, SMALL_MODEL_IDENTIFIER, is_pt_tf_cross_test, slow


if is_tf_available():
       from transformers import (
           AutoConfig,
           BertConfig,
           GPTaConfig,
           TaConfig,
           TFAutoModel,
           TFAutoModelForCausalLM,
           TFAutoModelForMaskedLM,
           TFAutoModelForPreTraining,
           TFAutoModelForQuestionAnswering,
           TFAutoModelForSeqaSeqLM,
           TFAutoModelForSequenceClassification,
           TFAutoModelWithLMHead,
           TFBertForMaskedLM,
           TFBertForPreTraining,
           TFBertForQuestionAnswering,
           TFBertForSequenceClassification,
           TFBertModel,
           TFGPTaLMHeadModel,
           TFRobertaForMaskedLM,
           TFTaForConditionalGeneration,
       )
       from transformers.models.bert.modeling_tf_bert import TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST
       from transformers.models.gpta.modeling_tf_gpta import TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST
       from transformers.models.ta.modeling_tf_ta import TF_T5_PRETRAINED_MODEL_ARCHIVE_LIST

if is_torch_available():
       from transformers import (
           AutoModel,
           AutoModelForCausalLM,
           AutoModelForMaskedLM,
           AutoModelForPreTraining,
           AutoModelForQuestionAnswering,
           AutoModelForSeqaSeqLM,
           AutoModelForSequenceClassification,
           AutoModelWithLMHead,
           BertForMaskedLM,
           BertForPreTraining,
           BertForQuestionAnswering,
           BertForSequenceClassification,
           BertModel,
           GPTaLMHeadModel,
           RobertaForMaskedLM,
           TaForConditionalGeneration,
       )


@is_pt_tf_cross_test
class 	lowerCAmelCase  (   unittest.TestCase ):







       @slow
       def       snake_case (				self      :			Dict   ):







            """simple docstring"""







            for model_name in ["bert-base-uncased"]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModel.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModel.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       @slow
       def       snake_case (				self      :			Union[str, Any]   ):







            """simple docstring"""







            for model_name in ["bert-base-uncased"]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModelForPreTraining.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModelForPreTraining.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       @slow
       def       snake_case (				self      :			Optional[int]   ):







            """simple docstring"""







            for model_name in TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModelForCausalLM.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 __lowercase		,  __lowercase      		=TFAutoModelForCausalLM.from_pretrained(
                     __lowercase    ,   output_loading_info=__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModelForCausalLM.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 __lowercase		,  __lowercase      		=AutoModelForCausalLM.from_pretrained(
                     __lowercase    ,   output_loading_info=__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       @slow
       def       snake_case (				self      :			Tuple   ):







            """simple docstring"""







            for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModelWithLMHead.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModelWithLMHead.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       @slow
       def       snake_case (				self      :			Dict   ):







            """simple docstring"""







            for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModelForMaskedLM.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 __lowercase		,  __lowercase      		=TFAutoModelForMaskedLM.from_pretrained(
                     __lowercase    ,   output_loading_info=__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModelForMaskedLM.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 __lowercase		,  __lowercase      		=AutoModelForMaskedLM.from_pretrained(
                     __lowercase    ,   output_loading_info=__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       @slow
       def       snake_case (				self      :			Optional[Any]   ):







            """simple docstring"""







            for model_name in TF_T5_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModelForSeqaSeqLM.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 __lowercase		,  __lowercase      		=TFAutoModelForSeqaSeqLM.from_pretrained(
                     __lowercase    ,   output_loading_info=__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModelForSeqaSeqLM.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 __lowercase		,  __lowercase      		=AutoModelForSeqaSeqLM.from_pretrained(
                     __lowercase    ,   output_loading_info=__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       @slow
       def       snake_case (				self      :			Dict   ):







            """simple docstring"""







            for model_name in ["bert-base-uncased"]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModelForSequenceClassification.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModelForSequenceClassification.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       @slow
       def       snake_case (				self      :			List[str]   ):







            """simple docstring"""







            for model_name in ["bert-base-uncased"]:
                 __lowercase      		=AutoConfig.from_pretrained(__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=TFAutoModelForQuestionAnswering.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )

                 __lowercase      		=AutoModelForQuestionAnswering.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
                 self.assertIsNotNone(__lowercase   )
                 self.assertIsInstance(__lowercase    ,   __lowercase   )







       def       snake_case (				self      :			Tuple   ):







            """simple docstring"""







            __lowercase      		=TFAutoModelWithLMHead.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
            self.assertIsInstance(__lowercase    ,   __lowercase   )
            self.assertEqual(model.num_parameters()    ,   14410   )
            self.assertEqual(model.num_parameters(only_trainable=__lowercase   )    ,   14410   )

            __lowercase      		=AutoModelWithLMHead.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
            self.assertIsInstance(__lowercase    ,   __lowercase   )
            self.assertEqual(model.num_parameters()    ,   14410   )
            self.assertEqual(model.num_parameters(only_trainable=__lowercase   )    ,   14410   )







       def       snake_case (				self      :			Optional[Any]   ):







            """simple docstring"""







            __lowercase      		=TFAutoModelWithLMHead.from_pretrained(__lowercase    ,   from_pt=__lowercase   )
            self.assertIsInstance(__lowercase    ,   __lowercase   )
            self.assertEqual(model.num_parameters()    ,   14410   )
            self.assertEqual(model.num_parameters(only_trainable=__lowercase   )    ,   14410   )

            __lowercase      		=AutoModelWithLMHead.from_pretrained(__lowercase    ,   from_tf=__lowercase   )
            self.assertIsInstance(__lowercase    ,   __lowercase   )
            self.assertEqual(model.num_parameters()    ,   14410   )
            self.assertEqual(model.num_parameters(only_trainable=__lowercase   )    ,   14410   )





'''simple docstring'''

import unittest

import numpy as np
import torch

from diffusers import PNDMPipeline, PNDMScheduler, UNetaDModel
from diffusers.utils.testing_utils import enable_full_determinism, require_torch, slow, torch_device


enable_full_determinism()


class 	lowerCAmelCase  (   unittest.TestCase ):







       @property
       def       snake_case (				self      :			str   ):







            """simple docstring"""







            torch.manual_seed(0   )
            __lowercase      		=UNetaDModel(
                block_out_channels=(32, 64)    ,   layers_per_block=2    ,   sample_size=32    ,   in_channels=3    ,   out_channels=3    ,   down_block_types=('DownBlock2D', 'AttnDownBlock2D')    ,   up_block_types=('AttnUpBlock2D', 'UpBlock2D')    ,   )
            return model







       def       snake_case (				self      :			int   ):







            """simple docstring"""







            __lowercase      		=self.dummy_uncond_unet
            __lowercase      		=PNDMScheduler()

            __lowercase      		=PNDMPipeline(unet=__lowercase    ,   scheduler=__lowercase   )
            pndm.to(__lowercase   )
            pndm.set_progress_bar_config(disable=__lowercase   )

            __lowercase      		=torch.manual_seed(0   )
            __lowercase      		=pndm(generator=__lowercase    ,   num_inference_steps=20    ,   output_type='numpy'   ).images

            __lowercase      		=torch.manual_seed(0   )
            __lowercase      		=pndm(generator=__lowercase    ,   num_inference_steps=20    ,   output_type='numpy'    ,   return_dict=__lowercase   )[0]

            __lowercase      		=image[0, -3:, -3:, -1]
            __lowercase      		=image_from_tuple[0, -3:, -3:, -1]

            assert image.shape == (1, 32, 32, 3)
            __lowercase      		=np.array([1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0]   )

            assert np.abs(image_slice.flatten() - expected_slice   ).max() < 1E-2
            assert np.abs(image_from_tuple_slice.flatten() - expected_slice   ).max() < 1E-2






@slow
@require_torch
class 	lowerCAmelCase  (   unittest.TestCase ):







       def       snake_case (				self      :			Union[str, Any]   ):







            """simple docstring"""







            __lowercase      		='google/ddpm-cifar10-32'

            __lowercase      		=UNetaDModel.from_pretrained(__lowercase   )
            __lowercase      		=PNDMScheduler()

            __lowercase      		=PNDMPipeline(unet=__lowercase    ,   scheduler=__lowercase   )
            pndm.to(__lowercase   )
            pndm.set_progress_bar_config(disable=__lowercase   )
            __lowercase      		=torch.manual_seed(0   )
            __lowercase      		=pndm(generator=__lowercase    ,   output_type='numpy'   ).images

            __lowercase      		=image[0, -3:, -3:, -1]

            assert image.shape == (1, 32, 32, 3)
            __lowercase      		=np.array([0.1_5_6_4, 0.1_4_6_4_5, 0.1_4_0_6, 0.1_4_7_1_5, 0.1_2_4_2_5, 0.1_4_0_4_5, 0.1_3_1_1_5, 0.1_2_1_7_5, 0.1_2_5]   )

            assert np.abs(image_slice.flatten() - expected_slice   ).max() < 1E-2


