





import argparse
import json
import os
import sys
import tempfile
import unittest
from argparse import Namespace
from dataclasses import dataclass, field
from enum import Enum
from pathlib import Path
from typing import List, Literal, Optional

import yaml

from transformers import HfArgumentParser, TrainingArguments
from transformers.hf_argparser import make_choice_type_function, string_to_bool


# Since Python 3.10, we can use the builtin `|` operator for Union types
# See PEP 604: https://peps.python.org/pep-0604
SCREAMING_SNAKE_CASE_         = sys.version_info >= (3, 1_0)



def      __lowercase     (   _SCREAMING_SNAKE_CASE=None				,		_SCREAMING_SNAKE_CASE=None			)				->     str:


      '''simple docstring'''


      return field(default_factory=lambda: default				,		metadata=_lowerCamelCase			)

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			str				=    42
     __snake_case					:			Optional[Any]				=    42
     __snake_case					:			int				=    42
     __snake_case					:			Optional[Any]				=    42

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			Tuple				=    42
     __snake_case					:			Tuple				=    field(default="toto"							,   metadata={"help": "help message"}     )

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			Dict				=    False
     __snake_case					:			Optional[Any]				=    True
     __snake_case					:			int				=    None

class 	UpperCamelCase__				(   _A     ):



     '''simple docstring'''

     __snake_case					:			Optional[Any]				=    "titi"
     __snake_case					:			List[str]				=    "toto"

class 	UpperCamelCase__				(   _A     ):



     '''simple docstring'''

     __snake_case					:			List[str]				=    "titi"
     __snake_case					:			Optional[int]				=    "toto"
     __snake_case					:			str				=    42

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			List[str]				=    "toto"






     def        SCREAMING_SNAKE_CASE__						(							self		:					Any )  ->	Any:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		BasicEnum(self.foo )

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			Optional[int]				=    "toto"






     def        SCREAMING_SNAKE_CASE__						(							self		:					str )  ->	List[Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		MixedTypeEnum(self.foo )

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			List[str]				=    None
     __snake_case					:			Any				=    field(default=_A							,   metadata={"help": "help message"}     )
     __snake_case					:			Any				=    None
     __snake_case					:			str				=    list_field(default=[]     )
     __snake_case					:			Any				=    list_field(default=[]     )

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			Union[str, Any]				=    list_field(default=[]     )
     __snake_case					:			Optional[int]				=    list_field(default=[1, 2, 3]     )
     __snake_case					:			Tuple				=    list_field(default=["Hallo", "Bonjour", "Hello"]     )
     __snake_case					:			str				=    list_field(default=[0.1, 0.2, 0.3]     )

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			Tuple				=    field()
     __snake_case					:			Optional[Any]				=    field()
     __snake_case					:			int				=    field()






     def        SCREAMING_SNAKE_CASE__						(							self		:					List[Any] )  ->	str:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		BasicEnum(self.required_enum )

@dataclass
class 	UpperCamelCase__				:



     '''simple docstring'''

     __snake_case					:			int				=    42
     __snake_case					:			int				=    field()
     __snake_case					:			List[Any]				=    None
     __snake_case					:			Tuple				=    field(default="toto"							,   metadata={"help": "help message"}     )
     __snake_case					:			Dict				=    list_field(default=["Hallo", "Bonjour", "Hello"]     )


if is_python_no_less_than_3_10:

      @dataclass
      class 	UpperCamelCase__				:



           '''simple docstring'''

           __snake_case					:			int				=    False
           __snake_case					:			Optional[Any]				=    True
           __snake_case					:			Tuple				=    None

      @dataclass
      class 	UpperCamelCase__				:



           '''simple docstring'''

           __snake_case					:			List[Any]				=    None
           __snake_case					:			Dict				=    field(default=_A							,   metadata={"help": "help message"}     )
           __snake_case					:			Optional[int]				=    None
           __snake_case					:			Tuple				=    list_field(default=[]     )
           __snake_case					:			Union[str, Any]				=    list_field(default=[]     )



class 	UpperCamelCase__				(   unittest.TestCase     ):



     '''simple docstring'''

     def        SCREAMING_SNAKE_CASE__						(							self		:					str		,lowerCamelCase__		:					argparse.ArgumentParser		,lowerCamelCase__		:					argparse.ArgumentParser )  ->	Optional[Any]:




           '''simple docstring'''


           self.assertEqual(len(a._actions )		,len(b._actions ) )
           for x, y in zip(a._actions		,b._actions ):
                 SCREAMING_SNAKE_CASE	=		{k: v for k, v in vars(__lowerCamelCase ).items() if k != "container"}
                 SCREAMING_SNAKE_CASE	=		{k: v for k, v in vars(__lowerCamelCase ).items() if k != "container"}

                 # Choices with mixed type have custom function as "type"
                 # So we need to compare results directly for equality
                 if xx.get("""choices"""		,__lowerCamelCase ) and yy.get("""choices"""		,__lowerCamelCase ):
                       for expected_choice in yy["choices"] + xx["choices"]:
                             self.assertEqual(xx["""type"""](__lowerCamelCase )		,yy["""type"""](__lowerCamelCase ) )
                       del xx["type"], yy["type"]

                 self.assertEqual(__lowerCamelCase		,__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Union[str, Any] )  ->	List[str]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument("""--foo"""		,type=__lowerCamelCase		,required=__lowerCamelCase )
           expected.add_argument("""--bar"""		,type=__lowerCamelCase		,required=__lowerCamelCase )
           expected.add_argument("""--baz"""		,type=__lowerCamelCase		,required=__lowerCamelCase )
           expected.add_argument("""--flag"""		,type=__lowerCamelCase		,default=__lowerCamelCase		,const=__lowerCamelCase		,nargs="""?""" )
           self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		["--foo", "1", "--baz", "quux", "--bar", "0.5"]
           (SCREAMING_SNAKE_CASE )	=		parser.parse_args_into_dataclasses(__lowerCamelCase		,look_for_args_file=__lowerCamelCase )
           self.assertFalse(example.flag )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[Any] )  ->	Tuple:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument("""--foo"""		,default=42		,type=__lowerCamelCase )
           expected.add_argument("""--baz"""		,default="""toto"""		,type=__lowerCamelCase		,help="""help message""" )
           self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Union[str, Any] )  ->	Tuple:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument("""--foo"""		,type=__lowerCamelCase		,default=__lowerCamelCase		,const=__lowerCamelCase		,nargs="""?""" )
           expected.add_argument("""--baz"""		,type=__lowerCamelCase		,default=__lowerCamelCase		,const=__lowerCamelCase		,nargs="""?""" )
           # A boolean no_* argument always has to come after its "default: True" regular counter-part
           # and its default must be set to False
           expected.add_argument("""--no_baz"""		,action="""store_false"""		,default=__lowerCamelCase		,dest="""baz""" )
           expected.add_argument("""--opt"""		,type=__lowerCamelCase		,default=__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		[WithDefaultBoolExample]
           if is_python_no_less_than_3_10:
                 dataclass_types.append(__lowerCamelCase )

           for dataclass_type in dataclass_types:
                 SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )
                 self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )

                 SCREAMING_SNAKE_CASE	=		parser.parse_args([] )
                 self.assertEqual(__lowerCamelCase		,Namespace(foo=__lowerCamelCase		,baz=__lowerCamelCase		,opt=__lowerCamelCase ) )

                 SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """--no_baz"""] )
                 self.assertEqual(__lowerCamelCase		,Namespace(foo=__lowerCamelCase		,baz=__lowerCamelCase		,opt=__lowerCamelCase ) )

                 SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """--baz"""] )
                 self.assertEqual(__lowerCamelCase		,Namespace(foo=__lowerCamelCase		,baz=__lowerCamelCase		,opt=__lowerCamelCase ) )

                 SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """True""", """--baz""", """True""", """--opt""", """True"""] )
                 self.assertEqual(__lowerCamelCase		,Namespace(foo=__lowerCamelCase		,baz=__lowerCamelCase		,opt=__lowerCamelCase ) )

                 SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """False""", """--baz""", """False""", """--opt""", """False"""] )
                 self.assertEqual(__lowerCamelCase		,Namespace(foo=__lowerCamelCase		,baz=__lowerCamelCase		,opt=__lowerCamelCase ) )






     def        SCREAMING_SNAKE_CASE__						(							self		:					int )  ->	List[Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument(
               """--foo"""		,default="""toto"""		,choices=["""titi""", """toto""", 42]		,type=make_choice_type_function(["""titi""", """toto""", 42] )		,)
           self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		parser.parse_args([] )
           self.assertEqual(args.foo		,"""toto""" )
           SCREAMING_SNAKE_CASE	=		parser.parse_args_into_dataclasses([] )[0]
           self.assertEqual(enum_ex.foo		,MixedTypeEnum.toto )

           SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """titi"""] )
           self.assertEqual(args.foo		,"""titi""" )
           SCREAMING_SNAKE_CASE	=		parser.parse_args_into_dataclasses(["""--foo""", """titi"""] )[0]
           self.assertEqual(enum_ex.foo		,MixedTypeEnum.titi )

           SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """42"""] )
           self.assertEqual(args.foo		,42 )
           SCREAMING_SNAKE_CASE	=		parser.parse_args_into_dataclasses(["""--foo""", """42"""] )[0]
           self.assertEqual(enum_ex.foo		,MixedTypeEnum.fourtytwo )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[int] )  ->	Tuple:




           '''simple docstring'''


           @dataclass
           class 	UpperCamelCase__				:



                '''simple docstring'''

                __snake_case					:			Optional[int]				=    "toto"
           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument(
               """--foo"""		,default="""toto"""		,choices=("""titi""", """toto""", 42)		,type=make_choice_type_function(["""titi""", """toto""", 42] )		,)
           self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		parser.parse_args([] )
           self.assertEqual(args.foo		,"""toto""" )

           SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """titi"""] )
           self.assertEqual(args.foo		,"""titi""" )

           SCREAMING_SNAKE_CASE	=		parser.parse_args(["""--foo""", """42"""] )
           self.assertEqual(args.foo		,42 )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Tuple )  ->	Tuple:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument("""--foo_int"""		,nargs="""+"""		,default=[]		,type=__lowerCamelCase )
           expected.add_argument("""--bar_int"""		,nargs="""+"""		,default=[1, 2, 3]		,type=__lowerCamelCase )
           expected.add_argument("""--foo_str"""		,nargs="""+"""		,default=["""Hallo""", """Bonjour""", """Hello"""]		,type=__lowerCamelCase )
           expected.add_argument("""--foo_float"""		,nargs="""+"""		,default=[0.1, 0.2, 0.3]		,type=__lowerCamelCase )

           self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		parser.parse_args([] )
           self.assertEqual(
               __lowerCamelCase		,Namespace(foo_int=[]		,bar_int=[1, 2, 3]		,foo_str=["""Hallo""", """Bonjour""", """Hello"""]		,foo_float=[0.1, 0.2, 0.3] )		,)

           SCREAMING_SNAKE_CASE	=		parser.parse_args("""--foo_int 1 --bar_int 2 3 --foo_str a b c --foo_float 0.1 0.7""".split() )
           self.assertEqual(__lowerCamelCase		,Namespace(foo_int=[1]		,bar_int=[2, 3]		,foo_str=["""a""", """b""", """c"""]		,foo_float=[0.1, 0.7] ) )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[int] )  ->	Optional[int]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument("""--foo"""		,default=__lowerCamelCase		,type=__lowerCamelCase )
           expected.add_argument("""--bar"""		,default=__lowerCamelCase		,type=__lowerCamelCase		,help="""help message""" )
           expected.add_argument("""--baz"""		,default=__lowerCamelCase		,type=__lowerCamelCase )
           expected.add_argument("""--ces"""		,nargs="""+"""		,default=[]		,type=__lowerCamelCase )
           expected.add_argument("""--des"""		,nargs="""+"""		,default=[]		,type=__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		[OptionalExample]
           if is_python_no_less_than_3_10:
                 dataclass_types.append(__lowerCamelCase )

           for dataclass_type in dataclass_types:
                 SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

                 self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )

                 SCREAMING_SNAKE_CASE	=		parser.parse_args([] )
                 self.assertEqual(__lowerCamelCase		,Namespace(foo=__lowerCamelCase		,bar=__lowerCamelCase		,baz=__lowerCamelCase		,ces=[]		,des=[] ) )

                 SCREAMING_SNAKE_CASE	=		parser.parse_args("""--foo 12 --bar 3.14 --baz 42 --ces a b c --des 1 2 3""".split() )
                 self.assertEqual(__lowerCamelCase		,Namespace(foo=12		,bar=3.14		,baz="""42"""		,ces=["""a""", """b""", """c"""]		,des=[1, 2, 3] ) )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[Any] )  ->	Optional[int]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument("""--required_list"""		,nargs="""+"""		,type=__lowerCamelCase		,required=__lowerCamelCase )
           expected.add_argument("""--required_str"""		,type=__lowerCamelCase		,required=__lowerCamelCase )
           expected.add_argument(
               """--required_enum"""		,type=make_choice_type_function(["""titi""", """toto"""] )		,choices=["""titi""", """toto"""]		,required=__lowerCamelCase		,)
           self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[Any] )  ->	str:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		argparse.ArgumentParser()
           expected.add_argument("""--foo"""		,type=__lowerCamelCase		,required=__lowerCamelCase )
           expected.add_argument(
               """--required_enum"""		,type=make_choice_type_function(["""titi""", """toto"""] )		,choices=["""titi""", """toto"""]		,required=__lowerCamelCase		,)
           expected.add_argument("""--opt"""		,type=__lowerCamelCase		,default=__lowerCamelCase )
           expected.add_argument("""--baz"""		,default="""toto"""		,type=__lowerCamelCase		,help="""help message""" )
           expected.add_argument("""--foo_str"""		,nargs="""+"""		,default=["""Hallo""", """Bonjour""", """Hello"""]		,type=__lowerCamelCase )
           self.argparsersEqual(__lowerCamelCase		,__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					int )  ->	Union[str, Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		{
               "foo": 12,
               "bar": 3.14,
               "baz": "42",
               "flag": True,
           }

           SCREAMING_SNAKE_CASE	=		parser.parse_dict(__lowerCamelCase )[0]
           SCREAMING_SNAKE_CASE	=		BasicExample(**__lowerCamelCase )
           self.assertEqual(__lowerCamelCase		,__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[Any] )  ->	Optional[Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		{
               "foo": 12,
               "bar": 3.14,
               "baz": "42",
               "flag": True,
               "extra": 42,
           }

           self.assertRaises(__lowerCamelCase		,parser.parse_dict		,__lowerCamelCase		,allow_extra_keys=__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					List[Any] )  ->	Union[str, Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		{
               "foo": 12,
               "bar": 3.14,
               "baz": "42",
               "flag": True,
           }
           with tempfile.TemporaryDirectory() as tmp_dir:
                 SCREAMING_SNAKE_CASE	=		os.path.join(__lowerCamelCase		,"""temp_json""" )
                 os.mkdir(__lowerCamelCase )
                 with open(temp_local_path + """.json"""		,"""w+""" ) as f:
                       json.dump(__lowerCamelCase		,__lowerCamelCase )
                 SCREAMING_SNAKE_CASE	=		parser.parse_yaml_file(Path(temp_local_path + """.json""" ) )[0]

           SCREAMING_SNAKE_CASE	=		BasicExample(**__lowerCamelCase )
           self.assertEqual(__lowerCamelCase		,__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					List[Any] )  ->	Tuple:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )

           SCREAMING_SNAKE_CASE	=		{
               "foo": 12,
               "bar": 3.14,
               "baz": "42",
               "flag": True,
           }
           with tempfile.TemporaryDirectory() as tmp_dir:
                 SCREAMING_SNAKE_CASE	=		os.path.join(__lowerCamelCase		,"""temp_yaml""" )
                 os.mkdir(__lowerCamelCase )
                 with open(temp_local_path + """.yaml"""		,"""w+""" ) as f:
                       yaml.dump(__lowerCamelCase		,__lowerCamelCase )
                 SCREAMING_SNAKE_CASE	=		parser.parse_yaml_file(Path(temp_local_path + """.yaml""" ) )[0]
           SCREAMING_SNAKE_CASE	=		BasicExample(**__lowerCamelCase )
           self.assertEqual(__lowerCamelCase		,__lowerCamelCase )






     def        SCREAMING_SNAKE_CASE__						(							self		:					str )  ->	int:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		HfArgumentParser(__lowerCamelCase )
           self.assertIsNotNone(__lowerCamelCase )









from __future__ import annotations

import inspect
import unittest

import numpy as np

from transformers import ResNetConfig
from transformers.testing_utils import require_tf, require_vision, slow
from transformers.utils import cached_property, is_tf_available, is_vision_available

from ...test_configuration_common import ConfigTester
from ...test_modeling_tf_common import TFModelTesterMixin, floats_tensor, ids_tensor
from ...test_pipeline_mixin import PipelineTesterMixin


if is_tf_available():
      import tensorflow as tf

      from transformers import TFResNetForImageClassification, TFResNetModel
      from transformers.models.resnet.modeling_tf_resnet import TF_RESNET_PRETRAINED_MODEL_ARCHIVE_LIST


if is_vision_available():
      from PIL import Image

      from transformers import AutoImageProcessor

class 	UpperCamelCase__				:



     '''simple docstring'''

     def __init__(							self		:					str		,lowerCamelCase__		:					int		,lowerCamelCase__		:					List[str]=3		,lowerCamelCase__		:					Optional[Any]=32		,lowerCamelCase__		:					Any=3		,lowerCamelCase__		:					Any=10		,lowerCamelCase__		:					Any=[10, 20, 30, 40]		,lowerCamelCase__		:					Any=[1, 1, 2, 1]		,lowerCamelCase__		:					Union[str, Any]=True		,lowerCamelCase__		:					List[str]=True		,lowerCamelCase__		:					Union[str, Any]="relu"		,lowerCamelCase__		:					Dict=3		,lowerCamelCase__		:					Any=None		,)  ->	Union[str, Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		parent
           SCREAMING_SNAKE_CASE	=		batch_size
           SCREAMING_SNAKE_CASE	=		image_size
           SCREAMING_SNAKE_CASE	=		num_channels
           SCREAMING_SNAKE_CASE	=		embeddings_size
           SCREAMING_SNAKE_CASE	=		hidden_sizes
           SCREAMING_SNAKE_CASE	=		depths
           SCREAMING_SNAKE_CASE	=		is_training
           SCREAMING_SNAKE_CASE	=		use_labels
           SCREAMING_SNAKE_CASE	=		hidden_act
           SCREAMING_SNAKE_CASE	=		num_labels
           SCREAMING_SNAKE_CASE	=		scope
           SCREAMING_SNAKE_CASE	=		len(lowerCamelCase__ )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Any )  ->	Optional[int]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		floats_tensor([self.batch_size, self.num_channels, self.image_size, self.image_size] )

           SCREAMING_SNAKE_CASE	=		None
           if self.use_labels:
                 SCREAMING_SNAKE_CASE	=		ids_tensor([self.batch_size]		,self.num_labels )

           SCREAMING_SNAKE_CASE	=		self.get_config()

           return config, pixel_values, labels






     def        SCREAMING_SNAKE_CASE__						(							self		:					List[str] )  ->	Union[str, Any]:




           '''simple docstring'''


           return ResNetConfig(
               num_channels=self.num_channels		,embeddings_size=self.embeddings_size		,hidden_sizes=self.hidden_sizes		,depths=self.depths		,hidden_act=self.hidden_act		,num_labels=self.num_labels		,image_size=self.image_size		,)






     def        SCREAMING_SNAKE_CASE__						(							self		:					Dict		,lowerCamelCase__		:					Union[str, Any]		,lowerCamelCase__		:					Tuple		,lowerCamelCase__		:					List[Any] )  ->	Union[str, Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		TFResNetModel(config=lowerCamelCase__ )
           SCREAMING_SNAKE_CASE	=		model(lowerCamelCase__ )
           # expected last hidden states: B, C, H // 32, W // 32
           self.parent.assertEqual(
               result.last_hidden_state.shape		,(self.batch_size, self.hidden_sizes[-1], self.image_size // 32, self.image_size // 32)		,)






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[int]		,lowerCamelCase__		:					Optional[int]		,lowerCamelCase__		:					Union[str, Any]		,lowerCamelCase__		:					Dict )  ->	str:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		self.num_labels
           SCREAMING_SNAKE_CASE	=		TFResNetForImageClassification(lowerCamelCase__ )
           SCREAMING_SNAKE_CASE	=		model(lowerCamelCase__		,labels=lowerCamelCase__ )
           self.parent.assertEqual(result.logits.shape		,(self.batch_size, self.num_labels) )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[Any] )  ->	Optional[Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		self.prepare_config_and_inputs()
           SCREAMING_SNAKE_CASE,      SCREAMING_SNAKE_CASE,      SCREAMING_SNAKE_CASE	=		config_and_inputs
           SCREAMING_SNAKE_CASE	=		{"""pixel_values""": pixel_values}
           return config, inputs_dict

@require_tf
class 	UpperCamelCase__				(   lowerCAmelCase_							,   lowerCAmelCase_							,   unittest.TestCase     ):



     '''simple docstring'''

     __snake_case					:			Union[str, Any]				=    (TFResNetModel, TFResNetForImageClassification) if is_tf_available() else ()
     __snake_case					:			int				=    (
         {"feature-extraction": TFResNetModel, "image-classification": TFResNetForImageClassification}
         if is_tf_available()
         else {}
     )

     __snake_case					:			Optional[int]				=    False
     __snake_case					:			int				=    False
     __snake_case					:			Optional[Any]				=    False
     __snake_case					:			Union[str, Any]				=    False
     __snake_case					:			str				=    False






     def        SCREAMING_SNAKE_CASE__						(							self		:					Union[str, Any] )  ->	List[Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		TFResNetModelTester(self )
           SCREAMING_SNAKE_CASE	=		ConfigTester(self		,config_class=lowerCamelCase__		,has_text_modality=lowerCamelCase__ )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Union[str, Any] )  ->	Union[str, Any]:




           '''simple docstring'''


           self.create_and_test_config_common_properties()
           self.config_tester.create_and_test_config_to_json_string()
           self.config_tester.create_and_test_config_to_json_file()
           self.config_tester.create_and_test_config_from_and_save_pretrained()
           self.config_tester.create_and_test_config_with_num_labels()
           self.config_tester.check_config_can_be_init_without_params()
           self.config_tester.check_config_arguments_init()






     def        SCREAMING_SNAKE_CASE__						(							self		:					int )  ->	List[Any]:




           '''simple docstring'''


           return






     @unittest.skip(reason="""ResNet does not use inputs_embeds""" )
     def        SCREAMING_SNAKE_CASE__						(							self		:					Tuple )  ->	Any:




           '''simple docstring'''


           pass






     @unittest.skip(reason="""ResNet does not support input and output embeddings""" )
     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[int] )  ->	Optional[int]:




           '''simple docstring'''


           pass






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[int] )  ->	List[str]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE,      SCREAMING_SNAKE_CASE	=		self.model_tester.prepare_config_and_inputs_for_common()

           for model_class in self.all_model_classes:
                 SCREAMING_SNAKE_CASE	=		model_class(lowerCamelCase__ )
                 SCREAMING_SNAKE_CASE	=		inspect.signature(model.call )
                 # signature.parameters is an OrderedDict => so arg_names order is deterministic
                 SCREAMING_SNAKE_CASE	=		[*signature.parameters.keys()]

                 SCREAMING_SNAKE_CASE	=		["""pixel_values"""]
                 self.assertListEqual(arg_names[:1]		,lowerCamelCase__ )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[int] )  ->	Union[str, Any]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_model(*lowerCamelCase__ )






     def        SCREAMING_SNAKE_CASE__						(							self		:					int )  ->	List[Any]:




           '''simple docstring'''


           def check_hidden_states_output(lowerCamelCase__		:					str		,lowerCamelCase__		:					Dict		,lowerCamelCase__		:					Dict ):
                 SCREAMING_SNAKE_CASE	=		model_class(lowerCamelCase__ )
                 SCREAMING_SNAKE_CASE	=		model(**self._prepare_for_class(lowerCamelCase__		,lowerCamelCase__ ) )

                 SCREAMING_SNAKE_CASE	=		outputs.encoder_hidden_states if config.is_encoder_decoder else outputs.hidden_states

                 SCREAMING_SNAKE_CASE	=		self.model_tester.num_stages
                 self.assertEqual(len(lowerCamelCase__ )		,expected_num_stages + 1 )

                 # ResNet's feature maps are of shape (batch_size, num_channels, height, width)
                 self.assertListEqual(
                     list(hidden_states[0].shape[-2:] )		,[self.model_tester.image_size // 4, self.model_tester.image_size // 4]		,)

           SCREAMING_SNAKE_CASE,      SCREAMING_SNAKE_CASE	=		self.model_tester.prepare_config_and_inputs_for_common()
           SCREAMING_SNAKE_CASE	=		["""basic""", """bottleneck"""]
           for model_class in self.all_model_classes:
                 for layer_type in layers_type:
                       SCREAMING_SNAKE_CASE	=		layer_type
                       SCREAMING_SNAKE_CASE	=		True
                       check_hidden_states_output(lowerCamelCase__		,lowerCamelCase__		,lowerCamelCase__ )

                       # check that output_hidden_states also work using config
                       del inputs_dict["output_hidden_states"]
                       SCREAMING_SNAKE_CASE	=		True

                       check_hidden_states_output(lowerCamelCase__		,lowerCamelCase__		,lowerCamelCase__ )






     def        SCREAMING_SNAKE_CASE__						(							self		:					Any )  ->	Tuple:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		self.model_tester.prepare_config_and_inputs()
           self.model_tester.create_and_check_for_image_classification(*lowerCamelCase__ )






     @slow
     def        SCREAMING_SNAKE_CASE__						(							self		:					Optional[int] )  ->	List[Any]:




           '''simple docstring'''


           for model_name in TF_RESNET_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
                 SCREAMING_SNAKE_CASE	=		TFResNetModel.from_pretrained(lowerCamelCase__ )
                 self.assertIsNotNone(lowerCamelCase__ )



def      __lowercase     (   )				->     Union[str, Any]:


      '''simple docstring'''


      SCREAMING_SNAKE_CASE	=		Image.open("""./tests/fixtures/tests_samples/COCO/000000039769.png"""			)
      return image



@require_tf
@require_vision
class 	UpperCamelCase__				(   unittest.TestCase     ):



     '''simple docstring'''

     @cached_property
     def        SCREAMING_SNAKE_CASE__						(							self		:					Tuple )  ->	Dict:




           '''simple docstring'''


           return (
               AutoImageProcessor.from_pretrained(TF_RESNET_PRETRAINED_MODEL_ARCHIVE_LIST[0] )
               if is_vision_available()
               else None
           )






     @slow
     def        SCREAMING_SNAKE_CASE__						(							self		:					List[str] )  ->	Optional[int]:




           '''simple docstring'''


           SCREAMING_SNAKE_CASE	=		TFResNetForImageClassification.from_pretrained(TF_RESNET_PRETRAINED_MODEL_ARCHIVE_LIST[0] )

           SCREAMING_SNAKE_CASE	=		self.default_image_processor
           SCREAMING_SNAKE_CASE	=		prepare_img()
           SCREAMING_SNAKE_CASE	=		image_processor(images=lowerCamelCase__		,return_tensors="""tf""" )

           # forward pass
           SCREAMING_SNAKE_CASE	=		model(**lowerCamelCase__ )

           # verify the logits
           SCREAMING_SNAKE_CASE	=		tf.TensorShape((1, 1000) )
           self.assertEqual(outputs.logits.shape		,lowerCamelCase__ )

           SCREAMING_SNAKE_CASE	=		tf.constant([-11.1069, -9.7877, -8.3777] )

           self.assertTrue(np.allclose(outputs.logits[0, :3].numpy()		,lowerCamelCase__		,atol=1e-4 ) )


