
from __future__ import annotations

import unittest

from transformers import is_tf_available
from transformers.testing_utils import require_sentencepiece, require_tf, require_tokenizers, slow


if is_tf_available():
		import numpy as np
		import tensorflow as tf

		from transformers import TFXLMRobertaModel



@require_tf
@require_sentencepiece
@require_tokenizers
class    a_ (			unittest.TestCase    ):






			@slow
			def    UpperCamelCase_				(      self  ):
									_lowercase					       =					TFXLMRobertaModel.from_pretrained("""jplu/tf-xlm-roberta-base"""  )

									_lowercase					       =					{
									    """input_ids""": tf.convert_to_tensor([[0, 2_646, 10_269, 83, 99_942, 2]]				,			dtype=tf.intaa  ),  # "My dog is cute"
									    """attention_mask""": tf.convert_to_tensor([[1, 1, 1, 1, 1, 1]]				,			dtype=tf.intaa  ),
									}

									_lowercase					       =					model(__UpperCamelCase  )["""last_hidden_state"""]
									_lowercase					       =					tf.TensorShape((1, 6, 768)  )
									self.assertEqual(output.shape				,			__UpperCamelCase  )
									# compare the actual values for a slice.
									_lowercase					       =					tf.convert_to_tensor(
									    [
									        [
									            [0.0_68_17_62, 0.10_89_44_51, 0.06_77_25_04],
									            [-0.06_42_36_68, 0.02_36_66_15, 0.04_32_93_44],
									            [-0.06_05_72_95, 0.09_97_41_35, -0.00_07_05_84],
									        ]
									    ]				,			dtype=tf.floataa				,			)

									self.assertTrue(np.allclose(output[:, :3, :3].numpy()				,			expected_slice.numpy()				,			atol=1E-4  )  )

from datasets.utils.patching import _PatchedModuleObj, patch_submodule

from . import _test_patching




def 	UpperCamelCase__  (     )  ->     List[str]:
						import os as original_os
						from os import path as original_path
						from os import rename as original_rename
						from os.path import dirname as original_dirname
						from os.path import join as original_join

						assert _test_patching.os is original_os
						assert _test_patching.path is original_path
						assert _test_patching.join is original_join

						assert _test_patching.renamed_os is original_os
						assert _test_patching.renamed_path is original_path
						assert _test_patching.renamed_join is original_join

						_lowercase					       =					"""__test_patch_submodule_mock__"""
						with patch_submodule(_test_patching		,   """os.path.join"""		,   SCREAMING_SNAKE_CASE_       ):
												# Every way to access os.path.join must be patched, and the rest must stay untouched

												# check os.path.join
												assert isinstance(_test_patching.os		,   _PatchedModuleObj       )
												assert isinstance(_test_patching.os.path		,   _PatchedModuleObj       )
												assert _test_patching.os.path.join is mock

												# check path.join
												assert isinstance(_test_patching.path		,   _PatchedModuleObj       )
												assert _test_patching.path.join is mock

												# check join
												assert _test_patching.join is mock

												# check that the other attributes are untouched
												assert _test_patching.os.rename is original_rename
												assert _test_patching.path.dirname is original_dirname
												assert _test_patching.os.path.dirname is original_dirname

												# Even renamed modules or objects must be patched

												# check renamed_os.path.join
												assert isinstance(_test_patching.renamed_os		,   _PatchedModuleObj       )
												assert isinstance(_test_patching.renamed_os.path		,   _PatchedModuleObj       )
												assert _test_patching.renamed_os.path.join is mock

												# check renamed_path.join
												assert isinstance(_test_patching.renamed_path		,   _PatchedModuleObj       )
												assert _test_patching.renamed_path.join is mock

												# check renamed_join
												assert _test_patching.renamed_join is mock

												# check that the other attributes are untouched
												assert _test_patching.renamed_os.rename is original_rename
												assert _test_patching.renamed_path.dirname is original_dirname
												assert _test_patching.renamed_os.path.dirname is original_dirname

						# check that everthing is back to normal when the patch is over

						assert _test_patching.os is original_os
						assert _test_patching.path is original_path
						assert _test_patching.join is original_join

						assert _test_patching.renamed_os is original_os
						assert _test_patching.renamed_path is original_path
						assert _test_patching.renamed_join is original_join




def 	UpperCamelCase__  (     )  ->     int:
						assert _test_patching.open is open

						_lowercase					       =					"""__test_patch_submodule_builtin_mock__"""
						# _test_patching has "open" in its globals
						assert _test_patching.open is open
						with patch_submodule(_test_patching		,   """open"""		,   SCREAMING_SNAKE_CASE_       ):
												assert _test_patching.open is mock

						# check that everthing is back to normal when the patch is over

						assert _test_patching.open is open




def 	UpperCamelCase__  (     )  ->     List[Any]:
						# pandas.read_csv is not present in _test_patching
						_lowercase					       =					"""__test_patch_submodule_missing_mock__"""
						with patch_submodule(_test_patching		,   """pandas.read_csv"""		,   SCREAMING_SNAKE_CASE_       ):
												pass




def 	UpperCamelCase__  (     )  ->     Tuple:
						# builtin should always be mocked even if they're not in the globals
						# in case they're loaded at one point
						_lowercase					       =					"""__test_patch_submodule_missing_builtin_mock__"""
						# _test_patching doesn't have "len" in its globals
						assert getattr(_test_patching		,   """len"""		,   SCREAMING_SNAKE_CASE_       ) is None
						with patch_submodule(_test_patching		,   """len"""		,   SCREAMING_SNAKE_CASE_       ):
												assert _test_patching.len is mock
						assert _test_patching.len is len




def 	UpperCamelCase__  (     )  ->     List[str]:
						_lowercase					       =					"""__test_patch_submodule_start_and_stop_mock__"""
						_lowercase					       =					patch_submodule(_test_patching		,   """open"""		,   SCREAMING_SNAKE_CASE_       )
						assert _test_patching.open is open
						patch.start()
						assert _test_patching.open is mock
						patch.stop()
						assert _test_patching.open is open




def 	UpperCamelCase__  (     )  ->     Union[str, Any]:
						from os import rename as original_rename
						from os.path import dirname as original_dirname
						from os.path import join as original_join

						_lowercase					       =					"""__test_patch_submodule_successive_join__"""
						_lowercase					       =					"""__test_patch_submodule_successive_dirname__"""
						_lowercase					       =					"""__test_patch_submodule_successive_rename__"""
						assert _test_patching.os.path.join is original_join
						assert _test_patching.os.path.dirname is original_dirname
						assert _test_patching.os.rename is original_rename

						with patch_submodule(_test_patching		,   """os.path.join"""		,   SCREAMING_SNAKE_CASE_       ):
												with patch_submodule(_test_patching		,   """os.rename"""		,   SCREAMING_SNAKE_CASE_       ):
																		with patch_submodule(_test_patching		,   """os.path.dirname"""		,   SCREAMING_SNAKE_CASE_       ):
																								assert _test_patching.os.path.join is mock_join
																								assert _test_patching.os.path.dirname is mock_dirname
																								assert _test_patching.os.rename is mock_rename

    # try another order
						with patch_submodule(_test_patching		,   """os.rename"""		,   SCREAMING_SNAKE_CASE_       ):
												with patch_submodule(_test_patching		,   """os.path.join"""		,   SCREAMING_SNAKE_CASE_       ):
																		with patch_submodule(_test_patching		,   """os.path.dirname"""		,   SCREAMING_SNAKE_CASE_       ):
																								assert _test_patching.os.path.join is mock_join
																								assert _test_patching.os.path.dirname is mock_dirname
																								assert _test_patching.os.rename is mock_rename

						assert _test_patching.os.path.join is original_join
						assert _test_patching.os.path.dirname is original_dirname
						assert _test_patching.os.rename is original_rename




def 	UpperCamelCase__  (     )  ->     List[Any]:
						_lowercase					       =					"""__test_patch_submodule_doesnt_exist_mock__"""
						with patch_submodule(_test_patching		,   """__module_that_doesn_exist__.__attribute_that_doesn_exist__"""		,   SCREAMING_SNAKE_CASE_       ):
												pass
						with patch_submodule(_test_patching		,   """os.__attribute_that_doesn_exist__"""		,   SCREAMING_SNAKE_CASE_       ):
												pass