


"""simple docstring"""






from typing import Optional

import torch
from PIL import Image
from tqdm.auto import tqdm
from transformers import CLIPTextModel, CLIPTokenizer

from diffusers import AutoencoderKL, DDIMScheduler, DiffusionPipeline, UNetaDConditionModel
from diffusers.image_processor import VaeImageProcessor
from diffusers.utils import (
    deprecate,
)






class     A(     lowerCamelCase__		):

		"""simple docstring"""





		def __init__(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__ = 0.9_3				,							SCREAMING_SNAKE_CASE__ = True				,							)			->  int:

					"""simple docstring"""



					_UpperCamelCase				:Optional[int]				    =  mixing_coeff
					_UpperCamelCase				:Tuple				    =  leapfrog_steps

					super().__init__()
					self.register_modules(
					    vae=SCREAMING_SNAKE_CASE__				,							text_encoder=SCREAMING_SNAKE_CASE__				,							tokenizer=SCREAMING_SNAKE_CASE__				,							unet=SCREAMING_SNAKE_CASE__				,							scheduler=SCREAMING_SNAKE_CASE__				,							)

					_UpperCamelCase				:List[str]				    =  2 ** (len(self.vae.config.block_out_channels      ) - 1)
					_UpperCamelCase				:Tuple				    =  VaeImageProcessor(vae_scale_factor=self.vae_scale_factor      )
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__ = None				,							SCREAMING_SNAKE_CASE__ = False      )			->  Tuple:

					"""simple docstring"""



					_UpperCamelCase				:Optional[Any]				    =  self.tokenizer(
					    SCREAMING_SNAKE_CASE__				,							padding='''max_length'''				,							max_length=self.tokenizer.model_max_length				,							truncation=SCREAMING_SNAKE_CASE__				,							return_tensors='''pt'''				,							)

					_UpperCamelCase				:str				    =  self.text_encoder(text_inputs.input_ids.to(self.device      )      ).last_hidden_state

					_UpperCamelCase				:Any				    =  prompt_embeds.to(dtype=self.text_encoder.dtype				,							device=self.device      )

					if do_classifier_free_guidance:
								_UpperCamelCase				:List[Any]				    =  '''''' if negative_prompt is None else negative_prompt

								_UpperCamelCase				:Tuple				    =  self.tokenizer(
								    SCREAMING_SNAKE_CASE__				,							padding='''max_length'''				,							max_length=self.tokenizer.model_max_length				,							truncation=SCREAMING_SNAKE_CASE__				,							return_tensors='''pt'''				,							)

								_UpperCamelCase				:Union[str, Any]				    =  self.text_encoder(uncond_input.input_ids.to(self.device      )      ).last_hidden_state

								_UpperCamelCase				:Tuple				    =  torch.cat([negative_prompt_embeds, prompt_embeds]      )

					return prompt_embeds
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )			->  Tuple:

					"""simple docstring"""



					_UpperCamelCase				:Union[str, Any]				    =  self.mixing_coeff * x + (1 - self.mixing_coeff) * y
					_UpperCamelCase				:Any				    =  self.mixing_coeff * y + (1 - self.mixing_coeff) * x

					return [x, y]
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )			->  str:

					"""simple docstring"""



					_UpperCamelCase				:Optional[Any]				    =  (y - (1 - self.mixing_coeff) * x) / self.mixing_coeff
					_UpperCamelCase				:str				    =  (x - (1 - self.mixing_coeff) * y) / self.mixing_coeff

					return [x, y]
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__      )			->  List[Any]:

					"""simple docstring"""



					_UpperCamelCase				:str				    =  int(SCREAMING_SNAKE_CASE__      )

					_UpperCamelCase				:Dict				    =  self.scheduler.alphas_cumprod[t] if t >= 0 else self.scheduler.final_alpha_cumprod

					return alpha_prod, 1 - alpha_prod
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							)			->  Dict:

					"""simple docstring"""



					_UpperCamelCase				:Any				    =  timestep - self.scheduler.config.num_train_timesteps / self.scheduler.num_inference_steps

					_UpperCamelCase    ,			_UpperCamelCase				:Tuple				    =  self._get_alpha_and_beta(SCREAMING_SNAKE_CASE__      )
					_UpperCamelCase    ,			_UpperCamelCase				:str				    =  self._get_alpha_and_beta(SCREAMING_SNAKE_CASE__      )

					_UpperCamelCase				:Optional[int]				    =  (alpha_prod_t_prev / alpha_prod_t) ** 0.5
					_UpperCamelCase				:Union[str, Any]				    =  -a_t * (beta_prod_t**0.5) + beta_prod_t_prev**0.5

					_UpperCamelCase				:Dict				    =  (base - b_t * model_output) / a_t

					return model_input, next_model_input.to(base.dtype      )
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							)			->  Any:

					"""simple docstring"""



					_UpperCamelCase				:Dict				    =  timestep - self.scheduler.config.num_train_timesteps / self.scheduler.num_inference_steps

					_UpperCamelCase    ,			_UpperCamelCase				:int				    =  self._get_alpha_and_beta(SCREAMING_SNAKE_CASE__      )
					_UpperCamelCase    ,			_UpperCamelCase				:Optional[Any]				    =  self._get_alpha_and_beta(SCREAMING_SNAKE_CASE__      )

					_UpperCamelCase				:List[str]				    =  (alpha_prod_t_prev / alpha_prod_t) ** 0.5
					_UpperCamelCase				:Tuple				    =  -a_t * (beta_prod_t**0.5) + beta_prod_t_prev**0.5
					_UpperCamelCase				:Tuple				    =  a_t * base + b_t * model_output

					return model_input, next_model_input.to(base.dtype      )
		@torch.no_grad()
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__      )			->  Tuple:

					"""simple docstring"""



					_UpperCamelCase				:Tuple				    =  1 / self.vae.config.scaling_factor * latents
					_UpperCamelCase				:List[Any]				    =  self.vae.decode(SCREAMING_SNAKE_CASE__      ).sample
					_UpperCamelCase				:List[Any]				    =  (image / 2 + 0.5).clamp(0				,							1      )
					return image
		@torch.no_grad()
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__ = None				,							)			->  Union[str, Any]:

					"""simple docstring"""



					_UpperCamelCase				:List[Any]				    =  guidance_scale > 1.0

					_UpperCamelCase				:List[Any]				    =  image.to(device=self.device				,							dtype=text_embeds.dtype      )
					_UpperCamelCase				:Union[str, Any]				    =  self.vae.encode(SCREAMING_SNAKE_CASE__      ).latent_dist.sample(SCREAMING_SNAKE_CASE__      )

					_UpperCamelCase				:Union[str, Any]				    =  self.vae.config.scaling_factor * latent

					_UpperCamelCase				:Optional[int]				    =  [latent.clone(), latent.clone()]

					for i, t in tqdm(enumerate(SCREAMING_SNAKE_CASE__      )				,							total=len(SCREAMING_SNAKE_CASE__      )      ):
								_UpperCamelCase				:Any				    =  self.noise_mixing_layer(x=coupled_latents[0]				,							y=coupled_latents[1]      )

								# j - model_input index, k - base index
								for j in range(2      ):
											_UpperCamelCase				:Optional[int]				    =  j ^ 1

											if self.leapfrog_steps:
														if i % 2 == 0:
																	_UpperCamelCase    ,			_UpperCamelCase				:Union[str, Any]				    =  j, k

											_UpperCamelCase				:Optional[Any]				    =  coupled_latents[j]
											_UpperCamelCase				:Optional[Any]				    =  coupled_latents[k]

											_UpperCamelCase				:Any				    =  torch.cat([model_input] * 2      ) if do_classifier_free_guidance else model_input

											_UpperCamelCase				:Any				    =  self.unet(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							encoder_hidden_states=SCREAMING_SNAKE_CASE__      ).sample

											if do_classifier_free_guidance:
														_UpperCamelCase    ,			_UpperCamelCase				:List[Any]				    =  noise_pred.chunk(2      )
														_UpperCamelCase				:str				    =  noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)

											_UpperCamelCase    ,			_UpperCamelCase				:Dict				    =  self.noise_step(
											    base=SCREAMING_SNAKE_CASE__				,							model_input=SCREAMING_SNAKE_CASE__				,							model_output=SCREAMING_SNAKE_CASE__				,							timestep=SCREAMING_SNAKE_CASE__				,							)

											_UpperCamelCase				:Optional[int]				    =  model_input

					return coupled_latents





		@torch.no_grad()
		def __call__(   self				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__ = 3.0				,							SCREAMING_SNAKE_CASE__ = 50				,							SCREAMING_SNAKE_CASE__ = 0.8				,							SCREAMING_SNAKE_CASE__ = None				,							SCREAMING_SNAKE_CASE__ = None				,							SCREAMING_SNAKE_CASE__ = "pil"				,							)			->  List[Any]:

					"""simple docstring"""



					_UpperCamelCase				:Dict				    =  guidance_scale > 1.0

					_UpperCamelCase				:Optional[Any]				    =  self.image_processor.preprocess(SCREAMING_SNAKE_CASE__      )

					_UpperCamelCase				:Tuple				    =  self._encode_prompt(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )
					_UpperCamelCase				:str				    =  self._encode_prompt(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )

					self.scheduler.set_timesteps(SCREAMING_SNAKE_CASE__				,							self.device      )

					_UpperCamelCase				:Union[str, Any]				    =  num_inference_steps - int(num_inference_steps * strength      )
					_UpperCamelCase				:str				    =  self.scheduler.timesteps[t_limit:]
					_UpperCamelCase				:List[str]				    =  fwd_timesteps.flip(0      )

					_UpperCamelCase				:Tuple				    =  self.prepare_latents(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )

					for i, t in tqdm(enumerate(SCREAMING_SNAKE_CASE__      )				,							total=len(SCREAMING_SNAKE_CASE__      )      ):
								# j - model_input index, k - base index
								for k in range(2      ):
											_UpperCamelCase				:List[Any]				    =  k ^ 1

											if self.leapfrog_steps:
														if i % 2 == 1:
																	_UpperCamelCase    ,			_UpperCamelCase				:Optional[int]				    =  j, k

											_UpperCamelCase				:Union[str, Any]				    =  coupled_latents[j]
											_UpperCamelCase				:List[str]				    =  coupled_latents[k]

											_UpperCamelCase				:Tuple				    =  torch.cat([model_input] * 2      ) if do_classifier_free_guidance else model_input

											_UpperCamelCase				:Union[str, Any]				    =  self.unet(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__				,							encoder_hidden_states=SCREAMING_SNAKE_CASE__      ).sample

											if do_classifier_free_guidance:
														_UpperCamelCase    ,			_UpperCamelCase				:Optional[int]				    =  noise_pred.chunk(2      )
														_UpperCamelCase				:List[str]				    =  noise_pred_uncond + guidance_scale * (noise_pred_text - noise_pred_uncond)

											_UpperCamelCase    ,			_UpperCamelCase				:Dict				    =  self.denoise_step(
											    base=SCREAMING_SNAKE_CASE__				,							model_input=SCREAMING_SNAKE_CASE__				,							model_output=SCREAMING_SNAKE_CASE__				,							timestep=SCREAMING_SNAKE_CASE__				,							)

											_UpperCamelCase				:Optional[int]				    =  model_input

								_UpperCamelCase				:Optional[int]				    =  self.denoise_mixing_layer(x=coupled_latents[0]				,							y=coupled_latents[1]      )

					# either one is fine
					_UpperCamelCase				:Optional[int]				    =  coupled_latents[0]

					if output_type not in ["latent", "pt", "np", "pil"]:
								_UpperCamelCase				:List[str]				    =  (
								    f"the output_type {output_type} is outdated. Please make sure to set it to one of these instead: "
								    '''`pil`, `np`, `pt`, `latent`'''
								)
								deprecate('''Unsupported output_type'''				,							'''1.0.0'''				,							SCREAMING_SNAKE_CASE__				,							standard_warn=SCREAMING_SNAKE_CASE__      )
								_UpperCamelCase				:Any				    =  '''np'''

					if output_type == "latent":
								_UpperCamelCase				:Union[str, Any]				    =  final_latent
					else:
								_UpperCamelCase				:List[str]				    =  self.decode_latents(SCREAMING_SNAKE_CASE__      )
								_UpperCamelCase				:Dict				    =  self.image_processor.postprocess(SCREAMING_SNAKE_CASE__				,							output_type=SCREAMING_SNAKE_CASE__      )

					return image





"""simple docstring"""






import unittest

from transformers import ErnieMTokenizer
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


UpperCamelCase__							:Optional[int]       =  get_tests_dir("""fixtures/spiece.model""")






@require_sentencepiece
@require_tokenizers
class     A(     lowerCamelCase__							,       unittest.TestCase		):

		"""simple docstring"""





		A         =       ErnieMTokenizer
		A         =       False
		A         =       True
		A         =       False
		A         =       False
		def      _UpperCamelCase(   self      )			->  Union[str, Any]:

					"""simple docstring"""



					super().setUp()

					# We have a SentencePiece fixture for testing
					_UpperCamelCase				:int				    =  ErnieMTokenizer(SCREAMING_SNAKE_CASE__				,							unk_token='''<unk>'''				,							pad_token='''<pad>'''      )
					tokenizer.save_pretrained(self.tmpdirname      )
		def      _UpperCamelCase(   self				,							SCREAMING_SNAKE_CASE__      )			->  List[Any]:

					"""simple docstring"""



					_UpperCamelCase				:List[Any]				    =  '''this is a test'''
					_UpperCamelCase				:Optional[Any]				    =  '''this is a test'''
					return input_text, output_text
		def      _UpperCamelCase(   self      )			->  Union[str, Any]:

					"""simple docstring"""



					_UpperCamelCase				:Dict				    =  '''<pad>'''
					_UpperCamelCase				:Optional[Any]				    =  0

					self.assertEqual(self.get_tokenizer()._convert_token_to_id(SCREAMING_SNAKE_CASE__      )				,							SCREAMING_SNAKE_CASE__      )
					self.assertEqual(self.get_tokenizer()._convert_id_to_token(SCREAMING_SNAKE_CASE__      )				,							SCREAMING_SNAKE_CASE__      )
		def      _UpperCamelCase(   self      )			->  int:

					"""simple docstring"""



					_UpperCamelCase				:Dict				    =  list(self.get_tokenizer().get_vocab().keys()      )

					self.assertEqual(vocab_keys[0]				,							'''<pad>'''      )
					self.assertEqual(vocab_keys[1]				,							'''<unk>'''      )
					self.assertEqual(vocab_keys[-1]				,							'''▁eloquent'''      )
					self.assertEqual(len(SCREAMING_SNAKE_CASE__      )				,							3_00_00      )
		def      _UpperCamelCase(   self      )			->  str:

					"""simple docstring"""



					self.assertEqual(self.get_tokenizer().vocab_size				,							3_00_00      )
		def      _UpperCamelCase(   self      )			->  Dict:

					"""simple docstring"""



					if not self.test_rust_tokenizer:
								return

					_UpperCamelCase				:Tuple				    =  self.get_tokenizer()
					_UpperCamelCase				:str				    =  self.get_rust_tokenizer()

					_UpperCamelCase				:List[Any]				    =  '''I was born in 92000, and this is falsé.'''

					_UpperCamelCase				:Any				    =  tokenizer.tokenize(SCREAMING_SNAKE_CASE__      )
					_UpperCamelCase				:List[Any]				    =  rust_tokenizer.tokenize(SCREAMING_SNAKE_CASE__      )
					self.assertListEqual(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )

					_UpperCamelCase				:List[str]				    =  tokenizer.encode(SCREAMING_SNAKE_CASE__				,							add_special_tokens=SCREAMING_SNAKE_CASE__      )
					_UpperCamelCase				:List[str]				    =  rust_tokenizer.encode(SCREAMING_SNAKE_CASE__				,							add_special_tokens=SCREAMING_SNAKE_CASE__      )
					self.assertListEqual(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )

					_UpperCamelCase				:Any				    =  self.get_rust_tokenizer()
					_UpperCamelCase				:List[Any]				    =  tokenizer.encode(SCREAMING_SNAKE_CASE__      )
					_UpperCamelCase				:int				    =  rust_tokenizer.encode(SCREAMING_SNAKE_CASE__      )
					self.assertListEqual(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )
		def      _UpperCamelCase(   self      )			->  Dict:

					"""simple docstring"""



					_UpperCamelCase				:Any				    =  ErnieMTokenizer(SCREAMING_SNAKE_CASE__				,							do_lower_case=SCREAMING_SNAKE_CASE__				,							unk_token='''<unk>'''				,							pad_token='''<pad>'''      )

					_UpperCamelCase				:List[str]				    =  tokenizer.tokenize('''This is a test'''      )
					self.assertListEqual(SCREAMING_SNAKE_CASE__				,							['''▁this''', '''▁is''', '''▁a''', '''▁test''']      )

					self.assertListEqual(tokenizer.convert_tokens_to_ids(SCREAMING_SNAKE_CASE__      )				,							[48, 25, 21, 12_89]      )

					_UpperCamelCase				:str				    =  tokenizer.tokenize('''I was born in 92000, and this is falsé.'''      )
					# ErnieMTokenizer(paddlenlp implementation) outputs '9' instead of '_9' so to mimic that '_9' is changed to '9'
					self.assertListEqual(
					    SCREAMING_SNAKE_CASE__				,							['''▁i''', '''▁was''', '''▁born''', '''▁in''', '''9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''é''', '''.''']      )
					_UpperCamelCase				:Optional[int]				    =  tokenizer.convert_tokens_to_ids(SCREAMING_SNAKE_CASE__      )
					self.assertListEqual(SCREAMING_SNAKE_CASE__				,							[31, 23, 3_86, 19, 5_18, 30_50, 15, 17, 48, 25, 82_56, 18, 1, 9]      )

					_UpperCamelCase				:Dict				    =  tokenizer.convert_ids_to_tokens(SCREAMING_SNAKE_CASE__      )
					self.assertListEqual(
					    SCREAMING_SNAKE_CASE__				,							['''▁i''', '''▁was''', '''▁born''', '''▁in''', '''9''', '''2000''', ''',''', '''▁and''', '''▁this''', '''▁is''', '''▁fal''', '''s''', '''<unk>''', '''.''']				,							)
		def      _UpperCamelCase(   self      )			->  List[str]:

					"""simple docstring"""



					_UpperCamelCase				:Dict				    =  ErnieMTokenizer(SCREAMING_SNAKE_CASE__				,							unk_token='''<unk>'''				,							pad_token='''<pad>'''      )

					_UpperCamelCase				:str				    =  tokenizer.encode('''sequence builders'''      )
					_UpperCamelCase				:Optional[Any]				    =  tokenizer.encode('''multi-sequence build'''      )

					_UpperCamelCase				:int				    =  tokenizer.build_inputs_with_special_tokens(SCREAMING_SNAKE_CASE__      )
					_UpperCamelCase				:Union[str, Any]				    =  tokenizer.build_inputs_with_special_tokens(SCREAMING_SNAKE_CASE__				,							SCREAMING_SNAKE_CASE__      )

					assert encoded_sentence == [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id]
					assert encoded_pair == [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id] + [
					    tokenizer.sep_token_id
					] + text_a + [tokenizer.sep_token_id]





		@slow
		def      _UpperCamelCase(   self      )			->  int:

					"""simple docstring"""



					_UpperCamelCase				:List[str]				    =  {'''input_ids''': [[0, 1_10_62, 8_27_72, 7, 15, 8_27_72, 5_38, 5_15_29, 2_37, 1_71_98, 12_90, 2_06, 9, 21_51_75, 13_14, 1_36, 1_71_98, 12_90, 2_06, 9, 5_63_59, 42, 12_20_09, 9, 1_64_66, 16, 8_73_44, 45_37, 9, 47_17, 7_83_81, 6, 15_99_58, 7, 15, 2_44_80, 6_18, 4, 5_27, 2_26_93, 9, 3_04, 4, 27_77, 2_44_80, 98_74, 4, 4_35_23, 5_94, 4, 8_03, 1_83_92, 3_31_89, 18, 4, 4_35_23, 2_44_47, 5, 5, 5, 16, 1_00, 2_49_55, 8_36_58, 96_26, 14_40_57, 15, 8_39, 2_23_35, 16, 1_36, 2_49_55, 8_36_58, 8_34_79, 15, 3_91_02, 7_24, 16, 6_78, 6_45, 64_60, 13_28, 45_89, 42, 12_20_09, 11_57_74, 23, 35_59, 13_28, 4_68_76, 7, 1_36, 5_38_94, 19_40, 4_22_27, 4_11_59, 1_77_21, 8_23, 4_25, 4, 2_75_12, 9_87_22, 2_06, 1_36, 55_31, 49_70, 9_19, 1_73_36, 5, 2], [0, 2_00_80, 6_18, 83, 8_27_75, 47, 4_79, 9, 15_17, 73, 5_38_94, 3_33, 8_05_81, 11_01_17, 1_88_11, 52_56, 12_95, 51, 15_25_26, 2_97, 79_86, 3_90, 12_44_16, 5_38, 3_54_31, 2_14, 98, 1_50_44, 2_57_37, 1_36, 71_08, 4_37_01, 23, 7_56, 13_53_55, 7, 5, 2, 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, 5_81, 6_37_73, 11_94_55, 6, 14_77_97, 8_82_03, 7, 6_45, 70, 21, 32_85, 1_02_69, 5, 2, 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]]}
					# fmt: on

					self.tokenizer_integration_test_util(
					    expected_encoding=SCREAMING_SNAKE_CASE__				,							model_name='''susnato/ernie-m-base_pytorch'''				,							sequences=[
					        '''Transformers (formerly known as pytorch-transformers and pytorch-pretrained-bert) provides '''
					        '''general-purpose architectures (BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet...) for Natural '''
					        '''Language Understanding (NLU) and Natural Language Generation (NLG) with over32+ pretrained '''
					        '''models in100+ languages and deep interoperability between Jax, PyTorch and TensorFlow.''',
					        '''BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly '''
					        '''conditioning on both left and right context in all layers.''',
					        '''The quick brown fox jumps over the lazy dog.''',
					    ]				,							)

