

import os
import sys
import unittest


_UpperCAmelCase		:   Dict										=       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,
)


_UpperCAmelCase		:   Any										=       os.path.join("""tests""", """models""", """bert""", """test_modeling_bert.py""")
_UpperCAmelCase		:   str										=       os.path.join("""tests""", """models""", """blip""", """test_modeling_blip.py""")







class  lowercase				(       unittest.TestCase			):




				def     a							(					self       ):
											snake_case_							=    get_test_to_tester_mapping(snake_case       )
											snake_case_							=    get_test_to_tester_mapping(snake_case       )

											snake_case_							=    {'BertModelTest': 'BertModelTester'}

											snake_case_							=    {
											    '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     a							(					self       ):
											snake_case_							=    get_model_to_test_mapping(snake_case       )
											snake_case_							=    get_model_to_test_mapping(snake_case       )

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

											snake_case_							=    {
											    '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     a							(					self       ):
											snake_case_							=    get_model_to_tester_mapping(snake_case       )
											snake_case_							=    get_model_to_tester_mapping(snake_case       )

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

											snake_case_							=    {
											    '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 abc import ABC, abstractmethod
from argparse import ArgumentParser







class  lowercase				(       lowercase_			):




				@staticmethod
				@abstractmethod
				def     a							(					snake_case       ):
											raise NotImplementedError()




				@abstractmethod
				def     a							(					self       ):
											raise NotImplementedError()




