




import collections
import inspect
import unittest

from transformers import SwinConfig
from transformers.testing_utils import require_torch, require_vision, slow, torch_device
from transformers.utils import cached_property, is_torch_available, is_vision_available

from ...test_backbone_common import BackboneTesterMixin
from ...test_configuration_common import ConfigTester
from ...test_modeling_common import ModelTesterMixin, _config_zero_init, floats_tensor, ids_tensor
from ...test_pipeline_mixin import PipelineTesterMixin


if is_torch_available():
							import torch
							from torch import nn

							from transformers import SwinBackbone, SwinForImageClassification, SwinForMaskedImageModeling, SwinModel
							from transformers.models.swin.modeling_swin import SWIN_PRETRAINED_MODEL_ARCHIVE_LIST


if is_vision_available():
							from PIL import Image

							from transformers import AutoImageProcessor


class 							_lowerCAmelCase		:




				def __init__( self		,		snake_case_		,		snake_case_=13		,		snake_case_=32		,		snake_case_=2		,		snake_case_=3		,		snake_case_=16		,		snake_case_=[1, 2, 1]		,		snake_case_=[2, 2, 4]		,		snake_case_=2		,		snake_case_=2.0		,		snake_case_=True		,		snake_case_=0.0		,		snake_case_=0.0		,		snake_case_=0.1		,		snake_case_="gelu"		,		snake_case_=False		,		snake_case_=True		,		snake_case_=0.02		,		snake_case_=1E-5		,		snake_case_=True		,		snake_case_=None		,		snake_case_=True		,		snake_case_=10		,		snake_case_=8		,		snake_case_=["stage1", "stage2"]		,		snake_case_=[1, 2]		,		)    ->      Optional[Any]:
											SCREAMING_SNAKE_CASE			: Tuple	     =parent
											SCREAMING_SNAKE_CASE			: List[Any]	     =batch_size
											SCREAMING_SNAKE_CASE			: str	     =image_size
											SCREAMING_SNAKE_CASE			: List[str]	     =patch_size
											SCREAMING_SNAKE_CASE			: int	     =num_channels
											SCREAMING_SNAKE_CASE			: Optional[int]	     =embed_dim
											SCREAMING_SNAKE_CASE			: Dict	     =depths
											SCREAMING_SNAKE_CASE			: int	     =num_heads
											SCREAMING_SNAKE_CASE			: List[Any]	     =window_size
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =mlp_ratio
											SCREAMING_SNAKE_CASE			: str	     =qkv_bias
											SCREAMING_SNAKE_CASE			: Dict	     =hidden_dropout_prob
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =attention_probs_dropout_prob
											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =drop_path_rate
											SCREAMING_SNAKE_CASE			: str	     =hidden_act
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =use_absolute_embeddings
											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =patch_norm
											SCREAMING_SNAKE_CASE			: Any	     =layer_norm_eps
											SCREAMING_SNAKE_CASE			: Tuple	     =initializer_range
											SCREAMING_SNAKE_CASE			: Optional[int]	     =is_training
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =scope
											SCREAMING_SNAKE_CASE			: int	     =use_labels
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =type_sequence_label_size
											SCREAMING_SNAKE_CASE			: Dict	     =encoder_stride
											SCREAMING_SNAKE_CASE			: List[Any]	     =out_features
											SCREAMING_SNAKE_CASE			: int	     =out_indices




				def     __a		( self							)    ->      Dict:
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =floats_tensor([self.batch_size, self.num_channels, self.image_size, self.image_size]							)

											SCREAMING_SNAKE_CASE			: str	     =None
											if self.use_labels:
																		SCREAMING_SNAKE_CASE			: Optional[Any]	     =ids_tensor([self.batch_size]		,		self.type_sequence_label_size							)

											SCREAMING_SNAKE_CASE			: Tuple	     =self.get_config()

											return config, pixel_values, labels




				def     __a		( self							)    ->      List[str]:
											return SwinConfig(
											    image_size=self.image_size		,		patch_size=self.patch_size		,		num_channels=self.num_channels		,		embed_dim=self.embed_dim		,		depths=self.depths		,		num_heads=self.num_heads		,		window_size=self.window_size		,		mlp_ratio=self.mlp_ratio		,		qkv_bias=self.qkv_bias		,		hidden_dropout_prob=self.hidden_dropout_prob		,		attention_probs_dropout_prob=self.attention_probs_dropout_prob		,		drop_path_rate=self.drop_path_rate		,		hidden_act=self.hidden_act		,		use_absolute_embeddings=self.use_absolute_embeddings		,		path_norm=self.patch_norm		,		layer_norm_eps=self.layer_norm_eps		,		initializer_range=self.initializer_range		,		encoder_stride=self.encoder_stride		,		out_features=self.out_features		,		out_indices=self.out_indices		,		)




				def     __a		( self		,		snake_case_		,		snake_case_		,		snake_case_							)    ->      Optional[Any]:
											SCREAMING_SNAKE_CASE			: int	     =SwinModel(config=snake_case_							)
											model.to(snake_case_							)
											model.eval()
											SCREAMING_SNAKE_CASE			: Optional[int]	     =model(snake_case_							)

											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =((config.image_size // config.patch_size) ** 2) // (4 ** (len(config.depths							) - 1))
											SCREAMING_SNAKE_CASE			: Tuple	     =int(config.embed_dim * 2 ** (len(config.depths							) - 1)							)

											self.parent.assertEqual(result.last_hidden_state.shape		,		(self.batch_size, expected_seq_len, expected_dim)							)




				def     __a		( self		,		snake_case_		,		snake_case_		,		snake_case_							)    ->      Any:
											SCREAMING_SNAKE_CASE			: Tuple	     =SwinBackbone(config=snake_case_							)
											model.to(snake_case_							)
											model.eval()
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =model(snake_case_							)

											# verify hidden states
											self.parent.assertEqual(len(result.feature_maps							)		,		len(config.out_features							)							)
											self.parent.assertListEqual(list(result.feature_maps[0].shape							)		,		[self.batch_size, model.channels[0], 16, 16]							)

											# verify channels
											self.parent.assertEqual(len(model.channels							)		,		len(config.out_features							)							)

											# verify backbone works with out_features=None
											SCREAMING_SNAKE_CASE			: Optional[int]	     =None
											SCREAMING_SNAKE_CASE			: List[str]	     =SwinBackbone(config=snake_case_							)
											model.to(snake_case_							)
											model.eval()
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =model(snake_case_							)

											# verify feature maps
											self.parent.assertEqual(len(result.feature_maps							)		,		1							)
											self.parent.assertListEqual(list(result.feature_maps[0].shape							)		,		[self.batch_size, model.channels[-1], 4, 4]							)

											# verify channels
											self.parent.assertEqual(len(model.channels							)		,		1							)




				def     __a		( self		,		snake_case_		,		snake_case_		,		snake_case_							)    ->      Dict:
											SCREAMING_SNAKE_CASE			: List[str]	     =SwinForMaskedImageModeling(config=snake_case_							)
											model.to(snake_case_							)
											model.eval()
											SCREAMING_SNAKE_CASE			: Any	     =model(snake_case_							)
											self.parent.assertEqual(
											    result.logits.shape		,		(self.batch_size, self.num_channels, self.image_size, self.image_size)							)

											# test greyscale images
											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =1
											SCREAMING_SNAKE_CASE			: int	     =SwinForMaskedImageModeling(snake_case_							)
											model.to(snake_case_							)
											model.eval()

											SCREAMING_SNAKE_CASE			: Dict	     =floats_tensor([self.batch_size, 1, self.image_size, self.image_size]							)
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =model(snake_case_							)
											self.parent.assertEqual(result.logits.shape		,		(self.batch_size, 1, self.image_size, self.image_size)							)




				def     __a		( self		,		snake_case_		,		snake_case_		,		snake_case_							)    ->      Optional[int]:
											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =self.type_sequence_label_size
											SCREAMING_SNAKE_CASE			: Optional[Any]	     =SwinForImageClassification(snake_case_							)
											model.to(snake_case_							)
											model.eval()
											SCREAMING_SNAKE_CASE			: str	     =model(snake_case_		,		labels=snake_case_							)
											self.parent.assertEqual(result.logits.shape		,		(self.batch_size, self.type_sequence_label_size)							)

											# test greyscale images
											SCREAMING_SNAKE_CASE			: int	     =1
											SCREAMING_SNAKE_CASE			: List[Any]	     =SwinForImageClassification(snake_case_							)
											model.to(snake_case_							)
											model.eval()

											SCREAMING_SNAKE_CASE			: Optional[int]	     =floats_tensor([self.batch_size, 1, self.image_size, self.image_size]							)
											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =model(snake_case_							)
											self.parent.assertEqual(result.logits.shape		,		(self.batch_size, self.type_sequence_label_size)							)







				def     __a		( self							)    ->      List[str]:
											SCREAMING_SNAKE_CASE			: Optional[int]	     =self.prepare_config_and_inputs()
											(
											    (
											    SCREAMING_SNAKE_CASE
											)     ,							(
											    SCREAMING_SNAKE_CASE
											)     ,							(
											    SCREAMING_SNAKE_CASE
											)     ,							
											)			: Optional[Any]	     =config_and_inputs
											SCREAMING_SNAKE_CASE			: Optional[Any]	     ={'''pixel_values''': pixel_values}
											return config, inputs_dict







@require_torch
class 							_lowerCAmelCase		(     UpperCamelCase__  ,   UpperCamelCase__  ,   unittest.TestCase	):
				lowerCamelCase__									=    (
				    (
				        SwinModel,
				        SwinBackbone,
				        SwinForImageClassification,
				        SwinForMaskedImageModeling,
				    )
				    if is_torch_available()
				    else ()
				)
				lowerCamelCase__									=    (
				    {'feature-extraction': SwinModel, 'image-classification': SwinForImageClassification}
				    if is_torch_available()
				    else {}
				)
				lowerCamelCase__									=    True

				lowerCamelCase__									=    False
				lowerCamelCase__									=    False
				lowerCamelCase__									=    False




				def     __a		( self							)    ->      List[Any]:
											SCREAMING_SNAKE_CASE			: Optional[int]	     =SwinModelTester(self							)
											SCREAMING_SNAKE_CASE			: Dict	     =ConfigTester(self		,		config_class=snake_case_		,		embed_dim=37							)




				def     __a		( self							)    ->      Optional[int]:
											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     __a		( self							)    ->      Any:
											return




				def     __a		( self							)    ->      Tuple:
											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =self.model_tester.prepare_config_and_inputs()
											self.model_tester.create_and_check_model(*snake_case_							)




				@unittest.skip(reason='''Got `CUDA error: misaligned address` with PyTorch 2.0.0.'''							)
				def     __a		( self							)    ->      int:
											pass




				def     __a		( self							)    ->      Any:
											super().test_training_gradient_checkpointing()




				def     __a		( self							)    ->      List[str]:
											SCREAMING_SNAKE_CASE			: Optional[int]	     =self.model_tester.prepare_config_and_inputs()
											self.model_tester.create_and_check_backbone(*snake_case_							)




				def     __a		( self							)    ->      str:
											SCREAMING_SNAKE_CASE			: List[str]	     =self.model_tester.prepare_config_and_inputs()
											self.model_tester.create_and_check_for_masked_image_modeling(*snake_case_							)




				def     __a		( self							)    ->      int:
											SCREAMING_SNAKE_CASE			: Tuple	     =self.model_tester.prepare_config_and_inputs()
											self.model_tester.create_and_check_for_image_classification(*snake_case_							)




				@unittest.skip(reason='''Swin does not use inputs_embeds'''							)
				def     __a		( self							)    ->      Dict:
											pass




				@unittest.skip(reason='''Swin Transformer does not use feedforward chunking'''							)
				def     __a		( self							)    ->      List[str]:
											pass




				def     __a		( self							)    ->      List[str]:
											SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: Optional[int]	     =self.model_tester.prepare_config_and_inputs_for_common()

											for model_class in self.all_model_classes:
																		SCREAMING_SNAKE_CASE			: int	     =model_class(snake_case_							)
																		self.assertIsInstance(model.get_input_embeddings()		,		(nn.Module)							)
																		SCREAMING_SNAKE_CASE			: Optional[int]	     =model.get_output_embeddings()
																		self.assertTrue(x is None or isinstance(snake_case_		,		nn.Linear							)							)




				def     __a		( self							)    ->      int:
											SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: Dict	     =self.model_tester.prepare_config_and_inputs_for_common()

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

																		SCREAMING_SNAKE_CASE			: Dict	     =['''pixel_values''']
																		self.assertListEqual(arg_names[:1]		,		snake_case_							)




				def     __a		( self							)    ->      int:
											SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: Tuple	     =self.model_tester.prepare_config_and_inputs_for_common()
											SCREAMING_SNAKE_CASE			: Union[str, Any]	     =True

											for model_class in self.all_model_classes:
																		SCREAMING_SNAKE_CASE			: Dict	     =True
																		SCREAMING_SNAKE_CASE			: Union[str, Any]	     =False
																		SCREAMING_SNAKE_CASE			: Optional[int]	     =True
																		SCREAMING_SNAKE_CASE			: Optional[int]	     =model_class(snake_case_							)
																		model.to(snake_case_							)
																		model.eval()
																		with torch.no_grad():
																									SCREAMING_SNAKE_CASE			: Union[str, Any]	     =model(**self._prepare_for_class(snake_case_		,		snake_case_							)							)
																		SCREAMING_SNAKE_CASE			: int	     =outputs.attentions
																		SCREAMING_SNAKE_CASE			: Union[str, Any]	     =len(self.model_tester.depths							)
																		self.assertEqual(len(snake_case_							)		,		snake_case_							)

																		# check that output_attentions also work using config
																		del inputs_dict["output_attentions"]
																		SCREAMING_SNAKE_CASE			: Optional[Any]	     =True
																		SCREAMING_SNAKE_CASE			: int	     =config.window_size**2
																		SCREAMING_SNAKE_CASE			: str	     =model_class(snake_case_							)
																		model.to(snake_case_							)
																		model.eval()
																		with torch.no_grad():
																									SCREAMING_SNAKE_CASE			: List[str]	     =model(**self._prepare_for_class(snake_case_		,		snake_case_							)							)
																		SCREAMING_SNAKE_CASE			: Dict	     =outputs.attentions
																		self.assertEqual(len(snake_case_							)		,		snake_case_							)

																		self.assertListEqual(
																		    list(attentions[0].shape[-3:]							)		,		[self.model_tester.num_heads[0], window_size_squared, window_size_squared]		,		)
																		SCREAMING_SNAKE_CASE			: Union[str, Any]	     =len(snake_case_							)

																		# Check attention is always last and order is fine
																		SCREAMING_SNAKE_CASE			: str	     =True
																		SCREAMING_SNAKE_CASE			: Union[str, Any]	     =True
																		SCREAMING_SNAKE_CASE			: Union[str, Any]	     =model_class(snake_case_							)
																		model.to(snake_case_							)
																		model.eval()
																		with torch.no_grad():
																									SCREAMING_SNAKE_CASE			: Union[str, Any]	     =model(**self._prepare_for_class(snake_case_		,		snake_case_							)							)

																		# also another +1 for reshaped_hidden_states
																		SCREAMING_SNAKE_CASE			: Optional[int]	     =1 if model_class.__name__ == '''SwinBackbone''' else 2
																		self.assertEqual(out_len + added_hidden_states		,		len(snake_case_							)							)

																		SCREAMING_SNAKE_CASE			: Dict	     =outputs.attentions

																		self.assertEqual(len(snake_case_							)		,		snake_case_							)

																		self.assertListEqual(
																		    list(self_attentions[0].shape[-3:]							)		,		[self.model_tester.num_heads[0], window_size_squared, window_size_squared]		,		)




				def     __a		( self		,		snake_case_		,		snake_case_		,		snake_case_		,		snake_case_							)    ->      List[str]:
											SCREAMING_SNAKE_CASE			: List[str]	     =model_class(snake_case_							)
											model.to(snake_case_							)
											model.eval()

											with torch.no_grad():
																		SCREAMING_SNAKE_CASE			: Any	     =model(**self._prepare_for_class(snake_case_		,		snake_case_							)							)

											SCREAMING_SNAKE_CASE			: Tuple	     =outputs.hidden_states

											SCREAMING_SNAKE_CASE			: str	     =getattr(
											    self.model_tester		,		'''expected_num_hidden_layers'''		,		len(self.model_tester.depths							) + 1							)
											self.assertEqual(len(snake_case_							)		,		snake_case_							)

											# Swin has a different seq_length
											SCREAMING_SNAKE_CASE			: int	     =(
											    config.patch_size
											    if isinstance(config.patch_size		,		collections.abc.Iterable							)
											    else (config.patch_size, config.patch_size)
											)

											SCREAMING_SNAKE_CASE			: List[Any]	     =(image_size[1] // patch_size[1]) * (image_size[0] // patch_size[0])

											self.assertListEqual(
											    list(hidden_states[0].shape[-2:]							)		,		[num_patches, self.model_tester.embed_dim]		,		)

											if not model_class.__name__ == "SwinBackbone":
																		SCREAMING_SNAKE_CASE			: List[Any]	     =outputs.reshaped_hidden_states
																		self.assertEqual(len(snake_case_							)		,		snake_case_							)

																		SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: List[str]	     =reshaped_hidden_states[0].shape
																		SCREAMING_SNAKE_CASE			: Dict	     =(
																		    reshaped_hidden_states[0].view(snake_case_		,		snake_case_		,		height * width							).permute(0		,		2		,		1							)
																		)
																		self.assertListEqual(
																		    list(reshaped_hidden_states.shape[-2:]							)		,		[num_patches, self.model_tester.embed_dim]		,		)




				def     __a		( self							)    ->      Optional[Any]:
											SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: Tuple	     =self.model_tester.prepare_config_and_inputs_for_common()

											SCREAMING_SNAKE_CASE			: Optional[Any]	     =(
											    self.model_tester.image_size
											    if isinstance(self.model_tester.image_size		,		collections.abc.Iterable							)
											    else (self.model_tester.image_size, self.model_tester.image_size)
											)

											for model_class in self.all_model_classes:
																		SCREAMING_SNAKE_CASE			: Optional[Any]	     =True
																		self.check_hidden_states_output(snake_case_		,		snake_case_		,		snake_case_		,		snake_case_							)

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

																		self.check_hidden_states_output(snake_case_		,		snake_case_		,		snake_case_		,		snake_case_							)




				def     __a		( self							)    ->      List[Any]:
											SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: Union[str, Any]	     =self.model_tester.prepare_config_and_inputs_for_common()
											SCREAMING_SNAKE_CASE			: int	     =3

											SCREAMING_SNAKE_CASE			: Optional[int]	     =(
											    self.model_tester.image_size
											    if isinstance(self.model_tester.image_size		,		collections.abc.Iterable							)
											    else (self.model_tester.image_size, self.model_tester.image_size)
											)
											SCREAMING_SNAKE_CASE			: Dict	     =(
											    config.patch_size
											    if isinstance(config.patch_size		,		collections.abc.Iterable							)
											    else (config.patch_size, config.patch_size)
											)

											SCREAMING_SNAKE_CASE			: Tuple	     =image_size[0] + patch_size[0] - (image_size[0] % patch_size[0])
											SCREAMING_SNAKE_CASE			: List[Any]	     =image_size[1] + patch_size[1] - (image_size[1] % patch_size[1])

											for model_class in self.all_model_classes:
																		SCREAMING_SNAKE_CASE			: List[Any]	     =True
																		self.check_hidden_states_output(snake_case_		,		snake_case_		,		snake_case_		,		(padded_height, padded_width)							)

																		# check that output_hidden_states also work using config
																		del inputs_dict["output_hidden_states"]
																		SCREAMING_SNAKE_CASE			: Union[str, Any]	     =True
																		self.check_hidden_states_output(snake_case_		,		snake_case_		,		snake_case_		,		(padded_height, padded_width)							)




				@slow
				def     __a		( self							)    ->      List[Any]:
											for model_name in SWIN_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
																		SCREAMING_SNAKE_CASE			: str	     =SwinModel.from_pretrained(snake_case_							)
																		self.assertIsNotNone(snake_case_							)







				def     __a		( self							)    ->      str:
											SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: List[Any]	     =self.model_tester.prepare_config_and_inputs_for_common()

											SCREAMING_SNAKE_CASE			: Any	     =_config_zero_init(snake_case_							)
											for model_class in self.all_model_classes:
																		SCREAMING_SNAKE_CASE			: List[str]	     =model_class(config=snake_case_							)
																		for name, param in model.named_parameters():
																									if "embeddings" not in name and param.requires_grad:
																																self.assertIn(
																																    ((param.data.mean() * 1E9).round() / 1E9).item()		,		[0.0, 1.0]		,		msg=F'Parameter {name} of model {model_class} seems not properly initialized'		,		)







@require_vision
@require_torch
class 							_lowerCAmelCase		(     unittest.TestCase	):




				@cached_property
				def     __a		( self							)    ->      List[Any]:
											return (
											    AutoImageProcessor.from_pretrained('''microsoft/swin-tiny-patch4-window7-224'''							)
											    if is_vision_available()
											    else None
											)







				@slow
				def     __a		( self							)    ->      str:
											SCREAMING_SNAKE_CASE			: Optional[int]	     =SwinForImageClassification.from_pretrained('''microsoft/swin-tiny-patch4-window7-224'''							).to(snake_case_							)
											SCREAMING_SNAKE_CASE			: List[str]	     =self.default_image_processor

											SCREAMING_SNAKE_CASE			: str	     =Image.open('''./tests/fixtures/tests_samples/COCO/000000039769.png'''							)
											SCREAMING_SNAKE_CASE			: List[Any]	     =image_processor(images=snake_case_		,		return_tensors='''pt'''							).to(snake_case_							)

											# forward pass
											with torch.no_grad():
																		SCREAMING_SNAKE_CASE			: Optional[int]	     =model(**snake_case_							)

											# verify the logits
											SCREAMING_SNAKE_CASE			: List[Any]	     =torch.Size((1, 1_000)							)
											self.assertEqual(outputs.logits.shape		,		snake_case_							)
											SCREAMING_SNAKE_CASE			: Tuple	     =torch.tensor([-0.0948, -0.6454, -0.0921]							).to(snake_case_							)
											self.assertTrue(torch.allclose(outputs.logits[0, :3]		,		snake_case_		,		atol=1E-4							)							)







@require_torch
class 							_lowerCAmelCase		(     unittest.TestCase  ,   UpperCamelCase__	):
				lowerCamelCase__									=    (SwinBackbone,) if is_torch_available() else ()
				lowerCamelCase__									=    SwinConfig




				def     __a		( self							)    ->      Any:
											SCREAMING_SNAKE_CASE			: Tuple	     =SwinModelTester(self							)












def 						lowerCAmelCase_       (	__a = "mytext.txt"	,	__a = False )       ->			None:





							"""simple docstring"""





							import socket

							SCREAMING_SNAKE_CASE			: int	     =12312  # Reserve a port for your service.
							SCREAMING_SNAKE_CASE			: Dict	     =socket.socket()  # Create a socket object
							SCREAMING_SNAKE_CASE			: Any	     =socket.gethostname()  # Get local machine name
							sock.bind((host, port) )  # Bind to the port
							sock.listen(5 )  # Now wait for client connection.

							print('''Server listening....''' )

							while True:
														SCREAMING_SNAKE_CASE     ,							SCREAMING_SNAKE_CASE			: Optional[int]	     =sock.accept()  # Establish connection with client.
														print(f'Got connection from {addr}' )
														SCREAMING_SNAKE_CASE			: List[str]	     =conn.recv(1024 )
														print(f'Server received: {data = }' )

														with open(__a	,	'''rb''' ) as in_file:
																					SCREAMING_SNAKE_CASE			: Dict	     =in_file.read(1024 )
																					while data:
																												conn.send(__a )
																												print(f'Sent {data!r}' )
																												SCREAMING_SNAKE_CASE			: str	     =in_file.read(1024 )

														print('''Done sending''' )
														conn.close()
														if testing:  # Allow the test to complete
																					break

							sock.shutdown(1 )
							sock.close()


if __name__ == "__main__":
							send_file()






