





"""simple docstring"""





import contextlib
import importlib
import io
import unittest

import transformers

# Try to import everything from transformers to ensure every object can be loaded.
from transformers import *  # noqa F406
from transformers.testing_utils import DUMMY_UNKNOWN_IDENTIFIER, require_flax, require_tf, require_torch
from transformers.utils import ContextManagers, find_labels, is_flax_available, is_tf_available, is_torch_available


if is_torch_available():
						from transformers import BertForPreTraining, BertForQuestionAnswering, BertForSequenceClassification

if is_tf_available():
						from transformers import TFBertForPreTraining, TFBertForQuestionAnswering, TFBertForSequenceClassification

if is_flax_available():
						from transformers import FlaxBertForPreTraining, FlaxBertForQuestionAnswering, FlaxBertForSequenceClassification


lowerCAmelCase__     			=			DUMMY_UNKNOWN_IDENTIFIER
# An actual model hosted on huggingface.co

lowerCAmelCase__     			=			'''main'''
# Default branch name
lowerCAmelCase__     			=			'''f2c752cfc5c0ab6f4bdec59acea69eefbee381c2'''
# One particular commit (not the top of `main`)
lowerCAmelCase__     			=			'''aaaaaaa'''
# This commit does not exist, so we should 404.

lowerCAmelCase__     			=			'''d9e9f15bc825e4b2c9249e9578f884bbcb5e3684'''
# Sha-1 of config.json on the top of `main`, for checking purposes
lowerCAmelCase__     			=			'''4b243c475af8d0a7754e87d7d096c92e5199ec2fe168a2ee7998e3b8e9bcb1d3'''


@contextlib.contextmanager
def       a__					(					):




		"""simple docstring"""


		print("Welcome!"    )
		yield
		print("Bye!"    )


@contextlib.contextmanager
def       a__					(					):




		"""simple docstring"""


		print("Bonjour!"    )
		yield
		print("Au revoir!"    )





class        _lowerCamelCase      (       unittest.TestCase ):


						def     snake_case_   (self		) ->   Optional[Any]:
								assert transformers.__spec__ is not None
								assert importlib.util.find_spec("transformers"		) is not None





class        _lowerCamelCase      (       unittest.TestCase ):


						@unittest.mock.patch("sys.stdout"   ,							new_callable=io.StringIO		)
						def     snake_case_   (self   ,							__a		) ->   Optional[int]:

								with ContextManagers([]		):
										print("Transformers are awesome!"		)
								# The print statement adds a new line at the end of the output
								self.assertEqual(mock_stdout.getvalue()   ,							"Transformers are awesome!\n"		)


						@unittest.mock.patch("sys.stdout"   ,							new_callable=io.StringIO		)
						def     snake_case_   (self   ,							__a		) ->   Optional[Any]:

								with ContextManagers([context_en()]		):
										print("Transformers are awesome!"		)
								# The output should be wrapped with an English welcome and goodbye
								self.assertEqual(mock_stdout.getvalue()   ,							"Welcome!\nTransformers are awesome!\nBye!\n"		)


						@unittest.mock.patch("sys.stdout"   ,							new_callable=io.StringIO		)
						def     snake_case_   (self   ,							__a		) ->   Any:

								with ContextManagers([context_fr(), context_en()]		):
										print("Transformers are awesome!"		)
								# The output should be wrapped with an English and French welcome and goodbye
								self.assertEqual(mock_stdout.getvalue()   ,							"Bonjour!\nWelcome!\nTransformers are awesome!\nBye!\nAu revoir!\n"		)


						@require_torch
						def     snake_case_   (self		) ->   Union[str, Any]:
								self.assertEqual(find_labels(__a		)   ,							["labels"]		)
								self.assertEqual(find_labels(__a		)   ,							["labels", "next_sentence_label"]		)
								self.assertEqual(find_labels(__a		)   ,							["start_positions", "end_positions"]		)





								class        _lowerCamelCase      (       _lowercase ):
														pass



								self.assertEqual(find_labels(__a		)   ,							["labels"]		)


						@require_tf
						def     snake_case_   (self		) ->   List[Any]:
								self.assertEqual(find_labels(__a		)   ,							["labels"]		)
								self.assertEqual(find_labels(__a		)   ,							["labels", "next_sentence_label"]		)
								self.assertEqual(find_labels(__a		)   ,							["start_positions", "end_positions"]		)





								class        _lowerCamelCase      (       _lowercase ):
														pass



								self.assertEqual(find_labels(__a		)   ,							["labels"]		)




						@require_flax
						def     snake_case_   (self		) ->   Optional[int]:
								self.assertEqual(find_labels(__a		)   ,							[]		)
								self.assertEqual(find_labels(__a		)   ,							[]		)
								self.assertEqual(find_labels(__a		)   ,							[]		)





								class        _lowerCamelCase      (       _lowercase ):
														pass



								self.assertEqual(find_labels(__a		)   ,							[]		)













"""simple docstring"""





import unittest

from transformers import is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow, torch_device


if is_torch_available():
						from transformers import AutoModelForSeqaSeqLM, AutoTokenizer





@require_torch
@require_sentencepiece
@require_tokenizers
class        _lowerCamelCase      (       unittest.TestCase ):


						@slow
						def     snake_case_   (self		) ->   List[str]:
								UpperCamelCase   =	AutoModelForSeqaSeqLM.from_pretrained("google/mt5-small"   ,							return_dict=__a		).to(__a		)
								UpperCamelCase   =	AutoTokenizer.from_pretrained("google/mt5-small"		)

								UpperCamelCase   =	tokenizer("Hello there"   ,							return_tensors="pt"		).input_ids
								UpperCamelCase   =	tokenizer("Hi I am"   ,							return_tensors="pt"		).input_ids

								UpperCamelCase   =	model(input_ids.to(__a		)   ,							labels=labels.to(__a		)		).loss
								UpperCamelCase   =	-(labels.shape[-1] * loss.item())

								UpperCamelCase   =	-84.9127
								self.assertTrue(abs(mtf_score - EXPECTED_SCORE		) < 1e-4		)






