code: 
  
  
  
  
  
  '''simple docstring'''
  
  
  
  
  import random
  import unittest
  
  import numpy as np
  
  from transformers.testing_utils import require_torch, require_vision
  from transformers.utils import is_torch_available, is_vision_available
  
  from ...test_image_processing_common import ImageProcessingSavingTestMixin, prepare_image_inputs
  
  
  if is_torch_available():
  			import torch
  
  if is_vision_available():
  			import PIL
  
  			from transformers import FlavaImageProcessor
  			from transformers.image_utils import PILImageResampling
  			from transformers.models.flava.image_processing_flava import (
  			    FLAVA_CODEBOOK_MEAN,
  			    FLAVA_CODEBOOK_STD,
  			    FLAVA_IMAGE_MEAN,
  			    FLAVA_IMAGE_STD,
  			)
  else:
  			a__				: Optional[int]									=    None
  
  
  
  
  
  
  class 							__snake_case    (				unittest.TestCase       ):
  
  
  
  
  
  	def __init__(		self			,					UpperCamelCase_			,					UpperCamelCase_=7			,					UpperCamelCase_=3			,					UpperCamelCase_=30			,					UpperCamelCase_=400			,					UpperCamelCase_=True			,					UpperCamelCase_=None			,					UpperCamelCase_=True			,					UpperCamelCase_=None			,					UpperCamelCase_=None			,					UpperCamelCase_=True			,					UpperCamelCase_=1 / 255			,					UpperCamelCase_=True			,					UpperCamelCase_=FLAVA_IMAGE_MEAN			,					UpperCamelCase_=FLAVA_IMAGE_STD			,					UpperCamelCase_=14			,					UpperCamelCase_=75			,					UpperCamelCase_=None			,					UpperCamelCase_=16			,					UpperCamelCase_=0.3			,					UpperCamelCase_=None			,					UpperCamelCase_=True			,					UpperCamelCase_=None			,					UpperCamelCase_=None			,					UpperCamelCase_=True			,					UpperCamelCase_=None			,					UpperCamelCase_=True			,					UpperCamelCase_=True			,					UpperCamelCase_=FLAVA_CODEBOOK_MEAN			,					UpperCamelCase_=FLAVA_CODEBOOK_STD			,					)			->		List[Any]:
  		snake_case__  					=      size if size is not None else {'height': 224, 'width': 224}
  		snake_case__  					=      crop_size if crop_size is not None else {'height': 224, 'width': 224}
  		snake_case__  					=      codebook_size if codebook_size is not None else {'height': 112, 'width': 112}
  		snake_case__  					=      codebook_crop_size if codebook_crop_size is not None else {'height': 112, 'width': 112}
  
  		snake_case__  					=      parent
  		snake_case__  					=      batch_size
  		snake_case__  					=      num_channels
  		snake_case__  					=      do_resize
  		snake_case__  					=      do_rescale
  		snake_case__  					=      rescale_factor
  		snake_case__  					=      min_resolution
  		snake_case__  					=      max_resolution
  		snake_case__  					=      size
  		snake_case__  					=      resample if resample is not None else PILImageResampling.BICUBIC
  		snake_case__  					=      do_normalize
  		snake_case__  					=      image_mean
  		snake_case__  					=      image_std
  		snake_case__  					=      do_center_crop
  		snake_case__  					=      crop_size
  
  		snake_case__  					=      input_size_patches
  		snake_case__  					=      total_mask_patches
  		snake_case__  					=      mask_group_max_patches
  		snake_case__  					=      mask_group_min_patches
  		snake_case__  					=      mask_group_min_aspect_ratio
  		snake_case__  					=      mask_group_max_aspect_ratio
  
  		snake_case__  					=      codebook_do_resize
  		snake_case__  					=      codebook_size
  		snake_case__  					=      codebook_resample if codebook_resample is not None else PILImageResampling.LANCZOS
  		snake_case__  					=      codebook_do_center_crop
  		snake_case__  					=      codebook_crop_size
  		snake_case__  					=      codebook_do_map_pixels
  		snake_case__  					=      codebook_do_normalize
  		snake_case__  					=      codebook_image_mean
  		snake_case__  					=      codebook_image_std
  
  
  
  
  
  	def      _snake_case      (		self		)			->		Optional[int]:
  		return {
  		    "image_mean": self.image_mean,
  		    "image_std": self.image_std,
  		    "do_normalize": self.do_normalize,
  		    "do_resize": self.do_resize,
  		    "size": self.size,
  		    "resample": self.resample,
  		    "do_rescale": self.do_rescale,
  		    "rescale_factor": self.rescale_factor,
  		    "do_center_crop": self.do_center_crop,
  		    "crop_size": self.crop_size,
  		    "input_size_patches": self.input_size_patches,
  		    "total_mask_patches": self.total_mask_patches,
  		    "mask_group_max_patches": self.mask_group_max_patches,
  		    "mask_group_min_patches": self.mask_group_min_patches,
  		    "mask_group_min_aspect_ratio": self.mask_group_min_aspect_ratio,
  		    "mask_group_max_aspect_ratio": self.mask_group_min_aspect_ratio,
  		    "codebook_do_resize": self.codebook_do_resize,
  		    "codebook_size": self.codebook_size,
  		    "codebook_resample": self.codebook_resample,
  		    "codebook_do_center_crop": self.codebook_do_center_crop,
  		    "codebook_crop_size": self.codebook_crop_size,
  		    "codebook_do_map_pixels": self.codebook_do_map_pixels,
  		    "codebook_do_normalize": self.codebook_do_normalize,
  		    "codebook_image_mean": self.codebook_image_mean,
  		    "codebook_image_std": self.codebook_image_std,
  		}
  
  
  
  
  
  	def      _snake_case      (		self		)			->		List[Any]:
  		return (self.size["height"], self.size["width"])
  
  
  
  
  
  	def      _snake_case      (		self		)			->		str:
  		return (
  		    (self.input_size_patches, self.input_size_patches)
  		    if not isinstance(self.input_size_patches			,					UpperCamelCase_		)
  		    else self.input_size_patches
  		)
  
  
  
  
  
  	def      _snake_case      (		self		)			->		str:
  		return (self.codebook_size["height"], self.codebook_size["width"])
  
  
  
  
  
  
  @require_torch
  @require_vision
  class 							__snake_case    (				__magic_name__					,					unittest.TestCase       ):
  	__lowerCAmelCase						=     FlavaImageProcessor if is_vision_available() else None
  	__lowerCAmelCase						=     None
  
  
  
  
  
  	def      _snake_case      (		self		)			->		Dict:
  		snake_case__  					=      FlavaImageProcessingTester(self		)
  
  
  
  
  
  	@property
  	def      _snake_case      (		self		)			->		Tuple:
  		return self.image_processor_tester.prepare_image_processor_dict()
  
  
  
  
  
  	def      _snake_case      (		self		)			->		List[str]:
  		snake_case__  					=      self.image_processing_class(**self.image_processor_dict		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'image_mean'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'image_std'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'do_normalize'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'do_resize'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'resample'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'crop_size'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'do_center_crop'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'do_rescale'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'rescale_factor'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'masking_generator'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_do_resize'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_size'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_resample'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_do_center_crop'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_crop_size'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_do_map_pixels'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_do_normalize'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_image_mean'		)		)
  		self.assertTrue(hasattr(UpperCamelCase_			,					'codebook_image_std'		)		)
  
  
  
  
  
  	def      _snake_case      (		self		)			->		Tuple:
  		snake_case__  					=      self.image_processing_class.from_dict(self.image_processor_dict		)
  		self.assertEqual(image_processor.size			,					{'height': 224, 'width': 224}		)
  		self.assertEqual(image_processor.crop_size			,					{'height': 224, 'width': 224}		)
  		self.assertEqual(image_processor.codebook_size			,					{'height': 112, 'width': 112}		)
  		self.assertEqual(image_processor.codebook_crop_size			,					{'height': 112, 'width': 112}		)
  
  		snake_case__  					=      self.image_processing_class.from_dict(
  		    self.image_processor_dict			,					size=42			,					crop_size=84			,					codebook_size=33			,					codebook_crop_size=66		)
  		self.assertEqual(image_processor.size			,					{'height': 42, 'width': 42}		)
  		self.assertEqual(image_processor.crop_size			,					{'height': 84, 'width': 84}		)
  		self.assertEqual(image_processor.codebook_size			,					{'height': 33, 'width': 33}		)
  		self.assertEqual(image_processor.codebook_crop_size			,					{'height': 66, 'width': 66}		)
  
  
  
  
  
  	def      _snake_case      (		self		)			->		List[Any]:
  		pass
  
  
  
  
  
  	def      _snake_case      (		self		)			->		Optional[int]:
  		# Initialize image_processing
  		snake_case__  					=      self.image_processing_class(**self.image_processor_dict		)
  		# create random PIL images
  		snake_case__  					=      prepare_image_inputs(self.image_processor_tester			,					equal_resolution=UpperCamelCase_		)
  		for image in image_inputs:
  			self.assertIsInstance(UpperCamelCase_			,					PIL.Image.Image		)
  
  		# Test not batched input
  		snake_case__  					=      image_processing(image_inputs[0]			,					return_tensors='pt'		)
  
  		# Test no bool masked pos
  		self.assertFalse('bool_masked_pos' in encoded_images		)
  
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_image_size()
  
  		self.assertEqual(
  		    encoded_images.pixel_values.shape			,					(1, self.image_processor_tester.num_channels, expected_height, expected_width)			,					)
  
  		# Test batched
  		snake_case__  					=      image_processing(UpperCamelCase_			,					return_tensors='pt'		)
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_image_size()
  
  		# Test no bool masked pos
  		self.assertFalse('bool_masked_pos' in encoded_images		)
  
  		self.assertEqual(
  		    encoded_images.pixel_values.shape			,					(
  		        self.image_processor_tester.batch_size,
  		        self.image_processor_tester.num_channels,
  		        expected_height,
  		        expected_width,
  		    )			,					)
  
  
  
  
  
  	def      _snake_case      (		self			,					UpperCamelCase_			,					UpperCamelCase_		)			->		Dict:
  		# Initialize image_processing
  		snake_case__  					=      self.image_processing_class(**self.image_processor_dict		)
  		# create random tensors
  		snake_case__  					=      prepare_image_inputs(self.image_processor_tester			,					equal_resolution=UpperCamelCase_			,					**UpperCamelCase_		)
  		for image in image_inputs:
  			self.assertIsInstance(UpperCamelCase_			,					UpperCamelCase_		)
  
  		# Test not batched input
  		snake_case__  					=      image_processing(image_inputs[0]			,					return_tensors='pt'		)
  
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_image_size()
  		self.assertEqual(
  		    encoded_images.pixel_values.shape			,					(1, self.image_processor_tester.num_channels, expected_height, expected_width)			,					)
  
  		snake_case__  					=      image_processing(UpperCamelCase_			,					return_image_mask=UpperCamelCase_			,					return_tensors='pt'		)
  
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_image_size()
  		self.assertEqual(
  		    encoded_images.pixel_values.shape			,					(
  		        self.image_processor_tester.batch_size,
  		        self.image_processor_tester.num_channels,
  		        expected_height,
  		        expected_width,
  		    )			,					)
  
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_mask_size()
  		self.assertEqual(
  		    encoded_images.bool_masked_pos.shape			,					(
  		        self.image_processor_tester.batch_size,
  		        expected_height,
  		        expected_width,
  		    )			,					)
  
  		# Test batched
  		snake_case__  					=      image_processing(UpperCamelCase_			,					return_tensors='pt'		).pixel_values
  
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_image_size()
  		self.assertEqual(
  		    encoded_images.shape			,					(
  		        self.image_processor_tester.batch_size,
  		        self.image_processor_tester.num_channels,
  		        expected_height,
  		        expected_width,
  		    )			,					)
  
  		# Test masking
  		snake_case__  					=      image_processing(UpperCamelCase_			,					return_image_mask=UpperCamelCase_			,					return_tensors='pt'		)
  
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_image_size()
  		self.assertEqual(
  		    encoded_images.pixel_values.shape			,					(
  		        self.image_processor_tester.batch_size,
  		        self.image_processor_tester.num_channels,
  		        expected_height,
  		        expected_width,
  		    )			,					)
  
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_mask_size()
  		self.assertEqual(
  		    encoded_images.bool_masked_pos.shape			,					(
  		        self.image_processor_tester.batch_size,
  		        expected_height,
  		        expected_width,
  		    )			,					)
  
  
  
  
  
  	def      _snake_case      (		self		)			->		Union[str, Any]:
  		self._test_call_framework(np.ndarray			,					prepare_kwargs={'numpify': True}		)
  
  
  
  
  
  	def      _snake_case      (		self		)			->		List[str]:
  		self._test_call_framework(torch.Tensor			,					prepare_kwargs={'torchify': True}		)
  
  
  
  
  
  	def      _snake_case      (		self		)			->		Optional[int]:
  		# Initialize image_processing
  		random.seed(1234		)
  		snake_case__  					=      self.image_processing_class(**self.image_processor_dict		)
  		snake_case__  					=      prepare_image_inputs(self.image_processor_tester			,					equal_resolution=UpperCamelCase_			,					torchify=UpperCamelCase_		)
  
  		# Test not batched input
  		snake_case__  					=      image_processing(image_inputs[0]			,					return_image_mask=UpperCamelCase_			,					return_tensors='pt'		)
  		self.assertEqual(encoded_images.bool_masked_pos.sum().item()			,					75		)
  
  
  
  
  
  	def      _snake_case      (		self		)			->		Dict:
  		# Initialize image_processing
  		snake_case__  					=      self.image_processing_class(**self.image_processor_dict		)
  		# create random PIL images
  		snake_case__  					=      prepare_image_inputs(self.image_processor_tester			,					equal_resolution=UpperCamelCase_		)
  		for image in image_inputs:
  			self.assertIsInstance(UpperCamelCase_			,					PIL.Image.Image		)
  
  		# Test not batched input
  		snake_case__  					=      image_processing(image_inputs[0]			,					return_codebook_pixels=UpperCamelCase_			,					return_tensors='pt'		)
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_codebook_image_size()
  		self.assertEqual(
  		    encoded_images.codebook_pixel_values.shape			,					(1, self.image_processor_tester.num_channels, expected_height, expected_width)			,					)
  
  		# Test batched
  		snake_case__  					=      image_processing(UpperCamelCase_			,					return_codebook_pixels=UpperCamelCase_			,					return_tensors='pt'		)
  		snake_case__					,     snake_case__  					=      self.image_processor_tester.get_expected_codebook_image_size()
  		self.assertEqual(
  		    encoded_images.codebook_pixel_values.shape			,					(
  		        self.image_processor_tester.batch_size,
  		        self.image_processor_tester.num_channels,
  		        expected_height,
  		        expected_width,
  		    )			,					)
  
  
  
  
style_context: 
  
  
  
  
  
  '''simple docstring'''
  
  
  
  
  from typing import Callable
  
  
  
  
  def 	__lowerCamelCase (  UpperCAmelCase_       )      ->str:
  
  	def wrapper(UpperCAmelCase_       ):
  		snake_case__  					=      function_with_docstring.__doc__
  		return target_function
  
  	return wrapper
  
  
  
  