





"""simple docstring"""






from collections import deque
from math import floor
from random import random
from time import time



class 	lowerCAmelCase					:






       def __init__(   self     ):
              _UpperCAmelCase     =     {}






       def 							__A (   self    ,  a__    ,  a__    ,  a__=1     ):
              if self.graph.get(a__     ):
                     if self.graph[u].count([w, v]     ) == 0:
                            self.graph[u].append([w, v]     )
              else:
                     _UpperCAmelCase     =     [[w, v]]
              if not self.graph.get(a__     ):
                     _UpperCAmelCase     =     []






       def 							__A (   self     ):
              return list(self.graph     )






       def 							__A (   self    ,  a__    ,  a__     ):
              if self.graph.get(a__     ):
                     for _ in self.graph[u]:
                            if _[1] == v:
                                   self.graph[u].remove(a__     )






       def 							__A (   self    ,  a__=-2    ,  a__=-1     ):
              if s == d:
                     return []
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     []
              if s == -2:
                     _UpperCAmelCase     =     list(self.graph     )[0]
              stack.append(a__     )
              visited.append(a__     )
              _UpperCAmelCase     =     s

              while True:
                     # check if there is any non isolated nodes
                     if len(self.graph[s]     ) != 0:
                            _UpperCAmelCase     =     s
                            for node in self.graph[s]:
                                   if visited.count(node[1]     ) < 1:
                                          if node[1] == d:
                                                 visited.append(a__     )
                                                 return visited
                                          else:
                                                 stack.append(node[1]     )
                                                 visited.append(node[1]     )
                                                 _UpperCAmelCase     =     node[1]
                                                 break

            # check if all the children are visited
                     if s == ss:
                            stack.pop()
                            if len(a__     ) != 0:
                                   _UpperCAmelCase     =     stack[len(a__     ) - 1]
                     else:
                            _UpperCAmelCase     =     ss

                     # check if se have reached the starting point
                     if len(a__     ) == 0:
                            return visited






       def 							__A (   self    ,  a__=-1     ):
              if c == -1:
                     _UpperCAmelCase     =     floor(random() * 1_00_00     ) + 10
              for i in range(a__     ):
                     # every vertex has max 100 edges
                     for _ in range(floor(random() * 1_02     ) + 1     ):
                            _UpperCAmelCase     =     floor(random() * c     ) + 1
                            if n != i:
                                   self.add_pair(a__    ,  a__    ,  1     )






       def 							__A (   self    ,  a__=-2     ):
              _UpperCAmelCase     =     deque()
              _UpperCAmelCase     =     []
              if s == -2:
                     _UpperCAmelCase     =     list(self.graph     )[0]
              d.append(a__     )
              visited.append(a__     )
              while d:
                     _UpperCAmelCase     =     d.popleft()
                     if len(self.graph[s]     ) != 0:
                            for node in self.graph[s]:
                                   if visited.count(node[1]     ) < 1:
                                          d.append(node[1]     )
                                          visited.append(node[1]     )
              return visited






       def 							__A (   self    ,  a__     ):
              _UpperCAmelCase     =     0
              for x in self.graph:
                     for y in self.graph[x]:
                            if y[1] == u:
                                   count += 1
              return count






       def 							__A (   self    ,  a__     ):
              return len(self.graph[u]     )






       def 							__A (   self    ,  a__=-2     ):
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     []
              if s == -2:
                     _UpperCAmelCase     =     list(self.graph     )[0]
              stack.append(a__     )
              visited.append(a__     )
              _UpperCAmelCase     =     s
              _UpperCAmelCase     =     []

              while True:
                     # check if there is any non isolated nodes
                     if len(self.graph[s]     ) != 0:
                            _UpperCAmelCase     =     s
                            for node in self.graph[s]:
                                   if visited.count(node[1]     ) < 1:
                                          stack.append(node[1]     )
                                          visited.append(node[1]     )
                                          _UpperCAmelCase     =     node[1]
                                          break

            # check if all the children are visited
                     if s == ss:
                            sorted_nodes.append(stack.pop()     )
                            if len(a__     ) != 0:
                                   _UpperCAmelCase     =     stack[len(a__     ) - 1]
                     else:
                            _UpperCAmelCase     =     ss

                     # check if se have reached the starting point
                     if len(a__     ) == 0:
                            return sorted_nodes






       def 							__A (   self     ):
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     list(self.graph     )[0]
              stack.append(a__     )
              visited.append(a__     )
              _UpperCAmelCase     =     -2
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     s
              _UpperCAmelCase     =     False
              _UpperCAmelCase     =     set()

              while True:
                     # check if there is any non isolated nodes
                     if len(self.graph[s]     ) != 0:
                            _UpperCAmelCase     =     s
                            for node in self.graph[s]:
                                   if (
                                       visited.count(node[1]     ) > 0
                                       and node[1] != parent
                                       and indirect_parents.count(node[1]     ) > 0
                                       and not on_the_way_back
                                   ):
                                          _UpperCAmelCase     =     len(a__     ) - 1
                                          while len_stack >= 0:
                                                 if stack[len_stack] == node[1]:
                                                        anticipating_nodes.add(node[1]     )
                                                        break
                                                 else:
                                                        anticipating_nodes.add(stack[len_stack]     )
                                                        len_stack -= 1
                                   if visited.count(node[1]     ) < 1:
                                          stack.append(node[1]     )
                                          visited.append(node[1]     )
                                          _UpperCAmelCase     =     node[1]
                                          break

            # check if all the children are visited
                     if s == ss:
                            stack.pop()
                            _UpperCAmelCase     =     True
                            if len(a__     ) != 0:
                                   _UpperCAmelCase     =     stack[len(a__     ) - 1]
                     else:
                            _UpperCAmelCase     =     False
                            indirect_parents.append(a__     )
                            _UpperCAmelCase     =     s
                            _UpperCAmelCase     =     ss

                     # check if se have reached the starting point
                     if len(a__     ) == 0:
                            return list(a__     )






       def 							__A (   self     ):
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     list(self.graph     )[0]
              stack.append(a__     )
              visited.append(a__     )
              _UpperCAmelCase     =     -2
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     s
              _UpperCAmelCase     =     False
              _UpperCAmelCase     =     set()

              while True:
                     # check if there is any non isolated nodes
                     if len(self.graph[s]     ) != 0:
                            _UpperCAmelCase     =     s
                            for node in self.graph[s]:
                                   if (
                                       visited.count(node[1]     ) > 0
                                       and node[1] != parent
                                       and indirect_parents.count(node[1]     ) > 0
                                       and not on_the_way_back
                                   ):
                                          _UpperCAmelCase     =     len(a__     ) - 1
                                          while len_stack_minus_one >= 0:
                                                 if stack[len_stack_minus_one] == node[1]:
                                                        anticipating_nodes.add(node[1]     )
                                                        break
                                                 else:
                                                        return True
                                   if visited.count(node[1]     ) < 1:
                                          stack.append(node[1]     )
                                          visited.append(node[1]     )
                                          _UpperCAmelCase     =     node[1]
                                          break

            # check if all the children are visited
                     if s == ss:
                            stack.pop()
                            _UpperCAmelCase     =     True
                            if len(a__     ) != 0:
                                   _UpperCAmelCase     =     stack[len(a__     ) - 1]
                     else:
                            _UpperCAmelCase     =     False
                            indirect_parents.append(a__     )
                            _UpperCAmelCase     =     s
                            _UpperCAmelCase     =     ss

                     # check if se have reached the starting point
                     if len(a__     ) == 0:
                            return False






       def 							__A (   self    ,  a__=-2    ,  a__=-1     ):
              _UpperCAmelCase     =     time()
              self.dfs(a__    ,  a__     )
              _UpperCAmelCase     =     time()
              return end - begin






       def 							__A (   self    ,  a__=-2     ):
              _UpperCAmelCase     =     time()
              self.bfs(a__     )
              _UpperCAmelCase     =     time()
              return end - begin



class 	lowerCAmelCase					:






       def __init__(   self     ):
              _UpperCAmelCase     =     {}






       def 							__A (   self    ,  a__    ,  a__    ,  a__=1     ):
              # check if the u exists
              if self.graph.get(a__     ):
                     # if there already is a edge
                     if self.graph[u].count([w, v]     ) == 0:
                            self.graph[u].append([w, v]     )
              else:
                     # if u does not exist
                     _UpperCAmelCase     =     [[w, v]]
              # add the other way
              if self.graph.get(a__     ):
                     # if there already is a edge
                     if self.graph[v].count([w, u]     ) == 0:
                            self.graph[v].append([w, u]     )
              else:
                     # if u does not exist
                     _UpperCAmelCase     =     [[w, u]]






       def 							__A (   self    ,  a__    ,  a__     ):
              if self.graph.get(a__     ):
                     for _ in self.graph[u]:
                            if _[1] == v:
                                   self.graph[u].remove(a__     )
        # the other way round
              if self.graph.get(a__     ):
                     for _ in self.graph[v]:
                            if _[1] == u:
                                   self.graph[v].remove(a__     )






       def 							__A (   self    ,  a__=-2    ,  a__=-1     ):
              if s == d:
                     return []
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     []
              if s == -2:
                     _UpperCAmelCase     =     list(self.graph     )[0]
              stack.append(a__     )
              visited.append(a__     )
              _UpperCAmelCase     =     s

              while True:
                     # check if there is any non isolated nodes
                     if len(self.graph[s]     ) != 0:
                            _UpperCAmelCase     =     s
                            for node in self.graph[s]:
                                   if visited.count(node[1]     ) < 1:
                                          if node[1] == d:
                                                 visited.append(a__     )
                                                 return visited
                                          else:
                                                 stack.append(node[1]     )
                                                 visited.append(node[1]     )
                                                 _UpperCAmelCase     =     node[1]
                                                 break

            # check if all the children are visited
                     if s == ss:
                            stack.pop()
                            if len(a__     ) != 0:
                                   _UpperCAmelCase     =     stack[len(a__     ) - 1]
                     else:
                            _UpperCAmelCase     =     ss

                     # check if se have reached the starting point
                     if len(a__     ) == 0:
                            return visited






       def 							__A (   self    ,  a__=-1     ):
              if c == -1:
                     _UpperCAmelCase     =     floor(random() * 1_00_00     ) + 10
              for i in range(a__     ):
                     # every vertex has max 100 edges
                     for _ in range(floor(random() * 1_02     ) + 1     ):
                            _UpperCAmelCase     =     floor(random() * c     ) + 1
                            if n != i:
                                   self.add_pair(a__    ,  a__    ,  1     )






       def 							__A (   self    ,  a__=-2     ):
              _UpperCAmelCase     =     deque()
              _UpperCAmelCase     =     []
              if s == -2:
                     _UpperCAmelCase     =     list(self.graph     )[0]
              d.append(a__     )
              visited.append(a__     )
              while d:
                     _UpperCAmelCase     =     d.popleft()
                     if len(self.graph[s]     ) != 0:
                            for node in self.graph[s]:
                                   if visited.count(node[1]     ) < 1:
                                          d.append(node[1]     )
                                          visited.append(node[1]     )
              return visited






       def 							__A (   self    ,  a__     ):
              return len(self.graph[u]     )






       def 							__A (   self     ):
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     list(self.graph     )[0]
              stack.append(a__     )
              visited.append(a__     )
              _UpperCAmelCase     =     -2
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     s
              _UpperCAmelCase     =     False
              _UpperCAmelCase     =     set()

              while True:
                     # check if there is any non isolated nodes
                     if len(self.graph[s]     ) != 0:
                            _UpperCAmelCase     =     s
                            for node in self.graph[s]:
                                   if (
                                       visited.count(node[1]     ) > 0
                                       and node[1] != parent
                                       and indirect_parents.count(node[1]     ) > 0
                                       and not on_the_way_back
                                   ):
                                          _UpperCAmelCase     =     len(a__     ) - 1
                                          while len_stack >= 0:
                                                 if stack[len_stack] == node[1]:
                                                        anticipating_nodes.add(node[1]     )
                                                        break
                                                 else:
                                                        anticipating_nodes.add(stack[len_stack]     )
                                                        len_stack -= 1
                                   if visited.count(node[1]     ) < 1:
                                          stack.append(node[1]     )
                                          visited.append(node[1]     )
                                          _UpperCAmelCase     =     node[1]
                                          break

            # check if all the children are visited
                     if s == ss:
                            stack.pop()
                            _UpperCAmelCase     =     True
                            if len(a__     ) != 0:
                                   _UpperCAmelCase     =     stack[len(a__     ) - 1]
                     else:
                            _UpperCAmelCase     =     False
                            indirect_parents.append(a__     )
                            _UpperCAmelCase     =     s
                            _UpperCAmelCase     =     ss

                     # check if se have reached the starting point
                     if len(a__     ) == 0:
                            return list(a__     )






       def 							__A (   self     ):
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     list(self.graph     )[0]
              stack.append(a__     )
              visited.append(a__     )
              _UpperCAmelCase     =     -2
              _UpperCAmelCase     =     []
              _UpperCAmelCase     =     s
              _UpperCAmelCase     =     False
              _UpperCAmelCase     =     set()

              while True:
                     # check if there is any non isolated nodes
                     if len(self.graph[s]     ) != 0:
                            _UpperCAmelCase     =     s
                            for node in self.graph[s]:
                                   if (
                                       visited.count(node[1]     ) > 0
                                       and node[1] != parent
                                       and indirect_parents.count(node[1]     ) > 0
                                       and not on_the_way_back
                                   ):
                                          _UpperCAmelCase     =     len(a__     ) - 1
                                          while len_stack_minus_one >= 0:
                                                 if stack[len_stack_minus_one] == node[1]:
                                                        anticipating_nodes.add(node[1]     )
                                                        break
                                                 else:
                                                        return True
                                   if visited.count(node[1]     ) < 1:
                                          stack.append(node[1]     )
                                          visited.append(node[1]     )
                                          _UpperCAmelCase     =     node[1]
                                          break

            # check if all the children are visited
                     if s == ss:
                            stack.pop()
                            _UpperCAmelCase     =     True
                            if len(a__     ) != 0:
                                   _UpperCAmelCase     =     stack[len(a__     ) - 1]
                     else:
                            _UpperCAmelCase     =     False
                            indirect_parents.append(a__     )
                            _UpperCAmelCase     =     s
                            _UpperCAmelCase     =     ss

                     # check if se have reached the starting point
                     if len(a__     ) == 0:
                            return False






       def 							__A (   self     ):
              return list(self.graph     )






       def 							__A (   self    ,  a__=-2    ,  a__=-1     ):
              _UpperCAmelCase     =     time()
              self.dfs(a__    ,  a__     )
              _UpperCAmelCase     =     time()
              return end - begin






       def 							__A (   self    ,  a__=-2     ):
              _UpperCAmelCase     =     time()
              self.bfs(a__     )
              _UpperCAmelCase     =     time()
              return end - begin













"""simple docstring"""






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


if is_torch_available():
    import torch

if is_vision_available():
    from PIL import Image

    from transformers import ChineseCLIPImageProcessor



class 	lowerCAmelCase					(      unittest.TestCase							):






       def __init__(   self    ,  a__    ,  a__=7    ,  a__=3    ,  a__=18    ,  a__=30    ,  a__=4_00    ,  a__=True    ,  a__=None    ,  a__=True    ,  a__=None    ,  a__=True    ,  a__=[0.48_145_466, 0.4_578_275, 0.40_821_073]    ,  a__=[0.26_862_954, 0.26_130_258, 0.27_577_711]    ,  a__=True    ,  ):
              _UpperCAmelCase     =     size if size is not None else {'height': 2_24, 'width': 2_24}
              _UpperCAmelCase     =     crop_size if crop_size is not None else {'height': 18, 'width': 18}
              _UpperCAmelCase     =     parent
              _UpperCAmelCase     =     batch_size
              _UpperCAmelCase     =     num_channels
              _UpperCAmelCase     =     image_size
              _UpperCAmelCase     =     min_resolution
              _UpperCAmelCase     =     max_resolution
              _UpperCAmelCase     =     do_resize
              _UpperCAmelCase     =     size
              _UpperCAmelCase     =     do_center_crop
              _UpperCAmelCase     =     crop_size
              _UpperCAmelCase     =     do_normalize
              _UpperCAmelCase     =     image_mean
              _UpperCAmelCase     =     image_std
              _UpperCAmelCase     =     do_convert_rgb






       def 							__A (   self     ):
              return {
                  "do_resize": self.do_resize,
                  "size": self.size,
                  "do_center_crop": self.do_center_crop,
                  "crop_size": self.crop_size,
                  "do_normalize": self.do_normalize,
                  "image_mean": self.image_mean,
                  "image_std": self.image_std,
                  "do_convert_rgb": self.do_convert_rgb,
              }






       def 							__A (   self    ,  a__=False    ,  a__=False    ,  a__=False     ):
              assert not (numpify and torchify), "You cannot specify both numpy and PyTorch tensors at the same time"

              if equal_resolution:
                     _UpperCAmelCase     =     []
                     for i in range(self.batch_size     ):
                            image_inputs.append(
                                np.random.randint(
                                    2_55    ,  size=(self.num_channels, self.max_resolution, self.max_resolution)    ,  dtype=np.uinta     )     )
              else:
                     _UpperCAmelCase     =     []
                     for i in range(self.batch_size     ):
                            _UpperCAmelCase    ,							_UpperCAmelCase     =     np.random.choice(np.arange(self.min_resolution    ,  self.max_resolution     )    ,  2     )
                            image_inputs.append(np.random.randint(2_55    ,  size=(self.num_channels, width, height)    ,  dtype=np.uinta     )     )

              if not numpify and not torchify:
                     # PIL expects the channel dimension as last dimension
                     _UpperCAmelCase     =     [Image.fromarray(np.moveaxis(a__    ,  0    ,  -1     )     ) for x in image_inputs]

              if torchify:
                     _UpperCAmelCase     =     [torch.from_numpy(a__     ) for x in image_inputs]

              return image_inputs



@require_torch
@require_vision
class 	lowerCAmelCase					(      snake_case			,	unittest.TestCase							):
       lowerCAmelCase__						 =  ChineseCLIPImageProcessor if is_vision_available() else None






       def 							__A (   self     ):
              _UpperCAmelCase     =     ChineseCLIPImageProcessingTester(self    ,  do_center_crop=a__     )






       @property
       def 							__A (   self     ):
              return self.image_processor_tester.prepare_image_processor_dict()






       def 							__A (   self     ):
              _UpperCAmelCase     =     self.image_processing_class(**self.image_processor_dict     )
              self.assertTrue(hasattr(a__    ,  'do_resize'     )     )
              self.assertTrue(hasattr(a__    ,  'size'     )     )
              self.assertTrue(hasattr(a__    ,  'do_center_crop'     )     )
              self.assertTrue(hasattr(a__    ,  'center_crop'     )     )
              self.assertTrue(hasattr(a__    ,  'do_normalize'     )     )
              self.assertTrue(hasattr(a__    ,  'image_mean'     )     )
              self.assertTrue(hasattr(a__    ,  'image_std'     )     )
              self.assertTrue(hasattr(a__    ,  'do_convert_rgb'     )     )






       def 							__A (   self     ):
              _UpperCAmelCase     =     self.image_processing_class.from_dict(self.image_processor_dict     )
              self.assertEqual(image_processor.size    ,  {'height': 2_24, 'width': 2_24}     )
              self.assertEqual(image_processor.crop_size    ,  {'height': 18, 'width': 18}     )

              _UpperCAmelCase     =     self.image_processing_class.from_dict(self.image_processor_dict    ,  size=42    ,  crop_size=84     )
              self.assertEqual(image_processor.size    ,  {'shortest_edge': 42}     )
              self.assertEqual(image_processor.crop_size    ,  {'height': 84, 'width': 84}     )






       def 							__A (   self     ):
              pass






       def 							__A (   self     ):
              # Initialize image_processing
              _UpperCAmelCase     =     self.image_processing_class(**self.image_processor_dict     )
              # create random PIL images
              _UpperCAmelCase     =     self.image_processor_tester.prepare_inputs(equal_resolution=a__     )
              for image in image_inputs:
                     self.assertIsInstance(a__    ,  Image.Image     )

              # Test not batched input
              _UpperCAmelCase     =     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.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )

              # Test batched
              _UpperCAmelCase     =     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.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )






       def 							__A (   self     ):
              # Initialize image_processing
              _UpperCAmelCase     =     self.image_processing_class(**self.image_processor_dict     )
              # create random numpy tensors
              _UpperCAmelCase     =     self.image_processor_tester.prepare_inputs(equal_resolution=a__    ,  numpify=a__     )
              for image in image_inputs:
                     self.assertIsInstance(a__    ,  np.ndarray     )

              # Test not batched input
              _UpperCAmelCase     =     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.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )

              # Test batched
              _UpperCAmelCase     =     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.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )






       def 							__A (   self     ):
              # Initialize image_processing
              _UpperCAmelCase     =     self.image_processing_class(**self.image_processor_dict     )
              # create random PyTorch tensors
              _UpperCAmelCase     =     self.image_processor_tester.prepare_inputs(equal_resolution=a__    ,  torchify=a__     )
              for image in image_inputs:
                     self.assertIsInstance(a__    ,  torch.Tensor     )

              # Test not batched input
              _UpperCAmelCase     =     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.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )

              # Test batched
              _UpperCAmelCase     =     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.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )



@require_torch
@require_vision
class 	lowerCAmelCase					(      snake_case			,	unittest.TestCase							):
       lowerCAmelCase__						 =  ChineseCLIPImageProcessor if is_vision_available() else None






       def 							__A (   self     ):
              _UpperCAmelCase     =     ChineseCLIPImageProcessingTester(self    ,  num_channels=4    ,  do_center_crop=a__     )
              _UpperCAmelCase     =     3






       @property
       def 							__A (   self     ):
              return self.image_processor_tester.prepare_image_processor_dict()






       def 							__A (   self     ):
              _UpperCAmelCase     =     self.image_processing_class(**self.image_processor_dict     )
              self.assertTrue(hasattr(a__    ,  'do_resize'     )     )
              self.assertTrue(hasattr(a__    ,  'size'     )     )
              self.assertTrue(hasattr(a__    ,  'do_center_crop'     )     )
              self.assertTrue(hasattr(a__    ,  'center_crop'     )     )
              self.assertTrue(hasattr(a__    ,  'do_normalize'     )     )
              self.assertTrue(hasattr(a__    ,  'image_mean'     )     )
              self.assertTrue(hasattr(a__    ,  'image_std'     )     )
              self.assertTrue(hasattr(a__    ,  'do_convert_rgb'     )     )






       def 							__A (   self     ):
              pass






       def 							__A (   self     ):
              # Initialize image_processing
              _UpperCAmelCase     =     self.image_processing_class(**self.image_processor_dict     )
              # create random PIL images
              _UpperCAmelCase     =     self.image_processor_tester.prepare_inputs(equal_resolution=a__     )
              for image in image_inputs:
                     self.assertIsInstance(a__    ,  Image.Image     )

              # Test not batched input
              _UpperCAmelCase     =     image_processing(image_inputs[0]    ,  return_tensors='pt'     ).pixel_values
              self.assertEqual(
                  encoded_images.shape    ,  (
                      1,
                      self.expected_encoded_image_num_channels,
                      self.image_processor_tester.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )

              # Test batched
              _UpperCAmelCase     =     image_processing(a__    ,  return_tensors='pt'     ).pixel_values
              self.assertEqual(
                  encoded_images.shape    ,  (
                      self.image_processor_tester.batch_size,
                      self.expected_encoded_image_num_channels,
                      self.image_processor_tester.crop_size['height'],
                      self.image_processor_tester.crop_size['width'],
                  )    ,  )






