


import gc
import random
import tempfile
import unittest

import numpy as np
import torch
from transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer

from diffusers import AutoencoderKL, DDIMScheduler, LMSDiscreteScheduler, PNDMScheduler, UNetaDConditionModel
from diffusers.pipelines.stable_diffusion_safe import StableDiffusionPipelineSafe as StableDiffusionPipeline
from diffusers.utils import floats_tensor, nightly, torch_device
from diffusers.utils.testing_utils import require_torch_gpu




class A  (   unittest.TestCase     ):






      def        lowerCamelCase       (					self						:     Any )					->						List[str]:
             """simple docstring"""




             super().tearDown()
             gc.collect()
             torch.cuda.empty_cache()






      @property
      def        lowerCamelCase       (					self						:     Tuple )					->						Union[str, Any]:
             """simple docstring"""




             _lowerCamelCase       :		Any		=1
             _lowerCamelCase       :		List[Any]		=3
             _lowerCamelCase       :		Dict		=(32, 32)

             _lowerCamelCase       :		int		=floats_tensor((batch_size, num_channels) + sizes			,   rng=random.Random(0 ) ).to(lowercase_ )
             return image






      @property
      def        lowerCamelCase       (					self						:     Any )					->						List[str]:
             """simple docstring"""




             torch.manual_seed(0 )
             _lowerCamelCase       :		int		=UNetaDConditionModel(
                 block_out_channels=(32, 64)			,   layers_per_block=2			,   sample_size=32			,   in_channels=4			,   out_channels=4			,   down_block_types=('DownBlock2D', 'CrossAttnDownBlock2D')			,   up_block_types=('CrossAttnUpBlock2D', 'UpBlock2D')			,   cross_attention_dim=32			,   )
             return model






      @property
      def        lowerCamelCase       (					self						:     int )					->						List[Any]:
             """simple docstring"""




             torch.manual_seed(0 )
             _lowerCamelCase       :		Union[str, Any]		=AutoencoderKL(
                 block_out_channels=[32, 64]			,   in_channels=3			,   out_channels=3			,   down_block_types=['DownEncoderBlock2D', 'DownEncoderBlock2D']			,   up_block_types=['UpDecoderBlock2D', 'UpDecoderBlock2D']			,   latent_channels=4			,   )
             return model






      @property
      def        lowerCamelCase       (					self						:     int )					->						List[str]:
             """simple docstring"""




             torch.manual_seed(0 )
             _lowerCamelCase       :		str		=CLIPTextConfig(
                 bos_token_id=0			,   eos_token_id=2			,   hidden_size=32			,   intermediate_size=37			,   layer_norm_eps=1E-05			,   num_attention_heads=4			,   num_hidden_layers=5			,   pad_token_id=1			,   vocab_size=1000			,   )
             return CLIPTextModel(lowercase_ )






      @property
      def        lowerCamelCase       (					self						:     Dict )					->						List[Any]:
             """simple docstring"""




             def extract(*lowercase_						:     List[str]			,   **lowercase_						:     Dict ):




                    class A  :






                          def __init__(					self						:     int )					->						Any:
                                 """simple docstring"""




                                 _lowerCamelCase       :		Tuple		=torch.ones([0] )






                          def        lowerCamelCase       (					self						:     List[str]			,   lowercase_						:     Tuple )					->						Any:
                                 """simple docstring"""




                                 self.pixel_values.to(lowercase_ )
                                 return self




                    return Out()

             return extract






      def        lowerCamelCase       (					self						:     Optional[int] )					->						str:
             """simple docstring"""




             _lowerCamelCase       :		Dict		='cpu'  # ensure determinism for the device-dependent torch.Generator
             _lowerCamelCase       :		str		=self.dummy_cond_unet
             _lowerCamelCase       :		Dict		=DDIMScheduler(
                 beta_start=0.00085			,   beta_end=0.012			,   beta_schedule='scaled_linear'			,   clip_sample=lowercase_			,   set_alpha_to_one=lowercase_			,   )

             _lowerCamelCase       :		Tuple		=self.dummy_vae
             _lowerCamelCase       :		Tuple		=self.dummy_text_encoder
             _lowerCamelCase       :		Tuple		=CLIPTokenizer.from_pretrained('hf-internal-testing/tiny-random-clip' )

             # make sure here that pndm scheduler skips prk
             _lowerCamelCase       :		str		=StableDiffusionPipeline(
                 unet=lowercase_			,   scheduler=lowercase_			,   vae=lowercase_			,   text_encoder=lowercase_			,   tokenizer=lowercase_			,   safety_checker=lowercase_			,   feature_extractor=self.dummy_extractor			,   )
             _lowerCamelCase       :		Any		=sd_pipe.to(lowercase_ )
             sd_pipe.set_progress_bar_config(disable=lowercase_ )

             _lowerCamelCase       :		str		='A painting of a squirrel eating a burger'

             _lowerCamelCase       :		int		=torch.Generator(device=lowercase_ ).manual_seed(0 )
             _lowerCamelCase       :		Any		=sd_pipe([prompt]			,   generator=lowercase_			,   guidance_scale=6.0			,   num_inference_steps=2			,   output_type='np' )
             _lowerCamelCase       :		Any		=output.images

             _lowerCamelCase       :		int		=torch.Generator(device=lowercase_ ).manual_seed(0 )
             _lowerCamelCase       :		Any		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=6.0			,   num_inference_steps=2			,   output_type='np'			,   return_dict=lowercase_			,   )[0]

             _lowerCamelCase       :		Optional[int]		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		str		=image_from_tuple[0, -3:, -3:, -1]

             assert image.shape == (1, 64, 64, 3)
             _lowerCamelCase       :		Dict		=np.array([0.5756, 0.6118, 0.5005, 0.5041, 0.5471, 0.4726, 0.4976, 0.4865, 0.4864] )

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






      def        lowerCamelCase       (					self						:     Tuple )					->						Dict:
             """simple docstring"""




             _lowerCamelCase       :		Optional[int]		='cpu'  # ensure determinism for the device-dependent torch.Generator
             _lowerCamelCase       :		int		=self.dummy_cond_unet
             _lowerCamelCase       :		int		=PNDMScheduler(skip_prk_steps=lowercase_ )
             _lowerCamelCase       :		str		=self.dummy_vae
             _lowerCamelCase       :		Tuple		=self.dummy_text_encoder
             _lowerCamelCase       :		List[str]		=CLIPTokenizer.from_pretrained('hf-internal-testing/tiny-random-clip' )

             # make sure here that pndm scheduler skips prk
             _lowerCamelCase       :		List[str]		=StableDiffusionPipeline(
                 unet=lowercase_			,   scheduler=lowercase_			,   vae=lowercase_			,   text_encoder=lowercase_			,   tokenizer=lowercase_			,   safety_checker=lowercase_			,   feature_extractor=self.dummy_extractor			,   )
             _lowerCamelCase       :		List[Any]		=sd_pipe.to(lowercase_ )
             sd_pipe.set_progress_bar_config(disable=lowercase_ )

             _lowerCamelCase       :		int		='A painting of a squirrel eating a burger'
             _lowerCamelCase       :		Union[str, Any]		=torch.Generator(device=lowercase_ ).manual_seed(0 )
             _lowerCamelCase       :		Dict		=sd_pipe([prompt]			,   generator=lowercase_			,   guidance_scale=6.0			,   num_inference_steps=2			,   output_type='np' )

             _lowerCamelCase       :		Dict		=output.images

             _lowerCamelCase       :		Optional[Any]		=torch.Generator(device=lowercase_ ).manual_seed(0 )
             _lowerCamelCase       :		Tuple		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=6.0			,   num_inference_steps=2			,   output_type='np'			,   return_dict=lowercase_			,   )[0]

             _lowerCamelCase       :		Any		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		Tuple		=image_from_tuple[0, -3:, -3:, -1]

             assert image.shape == (1, 64, 64, 3)
             _lowerCamelCase       :		Tuple		=np.array([0.5125, 0.5716, 0.4828, 0.5060, 0.5650, 0.4768, 0.5185, 0.4895, 0.4993] )

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






      def        lowerCamelCase       (					self						:     Tuple )					->						Dict:
             """simple docstring"""




             _lowerCamelCase       :		int		=StableDiffusionPipeline.from_pretrained(
                 'hf-internal-testing/tiny-stable-diffusion-lms-pipe'			,   safety_checker=lowercase_ )
             assert isinstance(lowercase_			,   lowercase_ )
             assert isinstance(pipe.scheduler			,   lowercase_ )
             assert pipe.safety_checker is None

             _lowerCamelCase       :		Dict		=pipe('example prompt'			,   num_inference_steps=2 ).images[0]
             assert image is not None

             # check that there's no error when saving a pipeline with one of the models being None
             with tempfile.TemporaryDirectory() as tmpdirname:
                    pipe.save_pretrained(lowercase_ )
                    _lowerCamelCase       :		Union[str, Any]		=StableDiffusionPipeline.from_pretrained(lowercase_ )

             # sanity check that the pipeline still works
             assert pipe.safety_checker is None
             _lowerCamelCase       :		Union[str, Any]		=pipe('example prompt'			,   num_inference_steps=2 ).images[0]
             assert image is not None






      @unittest.skipIf(torch_device != 'cuda'			,   'This test requires a GPU' )
      def        lowerCamelCase       (					self						:     Union[str, Any] )					->						Dict:
             """simple docstring"""




             _lowerCamelCase       :		Optional[int]		=self.dummy_cond_unet
             _lowerCamelCase       :		Union[str, Any]		=PNDMScheduler(skip_prk_steps=lowercase_ )
             _lowerCamelCase       :		Tuple		=self.dummy_vae
             _lowerCamelCase       :		Tuple		=self.dummy_text_encoder
             _lowerCamelCase       :		Dict		=CLIPTokenizer.from_pretrained('hf-internal-testing/tiny-random-clip' )

             # put models in fp16
             _lowerCamelCase       :		List[Any]		=unet.half()
             _lowerCamelCase       :		int		=vae.half()
             _lowerCamelCase       :		List[str]		=bert.half()

             # make sure here that pndm scheduler skips prk
             _lowerCamelCase       :		Optional[int]		=StableDiffusionPipeline(
                 unet=lowercase_			,   scheduler=lowercase_			,   vae=lowercase_			,   text_encoder=lowercase_			,   tokenizer=lowercase_			,   safety_checker=lowercase_			,   feature_extractor=self.dummy_extractor			,   )
             _lowerCamelCase       :		List[Any]		=sd_pipe.to(lowercase_ )
             sd_pipe.set_progress_bar_config(disable=lowercase_ )

             _lowerCamelCase       :		int		='A painting of a squirrel eating a burger'
             _lowerCamelCase       :		str		=sd_pipe([prompt]			,   num_inference_steps=2			,   output_type='np' ).images

             assert image.shape == (1, 64, 64, 3)




@nightly
@require_torch_gpu
class A  (   unittest.TestCase     ):






      def        lowerCamelCase       (					self						:     List[Any] )					->						Tuple:
             """simple docstring"""




             super().tearDown()
             gc.collect()
             torch.cuda.empty_cache()






      def        lowerCamelCase       (					self						:     int )					->						Dict:
             """simple docstring"""




             _lowerCamelCase       :		int		=StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5'			,   safety_checker=lowercase_ )
             _lowerCamelCase       :		Optional[int]		=LMSDiscreteScheduler.from_config(sd_pipe.scheduler.config )
             _lowerCamelCase       :		int		=sd_pipe.to(lowercase_ )
             sd_pipe.set_progress_bar_config(disable=lowercase_ )

             _lowerCamelCase       :		List[str]		=(
                 'portrait of girl with smokey eyes makeup in abandoned hotel, grange clothes, redshift, wide high angle'
                 ' coloured polaroid photograph with flash, kodak film, hyper real, stunning moody cinematography, with'
                 ' anamorphic lenses, by maripol, fallen angels by wong kar - wai, style of suspiria and neon demon and'
                 ' children from bahnhof zoo, detailed '
             )
             _lowerCamelCase       :		Optional[int]		=40_0366_0346
             _lowerCamelCase       :		Union[str, Any]		=7

             # without safety guidance (sld_guidance_scale = 0)
             _lowerCamelCase       :		int		=torch.manual_seed(lowercase_ )
             _lowerCamelCase       :		Tuple		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=lowercase_			,   num_inference_steps=50			,   output_type='np'			,   width=512			,   height=512			,   sld_guidance_scale=0			,   )

             _lowerCamelCase       :		Any		=output.images
             _lowerCamelCase       :		Any		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		Tuple		=[0.2278, 0.2231, 0.2249, 0.2333, 0.2303, 0.1885, 0.2273, 0.2144, 0.2176]

             assert image.shape == (1, 512, 512, 3)

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

             # without safety guidance (strong configuration)
             _lowerCamelCase       :		List[str]		=torch.manual_seed(lowercase_ )
             _lowerCamelCase       :		str		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=lowercase_			,   num_inference_steps=50			,   output_type='np'			,   width=512			,   height=512			,   sld_guidance_scale=2000			,   sld_warmup_steps=7			,   sld_threshold=0.025			,   sld_momentum_scale=0.5			,   sld_mom_beta=0.7			,   )

             _lowerCamelCase       :		str		=output.images
             _lowerCamelCase       :		Tuple		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		List[Any]		=[0.2383, 0.2276, 0.236, 0.2192, 0.2186, 0.2053, 0.1971, 0.1901, 0.1719]

             assert image.shape == (1, 512, 512, 3)

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






      def        lowerCamelCase       (					self						:     Any )					->						Union[str, Any]:
             """simple docstring"""




             _lowerCamelCase       :		Any		=StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5'			,   safety_checker=lowercase_ )
             _lowerCamelCase       :		str		=LMSDiscreteScheduler.from_config(sd_pipe.scheduler.config )
             _lowerCamelCase       :		Optional[Any]		=sd_pipe.to(lowercase_ )
             sd_pipe.set_progress_bar_config(disable=lowercase_ )

             _lowerCamelCase       :		Any		='padme amidala taking a bath artwork, safe for work, no nudity'
             _lowerCamelCase       :		List[Any]		=27_3497_1755
             _lowerCamelCase       :		Dict		=7

             _lowerCamelCase       :		List[Any]		=torch.manual_seed(lowercase_ )
             _lowerCamelCase       :		int		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=lowercase_			,   num_inference_steps=50			,   output_type='np'			,   width=512			,   height=512			,   sld_guidance_scale=0			,   )

             _lowerCamelCase       :		int		=output.images
             _lowerCamelCase       :		Optional[int]		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		str		=[0.3502, 0.3622, 0.3396, 0.3642, 0.3478, 0.3318, 0.35, 0.3348, 0.3297]

             assert image.shape == (1, 512, 512, 3)

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

             _lowerCamelCase       :		List[str]		=torch.manual_seed(lowercase_ )
             _lowerCamelCase       :		str		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=lowercase_			,   num_inference_steps=50			,   output_type='np'			,   width=512			,   height=512			,   sld_guidance_scale=2000			,   sld_warmup_steps=7			,   sld_threshold=0.025			,   sld_momentum_scale=0.5			,   sld_mom_beta=0.7			,   )

             _lowerCamelCase       :		Dict		=output.images
             _lowerCamelCase       :		Union[str, Any]		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		Optional[int]		=[0.5531, 0.5206, 0.4895, 0.5156, 0.5182, 0.4751, 0.4802, 0.4803, 0.4443]

             assert image.shape == (1, 512, 512, 3)

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






      def        lowerCamelCase       (					self						:     List[Any] )					->						int:
             """simple docstring"""




             _lowerCamelCase       :		Optional[int]		=StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5' )
             _lowerCamelCase       :		str		=sd_pipe.to(lowercase_ )
             sd_pipe.set_progress_bar_config(disable=lowercase_ )

             _lowerCamelCase       :		Optional[Any]		=(
                 'the four horsewomen of the apocalypse, painting by tom of finland, gaston bussiere, craig mullins, j. c.'
                 ' leyendecker'
             )
             _lowerCamelCase       :		Union[str, Any]		=10_4435_5234
             _lowerCamelCase       :		int		=12

             _lowerCamelCase       :		List[Any]		=torch.manual_seed(lowercase_ )
             _lowerCamelCase       :		List[str]		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=lowercase_			,   num_inference_steps=50			,   output_type='np'			,   width=512			,   height=512			,   sld_guidance_scale=0			,   )

             _lowerCamelCase       :		Optional[int]		=output.images
             _lowerCamelCase       :		List[str]		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		Dict		=np.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] )

             assert image.shape == (1, 512, 512, 3)

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

             _lowerCamelCase       :		List[str]		=torch.manual_seed(lowercase_ )
             _lowerCamelCase       :		Any		=sd_pipe(
                 [prompt]			,   generator=lowercase_			,   guidance_scale=lowercase_			,   num_inference_steps=50			,   output_type='np'			,   width=512			,   height=512			,   sld_guidance_scale=2000			,   sld_warmup_steps=7			,   sld_threshold=0.025			,   sld_momentum_scale=0.5			,   sld_mom_beta=0.7			,   )

             _lowerCamelCase       :		Union[str, Any]		=output.images
             _lowerCamelCase       :		List[str]		=image[0, -3:, -3:, -1]
             _lowerCamelCase       :		int		=np.array([0.5818, 0.6285, 0.6835, 0.6019, 0.625, 0.6754, 0.6096, 0.6334, 0.6561] )
             assert image.shape == (1, 512, 512, 3)

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






import unittest

from transformers import BigBirdTokenizer, BigBirdTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, require_torch, slow
from transformers.utils import cached_property

from ...test_tokenization_common import TokenizerTesterMixin


lowerCamelCase											=       '▁'

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




@require_sentencepiece
@require_tokenizers
class A  (   UpperCamelCase_    ,							unittest.TestCase     ):
      UpperCamelCase__							:  Tuple      =BigBirdTokenizer
      UpperCamelCase__							:  Union[str, Any]      =BigBirdTokenizerFast
      UpperCamelCase__							:  Any      =True
      UpperCamelCase__							:  Optional[Any]      =True






      def        lowerCamelCase       (					self						:     List[Any] )					->						Dict:
             """simple docstring"""




             super().setUp()

             _lowerCamelCase       :		List[Any]		=self.tokenizer_class(lowercase_			,   keep_accents=lowercase_ )
             tokenizer.save_pretrained(self.tmpdirname )






      def        lowerCamelCase       (					self						:     Union[str, Any] )					->						int:
             """simple docstring"""




             _lowerCamelCase       :		List[Any]		='<s>'
             _lowerCamelCase       :		Optional[Any]		=1

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






      def        lowerCamelCase       (					self						:     int )					->						Union[str, Any]:
             """simple docstring"""




             _lowerCamelCase       :		Optional[int]		=list(self.get_tokenizer().get_vocab().keys() )

             self.assertEqual(vocab_keys[0]			,   '<unk>' )
             self.assertEqual(vocab_keys[1]			,   '<s>' )
             self.assertEqual(vocab_keys[-1]			,   '[MASK]' )
             self.assertEqual(len(lowercase_ )			,   1004 )






      def        lowerCamelCase       (					self						:     Any )					->						Union[str, Any]:
             """simple docstring"""




             self.assertEqual(self.get_tokenizer().vocab_size			,   1000 )






      def        lowerCamelCase       (					self						:     Any )					->						Dict:
             """simple docstring"""




             if not self.test_rust_tokenizer:
                    return

             _lowerCamelCase       :		Union[str, Any]		=self.get_tokenizer()
             _lowerCamelCase       :		int		=self.get_rust_tokenizer()

             _lowerCamelCase       :		int		='I was born in 92000, and this is falsé.'

             _lowerCamelCase       :		int		=tokenizer.tokenize(lowercase_ )
             _lowerCamelCase       :		List[Any]		=rust_tokenizer.tokenize(lowercase_ )
             self.assertListEqual(lowercase_			,   lowercase_ )

             _lowerCamelCase       :		Any		=tokenizer.encode(lowercase_			,   add_special_tokens=lowercase_ )
             _lowerCamelCase       :		str		=rust_tokenizer.encode(lowercase_			,   add_special_tokens=lowercase_ )
             self.assertListEqual(lowercase_			,   lowercase_ )

             _lowerCamelCase       :		str		=self.get_rust_tokenizer()
             _lowerCamelCase       :		Union[str, Any]		=tokenizer.encode(lowercase_ )
             _lowerCamelCase       :		List[Any]		=rust_tokenizer.encode(lowercase_ )
             self.assertListEqual(lowercase_			,   lowercase_ )






      def        lowerCamelCase       (					self						:     Dict )					->						Union[str, Any]:
             """simple docstring"""




             _lowerCamelCase       :		str		=BigBirdTokenizer(lowercase_			,   keep_accents=lowercase_ )

             _lowerCamelCase       :		int		=tokenizer.tokenize('This is a test' )
             self.assertListEqual(lowercase_			,   ['▁This', '▁is', '▁a', '▁t', 'est'] )

             self.assertListEqual(
                 tokenizer.convert_tokens_to_ids(lowercase_ )			,   [285, 46, 10, 170, 382]			,   )

             _lowerCamelCase       :		Optional[Any]		=tokenizer.tokenize('I was born in 92000, and this is falsé.' )
             self.assertListEqual(
                 lowercase_			,   [
                     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       :		Any		=tokenizer.convert_tokens_to_ids(lowercase_ )
             self.assertListEqual(
                 lowercase_			,   [8, 21, 84, 55, 24, 19, 7, 0, 602, 347, 347, 347, 3, 12, 66, 46, 72, 80, 6, 0, 4]			,   )

             _lowerCamelCase       :		Optional[int]		=tokenizer.convert_ids_to_tokens(lowercase_ )
             self.assertListEqual(
                 lowercase_			,   [
                     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>',
                     '.',
                 ]			,   )






      @cached_property
      def        lowerCamelCase       (					self						:     Union[str, Any] )					->						str:
             """simple docstring"""




             return BigBirdTokenizer.from_pretrained('google/bigbird-roberta-base' )






      @slow
      def        lowerCamelCase       (					self						:     Any )					->						Dict:
             """simple docstring"""




             _lowerCamelCase       :		List[str]		='Hello World!'
             _lowerCamelCase       :		Tuple		=[65, 1_8536, 2260, 101, 66]

             self.assertListEqual(lowercase_			,   self.big_tokenizer.encode(lowercase_ ) )






      @slow
      def        lowerCamelCase       (					self						:     str )					->						Optional[Any]:
             """simple docstring"""




             _lowerCamelCase       :		int		=(
                 'This is a very long text with a lot of weird characters, such as: . , ~ ? ( ) " [ ] ! : - . Also we will'
                 ' add words that should not exsist and be tokenized to <unk>, such as saoneuhaoesuth'
             )
             # fmt: off
             _lowerCamelCase       :		Tuple		=[65, 871, 419, 358, 946, 991, 2521, 452, 358, 1357, 387, 7751, 3536, 112, 985, 456, 126, 865, 938, 5400, 5734, 458, 1368, 467, 786, 2462, 5246, 1159, 633, 865, 4519, 457, 582, 852, 2557, 427, 916, 508, 405, 3_4324, 497, 391, 408, 1_1342, 1244, 385, 100, 938, 985, 456, 574, 362, 1_2597, 3200, 3129, 1172, 66]  # noqa: E231
             # fmt: on
             self.assertListEqual(lowercase_			,   self.big_tokenizer.encode(lowercase_ ) )






      @require_torch
      @slow
      def        lowerCamelCase       (					self						:     Any )					->						Any:
             """simple docstring"""




             import torch

             from transformers import BigBirdConfig, BigBirdModel

             # Build sequence
             _lowerCamelCase       :		Union[str, Any]		=list(self.big_tokenizer.get_vocab().keys() )[:10]
             _lowerCamelCase       :		List[Any]		=' '.join(lowercase_ )
             _lowerCamelCase       :		List[str]		=self.big_tokenizer.encode_plus(lowercase_			,   return_tensors='pt'			,   return_token_type_ids=lowercase_ )
             _lowerCamelCase       :		Optional[int]		=self.big_tokenizer.batch_encode_plus(
                 [sequence + ' ' + sequence]			,   return_tensors='pt'			,   return_token_type_ids=lowercase_ )

             _lowerCamelCase       :		List[str]		=BigBirdConfig(attention_type='original_full' )
             _lowerCamelCase       :		Optional[Any]		=BigBirdModel(lowercase_ )

             assert model.get_input_embeddings().weight.shape[0] >= self.big_tokenizer.vocab_size

             with torch.no_grad():
                    model(**lowercase_ )
                    model(**lowercase_ )






      @slow
      def        lowerCamelCase       (					self						:     Dict )					->						Optional[int]:
             """simple docstring"""




             _lowerCamelCase       :		Dict		=BigBirdTokenizer.from_pretrained('google/bigbird-roberta-base' )
             _lowerCamelCase       :		int		=tokenizer.decode(tokenizer('Paris is the [MASK].' ).input_ids )

             self.assertTrue(decoded_text == '[CLS] Paris is the[MASK].[SEP]' )






      @slow
      def        lowerCamelCase       (					self						:     Optional[int] )					->						List[Any]:
             """simple docstring"""




             _lowerCamelCase       :		Union[str, Any]		={'input_ids': [[65, 3_9286, 458, 3_6335, 2001, 456, 1_3073, 1_3266, 455, 113, 7746, 1741, 1_1157, 391, 1_3073, 1_3266, 455, 113, 3967, 3_5412, 113, 4936, 109, 3870, 2377, 113, 3_0084, 4_5720, 458, 134, 1_7496, 112, 503, 1_1672, 113, 118, 112, 5665, 1_3347, 3_8687, 112, 1496, 3_1389, 112, 3268, 4_7264, 134, 962, 112, 1_6377, 8035, 2_3130, 430, 1_2169, 1_5518, 2_8592, 458, 146, 4_1697, 109, 391, 1_2169, 1_5518, 1_6689, 458, 146, 4_1358, 109, 452, 726, 4034, 111, 763, 3_5412, 5082, 388, 1903, 111, 9051, 391, 2870, 4_8918, 1900, 1123, 550, 998, 112, 9586, 1_5985, 455, 391, 410, 2_2955, 3_7636, 114, 66], [65, 448, 1_7496, 419, 3663, 385, 763, 113, 2_7533, 2870, 3283, 1_3043, 1639, 2_4713, 523, 656, 2_4013, 1_8550, 2521, 517, 2_7014, 2_1244, 420, 1212, 1465, 391, 927, 4833, 388, 578, 1_1786, 114, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [65, 484, 2169, 7687, 2_1932, 1_8146, 726, 363, 1_7032, 3391, 114, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], 'attention_mask': [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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], [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]]}  # noqa: E501
             # fmt: on

             self.tokenizer_integration_test_util(
                 expected_encoding=lowercase_			,   model_name='google/bigbird-roberta-base'			,   revision='215c99f1600e06f83acce68422f2035b2b5c3510'			,   )


