



import os
import sys
import unittest


lowercase_													=      os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
sys.path.append(os.path.join(git_repo_path, '''utils'''))

import get_test_info  # noqa: E402
from get_test_info import (  # noqa: E402
    get_model_to_test_mapping,
    get_model_to_tester_mapping,
    get_test_to_tester_mapping,
)


lowercase_													=      os.path.join('''tests''', '''models''', '''bert''', '''test_modeling_bert.py''')
lowercase_													=      os.path.join('''tests''', '''models''', '''blip''', '''test_modeling_blip.py''')






class     __a			(  unittest.TestCase					):



	def 		UpperCamelCase				(    self				:     int)->				Dict:
						__lowerCAmelCase						 =get_test_to_tester_mapping(snake_case_)
						__lowerCAmelCase						 =get_test_to_tester_mapping(snake_case_)

						__lowerCAmelCase						 ={"""BertModelTest""": """BertModelTester"""}

						__lowerCAmelCase						 ={
						    """BlipModelTest""": """BlipModelTester""",
						    """BlipTextImageModelTest""": """BlipTextImageModelsModelTester""",
						    """BlipTextModelTest""": """BlipTextModelTester""",
						    """BlipTextRetrievalModelTest""": """BlipTextRetrievalModelTester""",
						    """BlipVQAModelTest""": """BlipVQAModelTester""",
						    """BlipVisionModelTest""": """BlipVisionModelTester""",
						}

						self.assertEqual(get_test_info.to_json(snake_case_)					,						snake_case_)
						self.assertEqual(get_test_info.to_json(snake_case_)					,						snake_case_)



	def 		UpperCamelCase				(    self				:     List[Any])->				Any:
						__lowerCAmelCase						 =get_model_to_test_mapping(snake_case_)
						__lowerCAmelCase						 =get_model_to_test_mapping(snake_case_)

						__lowerCAmelCase						 ={
						    """BertForMaskedLM""": ["""BertModelTest"""],
						    """BertForMultipleChoice""": ["""BertModelTest"""],
						    """BertForNextSentencePrediction""": ["""BertModelTest"""],
						    """BertForPreTraining""": ["""BertModelTest"""],
						    """BertForQuestionAnswering""": ["""BertModelTest"""],
						    """BertForSequenceClassification""": ["""BertModelTest"""],
						    """BertForTokenClassification""": ["""BertModelTest"""],
						    """BertLMHeadModel""": ["""BertModelTest"""],
						    """BertModel""": ["""BertModelTest"""],
						}

						__lowerCAmelCase						 ={
						    """BlipForConditionalGeneration""": ["""BlipTextImageModelTest"""],
						    """BlipForImageTextRetrieval""": ["""BlipTextRetrievalModelTest"""],
						    """BlipForQuestionAnswering""": ["""BlipVQAModelTest"""],
						    """BlipModel""": ["""BlipModelTest"""],
						    """BlipTextModel""": ["""BlipTextModelTest"""],
						    """BlipVisionModel""": ["""BlipVisionModelTest"""],
						}

						self.assertEqual(get_test_info.to_json(snake_case_)					,						snake_case_)
						self.assertEqual(get_test_info.to_json(snake_case_)					,						snake_case_)



	def 		UpperCamelCase				(    self				:     str)->				str:
						__lowerCAmelCase						 =get_model_to_tester_mapping(snake_case_)
						__lowerCAmelCase						 =get_model_to_tester_mapping(snake_case_)

						__lowerCAmelCase						 ={
						    """BertForMaskedLM""": ["""BertModelTester"""],
						    """BertForMultipleChoice""": ["""BertModelTester"""],
						    """BertForNextSentencePrediction""": ["""BertModelTester"""],
						    """BertForPreTraining""": ["""BertModelTester"""],
						    """BertForQuestionAnswering""": ["""BertModelTester"""],
						    """BertForSequenceClassification""": ["""BertModelTester"""],
						    """BertForTokenClassification""": ["""BertModelTester"""],
						    """BertLMHeadModel""": ["""BertModelTester"""],
						    """BertModel""": ["""BertModelTester"""],
						}

						__lowerCAmelCase						 ={
						    """BlipForConditionalGeneration""": ["""BlipTextImageModelsModelTester"""],
						    """BlipForImageTextRetrieval""": ["""BlipTextRetrievalModelTester"""],
						    """BlipForQuestionAnswering""": ["""BlipVQAModelTester"""],
						    """BlipModel""": ["""BlipModelTester"""],
						    """BlipTextModel""": ["""BlipTextModelTester"""],
						    """BlipVisionModel""": ["""BlipVisionModelTester"""],
						}

						self.assertEqual(get_test_info.to_json(snake_case_)					,						snake_case_)
						self.assertEqual(get_test_info.to_json(snake_case_)					,						snake_case_)









from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


lowercase_													=      {
    '''configuration_albert''': ['''ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''AlbertConfig''', '''AlbertOnnxConfig'''],
}

try:
				if not is_sentencepiece_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowercase_													=      ['''AlbertTokenizer''']

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowercase_													=      ['''AlbertTokenizerFast''']

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowercase_													=      [
				    '''ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''AlbertForMaskedLM''',
				    '''AlbertForMultipleChoice''',
				    '''AlbertForPreTraining''',
				    '''AlbertForQuestionAnswering''',
				    '''AlbertForSequenceClassification''',
				    '''AlbertForTokenClassification''',
				    '''AlbertModel''',
				    '''AlbertPreTrainedModel''',
				    '''load_tf_weights_in_albert''',
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowercase_													=      [
				    '''TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''TFAlbertForMaskedLM''',
				    '''TFAlbertForMultipleChoice''',
				    '''TFAlbertForPreTraining''',
				    '''TFAlbertForQuestionAnswering''',
				    '''TFAlbertForSequenceClassification''',
				    '''TFAlbertForTokenClassification''',
				    '''TFAlbertMainLayer''',
				    '''TFAlbertModel''',
				    '''TFAlbertPreTrainedModel''',
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				lowercase_													=      [
				    '''FlaxAlbertForMaskedLM''',
				    '''FlaxAlbertForMultipleChoice''',
				    '''FlaxAlbertForPreTraining''',
				    '''FlaxAlbertForQuestionAnswering''',
				    '''FlaxAlbertForSequenceClassification''',
				    '''FlaxAlbertForTokenClassification''',
				    '''FlaxAlbertModel''',
				    '''FlaxAlbertPreTrainedModel''',
				]

if TYPE_CHECKING:
				from .configuration_albert import ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, AlbertConfig, AlbertOnnxConfig

				try:
								if not is_sentencepiece_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_albert import AlbertTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_albert_fast import AlbertTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_albert import (
								    ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    AlbertForMaskedLM,
								    AlbertForMultipleChoice,
								    AlbertForPreTraining,
								    AlbertForQuestionAnswering,
								    AlbertForSequenceClassification,
								    AlbertForTokenClassification,
								    AlbertModel,
								    AlbertPreTrainedModel,
								    load_tf_weights_in_albert,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_albert import (
								    TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFAlbertForMaskedLM,
								    TFAlbertForMultipleChoice,
								    TFAlbertForPreTraining,
								    TFAlbertForQuestionAnswering,
								    TFAlbertForSequenceClassification,
								    TFAlbertForTokenClassification,
								    TFAlbertMainLayer,
								    TFAlbertModel,
								    TFAlbertPreTrainedModel,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flax_albert import (
								    FlaxAlbertForMaskedLM,
								    FlaxAlbertForMultipleChoice,
								    FlaxAlbertForPreTraining,
								    FlaxAlbertForQuestionAnswering,
								    FlaxAlbertForSequenceClassification,
								    FlaxAlbertForTokenClassification,
								    FlaxAlbertModel,
								    FlaxAlbertPreTrainedModel,
								)
else:
				import sys

				lowercase_													=      _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




