"""simple docstring"""



import gc
import random
import unittest

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

from diffusers import AutoencoderKL, PNDMScheduler, StableDiffusionInpaintPipeline, UNetaDConditionModel
from diffusers.utils import floats_tensor, load_image, load_numpy, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu, slow

from ..pipeline_params import TEXT_GUIDED_IMAGE_INPAINTING_BATCH_PARAMS, TEXT_GUIDED_IMAGE_INPAINTING_PARAMS
from ..test_pipelines_common import PipelineKarrasSchedulerTesterMixin, PipelineLatentTesterMixin, PipelineTesterMixin


enable_full_determinism()






class  snake_case__      (       UpperCAmelCase_,						UpperCAmelCase_,						UpperCAmelCase_,						unittest.TestCase       ):
 _snake_case       :					Any							  =						StableDiffusionInpaintPipeline
 _snake_case       :					List[Any]							  =						TEXT_GUIDED_IMAGE_INPAINTING_PARAMS
 _snake_case       :					Any							  =						TEXT_GUIDED_IMAGE_INPAINTING_BATCH_PARAMS
 _snake_case       :					List[Any]							  =						frozenset(
     []       )  # TO-DO: update image_params once pipeline is refactored with VaeImageProcessor.preprocess
 _snake_case       :					Dict							  =						frozenset([]       )


 def 						a__   ( self						):
        torch.manual_seed(0						)
        __a       =    UNetaDConditionModel(
            block_out_channels=(32, 64)    ,		layers_per_block=2    ,		sample_size=32    ,		in_channels=9    ,		out_channels=4    ,		down_block_types=("DownBlock2D", "CrossAttnDownBlock2D")    ,		up_block_types=("CrossAttnUpBlock2D", "UpBlock2D")    ,		cross_attention_dim=32    ,		attention_head_dim=(2, 4)    ,		use_linear_projection=__a    ,		)
        __a       =    PNDMScheduler(skip_prk_steps=__a						)
        torch.manual_seed(0						)
        __a       =    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    ,		sample_size=128    ,		)
        torch.manual_seed(0						)
        __a       =    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    ,		hidden_act="gelu"    ,		projection_dim=512    ,		)
        __a       =    CLIPTextModel(__a						)
        __a       =    CLIPTokenizer.from_pretrained("hf-internal-testing/tiny-random-clip"						)

        __a       =    {
            "unet": unet,
            "scheduler": scheduler,
            "vae": vae,
            "text_encoder": text_encoder,
            "tokenizer": tokenizer,
            "safety_checker": None,
            "feature_extractor": None,
        }
        return components


 def 						a__   ( self    ,		lowerCamelCase    ,		lowerCamelCase=0						):
        __a       =    floats_tensor((1, 3, 32, 32)    ,		rng=random.Random(__a						)						).to(__a						)
        __a       =    image.cpu().permute(0    ,		2    ,		3    ,		1						)[0]
        __a       =    Image.fromarray(np.uinta(__a						)						).convert("RGB"						).resize((64, 64)						)
        __a       =    Image.fromarray(np.uinta(image + 4						)						).convert("RGB"						).resize((64, 64)						)
        if str(__a						).startswith("mps"						):
               __a       =    torch.manual_seed(__a						)
        else:
               __a       =    torch.Generator(device=__a						).manual_seed(__a						)
        __a       =    {
            "prompt": "A painting of a squirrel eating a burger",
            "image": init_image,
            "mask_image": mask_image,
            "generator": generator,
            "num_inference_steps": 2,
            "guidance_scale": 6.0,
            "output_type": "numpy",
        }
        return inputs


 def 						a__   ( self						):
        __a       =    "cpu"  # ensure determinism for the device-dependent torch.Generator
        __a       =    self.get_dummy_components()
        __a       =    StableDiffusionInpaintPipeline(**__a						)
        __a       =    sd_pipe.to(__a						)
        sd_pipe.set_progress_bar_config(disable=__a						)

        __a       =    self.get_dummy_inputs(__a						)
        __a       =    sd_pipe(**__a						).images
        __a       =    image[0, -3:, -3:, -1]

        assert image.shape == (1, 64, 64, 3)
        __a       =    np.array([0.4727, 0.5735, 0.3941, 0.5446, 0.5926, 0.4394, 0.5062, 0.4654, 0.4476]						)

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






 def 						a__   ( self						):
        super().test_inference_batch_single_identical(expected_max_diff=3E-3						)






@slow
@require_torch_gpu
class  snake_case__      (       unittest.TestCase       ):


 def 						a__   ( self						):
        super().tearDown()
        gc.collect()
        torch.cuda.empty_cache()


 def 						a__   ( self						):
        __a       =    load_image(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
            "/sd2-inpaint/init_image.png"						)
        __a       =    load_image(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint/mask.png"						)
        __a       =    load_numpy(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint"
            "/yellow_cat_sitting_on_a_park_bench.npy"						)

        __a       =    "stabilityai/stable-diffusion-2-inpainting"
        __a       =    StableDiffusionInpaintPipeline.from_pretrained(__a    ,		safety_checker=__a						)
        pipe.to(__a						)
        pipe.set_progress_bar_config(disable=__a						)
        pipe.enable_attention_slicing()

        __a       =    "Face of a yellow cat, high resolution, sitting on a park bench"

        __a       =    torch.manual_seed(0						)
        __a       =    pipe(
            prompt=__a    ,		image=__a    ,		mask_image=__a    ,		generator=__a    ,		output_type="np"    ,		)
        __a       =    output.images[0]

        assert image.shape == (512, 512, 3)
        assert np.abs(expected_image - image						).max() < 9E-3


 def 						a__   ( self						):
        __a       =    load_image(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
            "/sd2-inpaint/init_image.png"						)
        __a       =    load_image(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint/mask.png"						)
        __a       =    load_numpy(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint"
            "/yellow_cat_sitting_on_a_park_bench_fp16.npy"						)

        __a       =    "stabilityai/stable-diffusion-2-inpainting"
        __a       =    StableDiffusionInpaintPipeline.from_pretrained(
            __a    ,		torch_dtype=torch.floataa    ,		safety_checker=__a    ,		)
        pipe.to(__a						)
        pipe.set_progress_bar_config(disable=__a						)
        pipe.enable_attention_slicing()

        __a       =    "Face of a yellow cat, high resolution, sitting on a park bench"

        __a       =    torch.manual_seed(0						)
        __a       =    pipe(
            prompt=__a    ,		image=__a    ,		mask_image=__a    ,		generator=__a    ,		output_type="np"    ,		)
        __a       =    output.images[0]

        assert image.shape == (512, 512, 3)
        assert np.abs(expected_image - image						).max() < 5E-1






 def 						a__   ( self						):
        torch.cuda.empty_cache()
        torch.cuda.reset_max_memory_allocated()
        torch.cuda.reset_peak_memory_stats()

        __a       =    load_image(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
            "/sd2-inpaint/init_image.png"						)
        __a       =    load_image(
            "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint/mask.png"						)

        __a       =    "stabilityai/stable-diffusion-2-inpainting"
        __a       =    PNDMScheduler.from_pretrained(__a    ,		subfolder="scheduler"						)
        __a       =    StableDiffusionInpaintPipeline.from_pretrained(
            __a    ,		safety_checker=__a    ,		scheduler=__a    ,		torch_dtype=torch.floataa    ,		)
        pipe.to(__a						)
        pipe.set_progress_bar_config(disable=__a						)
        pipe.enable_attention_slicing(1						)
        pipe.enable_sequential_cpu_offload()

        __a       =    "Face of a yellow cat, high resolution, sitting on a park bench"

        __a       =    torch.manual_seed(0						)
        __a       =    pipe(
            prompt=__a    ,		image=__a    ,		mask_image=__a    ,		generator=__a    ,		num_inference_steps=2    ,		output_type="np"    ,		)

        __a       =    torch.cuda.max_memory_allocated()
        # make sure that less than 2.65 GB is allocated
        assert mem_bytes < 2.65 * 10**9





import unittest

import numpy as np

from transformers.testing_utils import require_pytesseract, require_torch
from transformers.utils import is_pytesseract_available, is_torch_available

from ...test_image_processing_common import ImageProcessingSavingTestMixin, prepare_image_inputs


if is_torch_available():
     import torch

if is_pytesseract_available():
     from PIL import Image

     from transformers import LayoutLMvaImageProcessor





class  lowerCamelCase__	(    unittest.TestCase):
     """simple docstring"""



     def __init__(self					,      __a					,      __a=7					,      __a=3					,      __a=18					,      __a=30					,      __a=4_00					,      __a=True					,      __a=None					,      __a=True					,      ):






           '''simple docstring'''



           lowerCamelCase             =		size if size is not None else {"height": 18, "width": 18}
           lowerCamelCase             =		parent
           lowerCamelCase             =		batch_size
           lowerCamelCase             =		num_channels
           lowerCamelCase             =		image_size
           lowerCamelCase             =		min_resolution
           lowerCamelCase             =		max_resolution
           lowerCamelCase             =		do_resize
           lowerCamelCase             =		size
           lowerCamelCase             =		apply_ocr







     def     _a   (self     ):






           '''simple docstring'''



           return {"do_resize": self.do_resize, "size": self.size, "apply_ocr": self.apply_ocr}





@require_torch
@require_pytesseract
class  lowerCamelCase__	(    UpperCAmelCase_							,     unittest.TestCase):
     """simple docstring"""



     _A      =      LayoutLMvaImageProcessor if is_pytesseract_available() else None







     def     _a   (self     ):






           '''simple docstring'''



           lowerCamelCase             =		LayoutLMvaImageProcessingTester(self     )







     @property
     def     _a   (self     ):






           '''simple docstring'''



           return self.image_processor_tester.prepare_image_processor_dict()







     def     _a   (self     ):






           '''simple docstring'''



           lowerCamelCase             =		self.image_processing_class(**self.image_processor_dict     )
           self.assertTrue(hasattr(__a					,      "do_resize"     )     )
           self.assertTrue(hasattr(__a					,      "size"     )     )
           self.assertTrue(hasattr(__a					,      "apply_ocr"     )     )







     def     _a   (self     ):






           '''simple docstring'''



           lowerCamelCase             =		self.image_processing_class.from_dict(self.image_processor_dict     )
           self.assertEqual(image_processor.size					,      {"height": 18, "width": 18}     )

           lowerCamelCase             =		self.image_processing_class.from_dict(self.image_processor_dict					,      size=42     )
           self.assertEqual(image_processor.size					,      {"height": 42, "width": 42}     )







     def     _a   (self     ):






           '''simple docstring'''



           pass







     def     _a   (self     ):






           '''simple docstring'''



           lowerCamelCase             =		self.image_processing_class(**self.image_processor_dict     )
           # create random PIL images
           lowerCamelCase             =		prepare_image_inputs(self.image_processor_tester					,      equal_resolution=__a     )
           for image in image_inputs:
                 self.assertIsInstance(__a					,      Image.Image     )

           # Test not batched input
           lowerCamelCase             =		image_processing(image_inputs[0]					,      return_tensors="pt"     )
           self.assertEqual(
               encoding.pixel_values.shape					,      (
                   1,
                   self.image_processor_tester.num_channels,
                   self.image_processor_tester.size["height"],
                   self.image_processor_tester.size["width"],
               )					,      )

           self.assertIsInstance(encoding.words					,      __a     )
           self.assertIsInstance(encoding.boxes					,      __a     )

           # Test batched
           lowerCamelCase             =		image_processing(__a					,      return_tensors="pt"     ).pixel_values
           self.assertEqual(
               encoded_images.shape					,      (
                   self.image_processor_tester.batch_size,
                   self.image_processor_tester.num_channels,
                   self.image_processor_tester.size["height"],
                   self.image_processor_tester.size["width"],
               )					,      )







     def     _a   (self     ):






           '''simple docstring'''



           lowerCamelCase             =		self.image_processing_class(**self.image_processor_dict     )
           # create random numpy tensors
           lowerCamelCase             =		prepare_image_inputs(self.image_processor_tester					,      equal_resolution=__a					,      numpify=__a     )
           for image in image_inputs:
                 self.assertIsInstance(__a					,      np.ndarray     )

           # Test not batched input
           lowerCamelCase             =		image_processing(image_inputs[0]					,      return_tensors="pt"     ).pixel_values
           self.assertEqual(
               encoded_images.shape					,      (
                   1,
                   self.image_processor_tester.num_channels,
                   self.image_processor_tester.size["height"],
                   self.image_processor_tester.size["width"],
               )					,      )

           # Test batched
           lowerCamelCase             =		image_processing(__a					,      return_tensors="pt"     ).pixel_values
           self.assertEqual(
               encoded_images.shape					,      (
                   self.image_processor_tester.batch_size,
                   self.image_processor_tester.num_channels,
                   self.image_processor_tester.size["height"],
                   self.image_processor_tester.size["width"],
               )					,      )







     def     _a   (self     ):






           '''simple docstring'''



           lowerCamelCase             =		self.image_processing_class(**self.image_processor_dict     )
           # create random PyTorch tensors
           lowerCamelCase             =		prepare_image_inputs(self.image_processor_tester					,      equal_resolution=__a					,      torchify=__a     )
           for image in image_inputs:
                 self.assertIsInstance(__a					,      torch.Tensor     )

           # Test not batched input
           lowerCamelCase             =		image_processing(image_inputs[0]					,      return_tensors="pt"     ).pixel_values
           self.assertEqual(
               encoded_images.shape					,      (
                   1,
                   self.image_processor_tester.num_channels,
                   self.image_processor_tester.size["height"],
                   self.image_processor_tester.size["width"],
               )					,      )

           # Test batched
           lowerCamelCase             =		image_processing(__a					,      return_tensors="pt"     ).pixel_values
           self.assertEqual(
               encoded_images.shape					,      (
                   self.image_processor_tester.batch_size,
                   self.image_processor_tester.num_channels,
                   self.image_processor_tester.size["height"],
                   self.image_processor_tester.size["width"],
               )					,      )







     def     _a   (self     ):






           '''simple docstring'''



           lowerCamelCase             =		LayoutLMvaImageProcessor()

           from datasets import load_dataset

           lowerCamelCase             =		load_dataset("hf-internal-testing/fixtures_docvqa"					,      split="test"     )

           lowerCamelCase             =		Image.open(ds[0]["file"]     ).convert("RGB"     )

           lowerCamelCase             =		image_processing(__a					,      return_tensors="pt"     )

           self.assertEqual(encoding.pixel_values.shape					,      (1, 3, 2_24, 2_24)     )
           self.assertEqual(len(encoding.words     )					,      len(encoding.boxes     )     )

           # fmt: off
           # the words and boxes were obtained with Tesseract 4.1.1
           lowerCamelCase             =		[["11:14", "to", "11:39", "a.m", "11:39", "to", "11:44", "a.m.", "11:44", "a.m.", "to", "12:25", "p.m.", "12:25", "to", "12:58", "p.m.", "12:58", "to", "4:00", "p.m.", "2:00", "to", "5:00", "p.m.", "Coffee", "Break", "Coffee", "will", "be", "served", "for", "men", "and", "women", "in", "the", "lobby", "adjacent", "to", "exhibit", "area.", "Please", "move", "into", "exhibit", "area.", "(Exhibits", "Open)", "TRRF", "GENERAL", "SESSION", "(PART", "|)", "Presiding:", "Lee", "A.", "Waller", "TRRF", "Vice", "President", "“Introductory", "Remarks”", "Lee", "A.", "Waller,", "TRRF", "Vice", "Presi-", "dent", "Individual", "Interviews", "with", "TRRF", "Public", "Board", "Members", "and", "Sci-", "entific", "Advisory", "Council", "Mem-", "bers", "Conducted", "by", "TRRF", "Treasurer", "Philip", "G.", "Kuehn", "to", "get", "answers", "which", "the", "public", "refrigerated", "warehousing", "industry", "is", "looking", "for.", "Plus", "questions", "from", "the", "floor.", "Dr.", "Emil", "M.", "Mrak,", "University", "of", "Cal-", "ifornia,", "Chairman,", "TRRF", "Board;", "Sam", "R.", "Cecil,", "University", "of", "Georgia", "College", "of", "Agriculture;", "Dr.", "Stanley", "Charm,", "Tufts", "University", "School", "of", "Medicine;", "Dr.", "Robert", "H.", "Cotton,", "ITT", "Continental", "Baking", "Company;", "Dr.", "Owen", "Fennema,", "University", "of", "Wis-", "consin;", "Dr.", "Robert", "E.", "Hardenburg,", "USDA.", "Questions", "and", "Answers", "Exhibits", "Open", "Capt.", "Jack", "Stoney", "Room", "TRRF", "Scientific", "Advisory", "Council", "Meeting", "Ballroom", "Foyer"]]  # noqa: E231
           lowerCamelCase             =		[[[1_41, 57, 2_14, 69], [2_28, 58, 2_52, 69], [1_41, 75, 2_16, 88], [2_30, 79, 2_80, 88], [1_42, 2_60, 2_18, 2_73], [2_30, 2_61, 2_55, 2_73], [1_43, 2_79, 2_18, 2_90], [2_31, 2_82, 2_90, 2_91], [1_43, 3_42, 2_18, 3_54], [2_31, 3_45, 2_89, 3_55], [2_02, 3_62, 2_27, 3_73], [1_43, 3_79, 2_20, 3_92], [2_31, 3_82, 2_91, 3_94], [1_44, 7_14, 2_20, 7_26], [2_31, 7_15, 2_56, 7_26], [1_44, 7_32, 2_20, 7_45], [2_32, 7_36, 2_91, 7_47], [1_44, 7_69, 2_18, 7_82], [2_31, 7_70, 2_56, 7_82], [1_41, 7_88, 2_02, 8_01], [2_15, 7_91, 2_74, 8_04], [1_43, 8_26, 2_04, 8_38], [2_15, 8_26, 2_40, 8_38], [1_42, 8_44, 2_02, 8_57], [2_15, 8_47, 2_74, 8_59], [3_34, 57, 4_27, 69], [4_40, 57, 5_22, 69], [3_69, 75, 4_61, 88], [4_69, 75, 5_16, 88], [5_28, 76, 5_62, 88], [5_70, 76, 6_67, 88], [6_75, 75, 7_11, 87], [7_21, 79, 7_78, 88], [7_89, 75, 8_40, 88], [3_69, 97, 4_70, 1_07], [4_84, 94, 5_07, 1_06], [5_18, 94, 5_62, 1_07], [5_76, 94, 6_55, 1_10], [6_68, 94, 7_92, 1_09], [8_04, 95, 8_29, 1_07], [3_69, 1_13, 4_65, 1_25], [4_77, 1_16, 5_47, 1_25], [5_62, 1_13, 6_58, 1_25], [6_71, 1_16, 7_48, 1_25], [7_61, 1_13, 8_11, 1_25], [3_69, 1_31, 4_65, 1_43], [4_77, 1_33, 5_48, 1_43], [5_63, 1_30, 6_98, 1_45], [7_10, 1_30, 8_02, 1_46], [3_36, 1_71, 4_12, 1_83], [4_23, 1_71, 5_72, 1_83], [5_82, 1_70, 7_16, 1_84], [7_28, 1_71, 8_17, 1_87], [8_29, 1_71, 8_44, 1_86], [3_38, 1_97, 4_82, 2_12], [5_07, 1_96, 5_57, 2_09], [5_69, 1_96, 5_95, 2_08], [6_10, 1_96, 7_02, 2_09], [5_05, 2_14, 5_83, 2_26], [5_95, 2_14, 6_56, 2_27], [6_70, 2_15, 8_07, 2_27], [3_35, 2_59, 5_43, 2_74], [5_56, 2_59, 7_08, 2_72], [3_72, 2_79, 4_22, 2_91], [4_35, 2_79, 4_60, 2_91], [4_74, 2_79, 5_74, 2_92], [5_87, 2_78, 6_64, 2_91], [6_76, 2_78, 7_38, 2_91], [7_51, 2_79, 8_34, 2_91], [3_72, 2_98, 4_34, 3_10], [3_35, 3_41, 4_83, 3_54], [4_97, 3_41, 6_55, 3_54], [6_67, 3_41, 7_28, 3_54], [7_40, 3_41, 8_25, 3_54], [3_35, 3_60, 4_30, 3_72], [4_42, 3_60, 5_34, 3_72], [5_45, 3_59, 6_87, 3_72], [6_97, 3_60, 7_54, 3_72], [7_65, 3_60, 8_23, 3_73], [3_34, 3_78, 4_28, 3_91], [4_40, 3_78, 5_77, 3_94], [5_90, 3_78, 7_05, 3_91], [7_20, 3_78, 8_01, 3_91], [3_34, 3_97, 4_00, 4_09], [3_70, 4_16, 5_29, 4_29], [5_44, 4_16, 5_76, 4_32], [5_87, 4_16, 6_65, 4_28], [6_77, 4_16, 8_14, 4_29], [3_72, 4_35, 4_52, 4_50], [4_65, 4_34, 4_95, 4_47], [5_11, 4_34, 6_00, 4_47], [6_11, 4_36, 6_37, 4_47], [6_49, 4_36, 6_94, 4_51], [7_05, 4_38, 8_24, 4_47], [3_69, 4_53, 4_52, 4_66], [4_64, 4_54, 5_09, 4_66], [5_22, 4_53, 6_11, 4_69], [6_25, 4_53, 7_92, 4_69], [3_70, 4_72, 5_56, 4_88], [5_70, 4_72, 6_84, 4_87], [6_97, 4_72, 7_18, 4_85], [7_32, 4_72, 8_35, 4_88], [3_69, 4_90, 4_11, 5_03], [4_25, 4_90, 4_84, 5_03], [4_96, 4_90, 6_35, 5_06], [6_45, 4_90, 7_07, 5_03], [7_18, 4_91, 7_61, 5_03], [7_71, 4_90, 8_40, 5_03], [3_36, 5_10, 3_74, 5_21], [3_88, 5_10, 4_47, 5_22], [4_60, 5_10, 4_89, 5_21], [5_03, 5_10, 5_80, 5_22], [5_92, 5_09, 7_36, 5_25], [7_45, 5_09, 7_70, 5_22], [7_81, 5_09, 8_40, 5_22], [3_38, 5_28, 4_34, 5_41], [4_48, 5_28, 5_96, 5_41], [6_09, 5_27, 6_87, 5_40], [7_00, 5_28, 7_92, 5_41], [3_36, 5_46, 3_97, 5_59], [4_07, 5_46, 4_31, 5_59], [4_43, 5_46, 5_25, 5_60], [5_37, 5_46, 6_80, 5_62], [6_88, 5_46, 7_14, 5_59], [7_22, 5_46, 8_37, 5_62], [3_36, 5_65, 4_49, 5_81], [4_61, 5_65, 4_85, 5_77], [4_97, 5_65, 6_65, 5_81], [6_81, 5_65, 7_18, 5_77], [7_32, 5_65, 8_37, 5_80], [3_37, 5_84, 4_38, 5_97], [4_52, 5_83, 5_21, 5_96], [5_35, 5_84, 6_77, 5_99], [6_90, 5_83, 7_87, 5_96], [8_01, 5_83, 8_25, 5_96], [3_38, 6_02, 4_78, 6_15], [4_92, 6_02, 5_30, 6_14], [5_43, 6_02, 6_38, 6_15], [6_50, 6_02, 6_76, 6_14], [6_88, 6_02, 7_88, 6_15], [8_02, 6_02, 8_43, 6_14], [3_37, 6_21, 5_02, 6_33], [5_16, 6_21, 6_15, 6_37], [6_29, 6_21, 7_74, 6_36], [7_89, 6_21, 8_27, 6_33], [3_37, 6_39, 4_18, 6_52], [4_32, 6_40, 5_71, 6_53], [5_87, 6_39, 7_31, 6_55], [7_43, 6_39, 7_69, 6_52], [7_80, 6_39, 8_41, 6_52], [3_38, 6_58, 4_40, 6_73], [4_55, 6_58, 4_91, 6_70], [5_08, 6_58, 6_02, 6_71], [6_16, 6_58, 6_38, 6_70], [6_54, 6_58, 8_35, 6_74], [3_37, 6_77, 4_29, 6_89], [3_37, 7_14, 4_82, 7_26], [4_95, 7_14, 5_48, 7_26], [5_61, 7_14, 6_83, 7_26], [3_38, 7_70, 4_61, 7_82], [4_74, 7_69, 5_54, 7_85], [4_89, 7_88, 5_62, 8_03], [5_76, 7_88, 6_43, 8_01], [6_56, 7_87, 7_51, 8_04], [7_64, 7_88, 8_44, 8_01], [3_34, 8_25, 4_21, 8_38], [4_30, 8_24, 5_74, 8_38], [5_84, 8_24, 7_23, 8_41], [3_35, 8_44, 4_50, 8_57], [4_64, 8_43, 5_83, 8_60], [6_28, 8_62, 7_55, 8_75], [7_69, 8_61, 8_48, 8_78]]]  # noqa: E231
           # fmt: on

           self.assertListEqual(encoding.words					,      __a     )
           self.assertListEqual(encoding.boxes					,      __a     )

           # with apply_OCR = False
           lowerCamelCase             =		LayoutLMvaImageProcessor(apply_ocr=__a     )

           lowerCamelCase             =		image_processing(__a					,      return_tensors="pt"     )

           self.assertEqual(encoding.pixel_values.shape					,      (1, 3, 2_24, 2_24)     )