






import unittest

from transformers import DebertaVaConfig, is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow, torch_device

from ...test_configuration_common import ConfigTester
from ...test_modeling_common import ModelTesterMixin, ids_tensor
from ...test_pipeline_mixin import PipelineTesterMixin


if is_torch_available():
							import torch

							from transformers import (
							    DebertaVaForMaskedLM,
							    DebertaVaForMultipleChoice,
							    DebertaVaForQuestionAnswering,
							    DebertaVaForSequenceClassification,
							    DebertaVaForTokenClassification,
							    DebertaVaModel,
							)
							from transformers.models.deberta_va.modeling_deberta_va import DEBERTA_V2_PRETRAINED_MODEL_ARCHIVE_LIST


class 							__a							(  __A						):





		'''simple docstring'''



		def __init__(						self ,    UpperCamelCase__ ,    UpperCamelCase__=13 ,    UpperCamelCase__=7 ,    UpperCamelCase__=True ,    UpperCamelCase__=True ,    UpperCamelCase__=True ,    UpperCamelCase__=True ,    UpperCamelCase__=99 ,    UpperCamelCase__=32 ,    UpperCamelCase__=5 ,    UpperCamelCase__=4 ,    UpperCamelCase__=37 ,    UpperCamelCase__="gelu" ,    UpperCamelCase__=0.1 ,    UpperCamelCase__=0.1 ,    UpperCamelCase__=512 ,    UpperCamelCase__=16 ,    UpperCamelCase__=2 ,    UpperCamelCase__=0.02 ,    UpperCamelCase__=False ,    UpperCamelCase__=True ,    UpperCamelCase__="None" ,    UpperCamelCase__=3 ,    UpperCamelCase__=4 ,    UpperCamelCase__=None ,    ):
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   parent
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   batch_size
						SCREAMING_SNAKE_CASE_   :	Any													=   seq_length
						SCREAMING_SNAKE_CASE_   :	str													=   is_training
						SCREAMING_SNAKE_CASE_   :	str													=   use_input_mask
						SCREAMING_SNAKE_CASE_   :	Tuple													=   use_token_type_ids
						SCREAMING_SNAKE_CASE_   :	str													=   use_labels
						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   vocab_size
						SCREAMING_SNAKE_CASE_   :	Dict													=   hidden_size
						SCREAMING_SNAKE_CASE_   :	str													=   num_hidden_layers
						SCREAMING_SNAKE_CASE_   :	List[str]													=   num_attention_heads
						SCREAMING_SNAKE_CASE_   :	Tuple													=   intermediate_size
						SCREAMING_SNAKE_CASE_   :	Any													=   hidden_act
						SCREAMING_SNAKE_CASE_   :	Tuple													=   hidden_dropout_prob
						SCREAMING_SNAKE_CASE_   :	str													=   attention_probs_dropout_prob
						SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   max_position_embeddings
						SCREAMING_SNAKE_CASE_   :	Tuple													=   type_vocab_size
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   type_sequence_label_size
						SCREAMING_SNAKE_CASE_   :	Any													=   initializer_range
						SCREAMING_SNAKE_CASE_   :	List[str]													=   num_labels
						SCREAMING_SNAKE_CASE_   :	Any													=   num_choices
						SCREAMING_SNAKE_CASE_   :	Any													=   relative_attention
						SCREAMING_SNAKE_CASE_   :	Tuple													=   position_biased_input
						SCREAMING_SNAKE_CASE_   :	Tuple													=   pos_att_type
						SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   scope


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   ids_tensor([self.batch_size, self.seq_length] ,    self.vocab_size       )

						SCREAMING_SNAKE_CASE_   :	List[str]													=   None
						if self.use_input_mask:
										SCREAMING_SNAKE_CASE_   :	Optional[int]													=   ids_tensor([self.batch_size, self.seq_length] ,    vocab_size=2       )

						SCREAMING_SNAKE_CASE_   :	str													=   None
						if self.use_token_type_ids:
										SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   ids_tensor([self.batch_size, self.seq_length] ,    self.type_vocab_size       )

						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   None
						SCREAMING_SNAKE_CASE_   :	List[str]													=   None
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   None
						if self.use_labels:
										SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   ids_tensor([self.batch_size] ,    self.type_sequence_label_size       )
										SCREAMING_SNAKE_CASE_   :	int													=   ids_tensor([self.batch_size, self.seq_length] ,    self.num_labels       )
										SCREAMING_SNAKE_CASE_   :	str													=   ids_tensor([self.batch_size] ,    self.num_choices       )

						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   self.get_config()

						return config, input_ids, token_type_ids, input_mask, sequence_labels, token_labels, choice_labels


		def   __snake_case			(						self       ):
						return DebertaVaConfig(
						    vocab_size=self.vocab_size ,    hidden_size=self.hidden_size ,    num_hidden_layers=self.num_hidden_layers ,    num_attention_heads=self.num_attention_heads ,    intermediate_size=self.intermediate_size ,    hidden_act=self.hidden_act ,    hidden_dropout_prob=self.hidden_dropout_prob ,    attention_probs_dropout_prob=self.attention_probs_dropout_prob ,    max_position_embeddings=self.max_position_embeddings ,    type_vocab_size=self.type_vocab_size ,    initializer_range=self.initializer_range ,    relative_attention=self.relative_attention ,    position_biased_input=self.position_biased_input ,    pos_att_type=self.pos_att_type ,    )


		def   __snake_case			(						self ,    UpperCamelCase__       ):
						self.parent.assertListEqual(list(result.loss.size()       ) ,    []       )


		def   __snake_case			(						self ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__       ):
						SCREAMING_SNAKE_CASE_   :	str													=   DebertaVaModel(config=UpperCamelCase__       )
						model.to(UpperCamelCase__       )
						model.eval()
						SCREAMING_SNAKE_CASE_   :	Tuple													=   model(UpperCamelCase__ ,    attention_mask=UpperCamelCase__ ,    token_type_ids=UpperCamelCase__       )[0]
						SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   model(UpperCamelCase__ ,    token_type_ids=UpperCamelCase__       )[0]
						SCREAMING_SNAKE_CASE_   :	Dict													=   model(UpperCamelCase__       )[0]

						self.parent.assertListEqual(list(sequence_output.size()       ) ,    [self.batch_size, self.seq_length, self.hidden_size]       )


		def   __snake_case			(						self ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__       ):
						SCREAMING_SNAKE_CASE_   :	List[str]													=   DebertaVaForMaskedLM(config=UpperCamelCase__       )
						model.to(UpperCamelCase__       )
						model.eval()
						SCREAMING_SNAKE_CASE_   :	List[str]													=   model(UpperCamelCase__ ,    attention_mask=UpperCamelCase__ ,    token_type_ids=UpperCamelCase__ ,    labels=UpperCamelCase__       )

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


		def   __snake_case			(						self ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__       ):
						SCREAMING_SNAKE_CASE_   :	Tuple													=   self.num_labels
						SCREAMING_SNAKE_CASE_   :	Any													=   DebertaVaForSequenceClassification(UpperCamelCase__       )
						model.to(UpperCamelCase__       )
						model.eval()
						SCREAMING_SNAKE_CASE_   :	Any													=   model(UpperCamelCase__ ,    attention_mask=UpperCamelCase__ ,    token_type_ids=UpperCamelCase__ ,    labels=UpperCamelCase__       )
						self.parent.assertListEqual(list(result.logits.size()       ) ,    [self.batch_size, self.num_labels]       )
						self.check_loss_output(UpperCamelCase__       )


		def   __snake_case			(						self ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__       ):
						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   self.num_labels
						SCREAMING_SNAKE_CASE_   :	int													=   DebertaVaForTokenClassification(config=UpperCamelCase__       )
						model.to(UpperCamelCase__       )
						model.eval()
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   model(UpperCamelCase__ ,    attention_mask=UpperCamelCase__ ,    token_type_ids=UpperCamelCase__ ,    labels=UpperCamelCase__       )
						self.parent.assertEqual(result.logits.shape ,    (self.batch_size, self.seq_length, self.num_labels)       )


		def   __snake_case			(						self ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__       ):
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   DebertaVaForQuestionAnswering(config=UpperCamelCase__       )
						model.to(UpperCamelCase__       )
						model.eval()
						SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   model(
						    UpperCamelCase__ ,    attention_mask=UpperCamelCase__ ,    token_type_ids=UpperCamelCase__ ,    start_positions=UpperCamelCase__ ,    end_positions=UpperCamelCase__ ,    )
						self.parent.assertEqual(result.start_logits.shape ,    (self.batch_size, self.seq_length)       )
						self.parent.assertEqual(result.end_logits.shape ,    (self.batch_size, self.seq_length)       )


		def   __snake_case			(						self ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__ ,    UpperCamelCase__       ):
						SCREAMING_SNAKE_CASE_   :	Any													=   DebertaVaForMultipleChoice(config=UpperCamelCase__       )
						model.to(UpperCamelCase__       )
						model.eval()
						SCREAMING_SNAKE_CASE_   :	Tuple													=   input_ids.unsqueeze(1       ).expand(-1 ,    self.num_choices ,    -1       ).contiguous()
						SCREAMING_SNAKE_CASE_   :	List[str]													=   token_type_ids.unsqueeze(1       ).expand(-1 ,    self.num_choices ,    -1       ).contiguous()
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   input_mask.unsqueeze(1       ).expand(-1 ,    self.num_choices ,    -1       ).contiguous()
						SCREAMING_SNAKE_CASE_   :	Tuple													=   model(
						    UpperCamelCase__ ,    attention_mask=UpperCamelCase__ ,    token_type_ids=UpperCamelCase__ ,    labels=UpperCamelCase__ ,    )
						self.parent.assertEqual(result.logits.shape ,    (self.batch_size, self.num_choices)       )






		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Any													=   self.prepare_config_and_inputs()
						(
						    SCREAMING_SNAKE_CASE_       
						)   :	Union[str, Any]													=   config_and_inputs
						SCREAMING_SNAKE_CASE_   :	List[str]													=   {'input_ids': input_ids, 'token_type_ids': token_type_ids, 'attention_mask': input_mask}
						return config, inputs_dict






@require_torch
class 							__a							(  __A ,	__A ,	unittest.TestCase						):





		'''simple docstring'''



		UpperCAmelCase__      :				Union[str, Any]				    =						(
		    (
		        DebertaVaModel,
		        DebertaVaForMaskedLM,
		        DebertaVaForSequenceClassification,
		        DebertaVaForTokenClassification,
		        DebertaVaForQuestionAnswering,
		        DebertaVaForMultipleChoice,
		    )
		    if is_torch_available()
		    else ()
		)
		UpperCAmelCase__      :				Tuple				    =						(
		    {
		        """feature-extraction""": DebertaVaModel,
		        """fill-mask""": DebertaVaForMaskedLM,
		        """question-answering""": DebertaVaForQuestionAnswering,
		        """text-classification""": DebertaVaForSequenceClassification,
		        """token-classification""": DebertaVaForTokenClassification,
		        """zero-shot""": DebertaVaForSequenceClassification,
		    }
		    if is_torch_available()
		    else {}
		)

		UpperCAmelCase__      :				Optional[int]				    =						True
		UpperCAmelCase__      :				int				    =						False
		UpperCAmelCase__      :				Union[str, Any]				    =						False
		UpperCAmelCase__      :				List[str]				    =						False
		UpperCAmelCase__      :				Optional[int]				    =						False


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Any													=   DebertaVaModelTester(self       )
						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   ConfigTester(self ,    config_class=UpperCamelCase__ ,    hidden_size=37       )


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


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	int													=   self.model_tester.prepare_config_and_inputs()
						self.model_tester.create_and_check_deberta_model(*UpperCamelCase__       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   self.model_tester.prepare_config_and_inputs()
						self.model_tester.create_and_check_deberta_for_sequence_classification(*UpperCamelCase__       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   self.model_tester.prepare_config_and_inputs()
						self.model_tester.create_and_check_deberta_for_masked_lm(*UpperCamelCase__       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   self.model_tester.prepare_config_and_inputs()
						self.model_tester.create_and_check_deberta_for_question_answering(*UpperCamelCase__       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   self.model_tester.prepare_config_and_inputs()
						self.model_tester.create_and_check_deberta_for_token_classification(*UpperCamelCase__       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Dict													=   self.model_tester.prepare_config_and_inputs()
						self.model_tester.create_and_check_deberta_for_multiple_choice(*UpperCamelCase__       )






		@slow
		def   __snake_case			(						self       ):
						for model_name in DEBERTA_V2_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
										SCREAMING_SNAKE_CASE_   :	Tuple													=   DebertaVaModel.from_pretrained(UpperCamelCase__       )
										self.assertIsNotNone(UpperCamelCase__       )






@require_torch
@require_sentencepiece
@require_tokenizers
class 							__a							(  unittest.TestCase						):





		'''simple docstring'''



		@unittest.skip(reason='Model not available yet'       )
		def   __snake_case			(						self       ):
						pass






		@slow
		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	List[str]													=   DebertaVaModel.from_pretrained('microsoft/deberta-v2-xlarge'       )

						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   torch.tensor([[0, 31414, 232, 328, 740, 1140, 12695, 69, 46078, 1588, 2]]       )
						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   torch.tensor([[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]       )
						with torch.no_grad():
										SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   model(UpperCamelCase__ ,    attention_mask=UpperCamelCase__       )[0]
						# compare the actual values for a slice.
						SCREAMING_SNAKE_CASE_   :	Dict													=   torch.tensor(
						    [[[0.23_56, 0.19_48, 0.03_69], [-0.10_63, 0.35_86, -0.51_52], [-0.63_99, -0.02_59, -0.25_25]]]       )
						self.assertTrue(torch.allclose(output[:, 1:4, 1:4] ,    UpperCamelCase__ ,    atol=1E-4       ) ,    F'''{output[:, 1:4, 1:4]}'''       )







import json
import os
import shutil
import tempfile
import unittest

import numpy as np
import pytest

from transformers import BertTokenizer, BertTokenizerFast
from transformers.models.bert.tokenization_bert import VOCAB_FILES_NAMES
from transformers.testing_utils import require_vision
from transformers.utils import IMAGE_PROCESSOR_NAME, is_vision_available


if is_vision_available():
				from PIL import Image

				from transformers import AlignProcessor, EfficientNetImageProcessor


@require_vision
class 							__a							(  unittest.TestCase						):





		'''simple docstring'''



		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   tempfile.mkdtemp()

						SCREAMING_SNAKE_CASE_   :	List[str]													=   [
						    '[UNK]',
						    '[CLS]',
						    '[SEP]',
						    '[PAD]',
						    '[MASK]',
						    'want',
						    '##want',
						    '##ed',
						    'wa',
						    'un',
						    'runn',
						    '##ing',
						    ',',
						    'low',
						    'lowest',
						]
						SCREAMING_SNAKE_CASE_   :	Dict													=   os.path.join(self.tmpdirname ,    VOCAB_FILES_NAMES['vocab_file']       )
						with open(self.vocab_file ,    'w' ,    encoding='utf-8'       ) as vocab_writer:
										vocab_writer.write(''.join([x + '\n' for x in vocab_tokens]       )       )

						SCREAMING_SNAKE_CASE_   :	Tuple													=   {
						    'do_resize': True,
						    'size': 20,
						    'do_center_crop': True,
						    'crop_size': 18,
						    'do_normalize': True,
						    'image_mean': [0.48_14_54_66, 0.4_57_82_75, 0.40_82_10_73],
						    'image_std': [0.26_86_29_54, 0.26_13_02_58, 0.27_57_77_11],
						}
						SCREAMING_SNAKE_CASE_   :	str													=   os.path.join(self.tmpdirname ,    UpperCamelCase__       )
						with open(self.image_processor_file ,    'w' ,    encoding='utf-8'       ) as fp:
										json.dump(UpperCamelCase__ ,    UpperCamelCase__       )


		def   __snake_case			(						self ,    **UpperCamelCase__       ):
						return BertTokenizer.from_pretrained(self.tmpdirname ,    **UpperCamelCase__       )


		def   __snake_case			(						self ,    **UpperCamelCase__       ):
						return BertTokenizerFast.from_pretrained(self.tmpdirname ,    **UpperCamelCase__       )


		def   __snake_case			(						self ,    **UpperCamelCase__       ):
						return EfficientNetImageProcessor.from_pretrained(self.tmpdirname ,    **UpperCamelCase__       )


		def   __snake_case			(						self       ):
						shutil.rmtree(self.tmpdirname       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   [np.random.randint(255 ,    size=(3, 30, 400) ,    dtype=np.uinta       )]
						SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   [Image.fromarray(np.moveaxis(UpperCamelCase__ ,    0 ,    -1       )       ) for x in image_inputs]
						return image_inputs


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Tuple													=   self.get_tokenizer()
						SCREAMING_SNAKE_CASE_   :	Dict													=   self.get_rust_tokenizer()
						SCREAMING_SNAKE_CASE_   :	Dict													=   self.get_image_processor()

						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   AlignProcessor(tokenizer=UpperCamelCase__ ,    image_processor=UpperCamelCase__       )
						processor_slow.save_pretrained(self.tmpdirname       )
						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   AlignProcessor.from_pretrained(self.tmpdirname ,    use_fast=UpperCamelCase__       )

						SCREAMING_SNAKE_CASE_   :	List[Any]													=   AlignProcessor(tokenizer=UpperCamelCase__ ,    image_processor=UpperCamelCase__       )
						processor_fast.save_pretrained(self.tmpdirname       )
						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   AlignProcessor.from_pretrained(self.tmpdirname       )

						self.assertEqual(processor_slow.tokenizer.get_vocab() ,    tokenizer_slow.get_vocab()       )
						self.assertEqual(processor_fast.tokenizer.get_vocab() ,    tokenizer_fast.get_vocab()       )
						self.assertEqual(tokenizer_slow.get_vocab() ,    tokenizer_fast.get_vocab()       )
						self.assertIsInstance(processor_slow.tokenizer ,    UpperCamelCase__       )
						self.assertIsInstance(processor_fast.tokenizer ,    UpperCamelCase__       )

						self.assertEqual(processor_slow.image_processor.to_json_string() ,    image_processor.to_json_string()       )
						self.assertEqual(processor_fast.image_processor.to_json_string() ,    image_processor.to_json_string()       )
						self.assertIsInstance(processor_slow.image_processor ,    UpperCamelCase__       )
						self.assertIsInstance(processor_fast.image_processor ,    UpperCamelCase__       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   AlignProcessor(tokenizer=self.get_tokenizer() ,    image_processor=self.get_image_processor()       )
						processor.save_pretrained(self.tmpdirname       )

						SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   self.get_tokenizer(bos_token='(BOS)' ,    eos_token='(EOS)'       )
						SCREAMING_SNAKE_CASE_   :	int													=   self.get_image_processor(do_normalize=UpperCamelCase__ ,    padding_value=1.0       )

						SCREAMING_SNAKE_CASE_   :	List[Any]													=   AlignProcessor.from_pretrained(
						    self.tmpdirname ,    bos_token='(BOS)' ,    eos_token='(EOS)' ,    do_normalize=UpperCamelCase__ ,    padding_value=1.0       )

						self.assertEqual(processor.tokenizer.get_vocab() ,    tokenizer_add_kwargs.get_vocab()       )
						self.assertIsInstance(processor.tokenizer ,    UpperCamelCase__       )

						self.assertEqual(processor.image_processor.to_json_string() ,    image_processor_add_kwargs.to_json_string()       )
						self.assertIsInstance(processor.image_processor ,    UpperCamelCase__       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	int													=   self.get_image_processor()
						SCREAMING_SNAKE_CASE_   :	str													=   self.get_tokenizer()

						SCREAMING_SNAKE_CASE_   :	str													=   AlignProcessor(tokenizer=UpperCamelCase__ ,    image_processor=UpperCamelCase__       )

						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   self.prepare_image_inputs()

						SCREAMING_SNAKE_CASE_   :	int													=   image_processor(UpperCamelCase__ ,    return_tensors='np'       )
						SCREAMING_SNAKE_CASE_   :	Dict													=   processor(images=UpperCamelCase__ ,    return_tensors='np'       )

						for key in input_image_proc.keys():
										self.assertAlmostEqual(input_image_proc[key].sum() ,    input_processor[key].sum() ,    delta=1E-2       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	List[str]													=   self.get_image_processor()
						SCREAMING_SNAKE_CASE_   :	Optional[Any]													=   self.get_tokenizer()

						SCREAMING_SNAKE_CASE_   :	List[str]													=   AlignProcessor(tokenizer=UpperCamelCase__ ,    image_processor=UpperCamelCase__       )

						SCREAMING_SNAKE_CASE_   :	Tuple													=   'lower newer'

						SCREAMING_SNAKE_CASE_   :	Tuple													=   processor(text=UpperCamelCase__       )

						SCREAMING_SNAKE_CASE_   :	int													=   tokenizer(UpperCamelCase__ ,    padding='max_length' ,    max_length=64       )

						for key in encoded_tok.keys():
										self.assertListEqual(encoded_tok[key] ,    encoded_processor[key]       )


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Dict													=   self.get_image_processor()
						SCREAMING_SNAKE_CASE_   :	List[Any]													=   self.get_tokenizer()

						SCREAMING_SNAKE_CASE_   :	str													=   AlignProcessor(tokenizer=UpperCamelCase__ ,    image_processor=UpperCamelCase__       )

						SCREAMING_SNAKE_CASE_   :	str													=   'lower newer'
						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   self.prepare_image_inputs()

						SCREAMING_SNAKE_CASE_   :	Optional[int]													=   processor(text=UpperCamelCase__ ,    images=UpperCamelCase__       )

						self.assertListEqual(list(inputs.keys()       ) ,    ['input_ids', 'token_type_ids', 'attention_mask', 'pixel_values']       )

						# test if it raises when no input is passed
						with pytest.raises(UpperCamelCase__       ):
										processor()


		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	List[str]													=   self.get_image_processor()
						SCREAMING_SNAKE_CASE_   :	List[str]													=   self.get_tokenizer()

						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   AlignProcessor(tokenizer=UpperCamelCase__ ,    image_processor=UpperCamelCase__       )

						SCREAMING_SNAKE_CASE_   :	Tuple													=   [[1, 4, 5, 8, 1, 0, 8], [3, 4, 3, 1, 1, 8, 9]]

						SCREAMING_SNAKE_CASE_   :	List[str]													=   processor.batch_decode(UpperCamelCase__       )
						SCREAMING_SNAKE_CASE_   :	Any													=   tokenizer.batch_decode(UpperCamelCase__       )

						self.assertListEqual(UpperCamelCase__ ,    UpperCamelCase__       )






		def   __snake_case			(						self       ):
						SCREAMING_SNAKE_CASE_   :	Dict													=   self.get_image_processor()
						SCREAMING_SNAKE_CASE_   :	int													=   self.get_tokenizer()

						SCREAMING_SNAKE_CASE_   :	Union[str, Any]													=   AlignProcessor(tokenizer=UpperCamelCase__ ,    image_processor=UpperCamelCase__       )

						SCREAMING_SNAKE_CASE_   :	str													=   'lower newer'
						SCREAMING_SNAKE_CASE_   :	List[str]													=   self.prepare_image_inputs()

						SCREAMING_SNAKE_CASE_   :	List[Any]													=   processor(text=UpperCamelCase__ ,    images=UpperCamelCase__       )

						self.assertListEqual(list(inputs.keys()       ) ,    processor.model_input_names       )