



import os
import sys
import unittest


__SCREAMING_SNAKE_CASE  :						int    							=      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,
)


__SCREAMING_SNAKE_CASE  :						Optional[int]    							=      os.path.join('''tests''', '''models''', '''bert''', '''test_modeling_bert.py''')
__SCREAMING_SNAKE_CASE  :						List[Any]    							=      os.path.join('''tests''', '''models''', '''blip''', '''test_modeling_blip.py''')


class 							lowerCamelCase_(   unittest.TestCase    ):





					'''simple docstring'''



					def 			snake_case__      (    self   ):
									_lowerCamelCase        =				get_test_to_tester_mapping(UpperCamelCase_   )
									_lowerCamelCase        =				get_test_to_tester_mapping(UpperCamelCase_   )

									_lowerCamelCase        =				{'''BertModelTest''': '''BertModelTester'''}

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

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

					def 			snake_case__      (    self   ):
									_lowerCamelCase        =				get_model_to_test_mapping(UpperCamelCase_   )
									_lowerCamelCase        =				get_model_to_test_mapping(UpperCamelCase_   )

									_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(UpperCamelCase_   )				,       UpperCamelCase_   )
									self.assertEqual(get_test_info.to_json(UpperCamelCase_   )				,       UpperCamelCase_   )





					def 			snake_case__      (    self   ):
									_lowerCamelCase        =				get_model_to_tester_mapping(UpperCamelCase_   )
									_lowerCamelCase        =				get_model_to_tester_mapping(UpperCamelCase_   )

									_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(UpperCamelCase_   )				,       UpperCamelCase_   )
									self.assertEqual(get_test_info.to_json(UpperCamelCase_   )				,       UpperCamelCase_   )





"""simple docstring"""
from __future__ import annotations

from typing import Any



def        lowerCAmelCase_(   lowercase_     :							list[Any]							)	->       None:
				create_state_space_tree(lowercase_						,   []						,   0							)



def        lowerCAmelCase_(   lowercase_     :							list[Any]						,   lowercase_     :							list[Any]						,   lowercase_     :							int							)	->       None:

				if index == len(lowercase_							):
								print(lowercase_							)
								return

				create_state_space_tree(lowercase_						,   lowercase_						,   index + 1							)
				current_subsequence.append(sequence[index]							)
				create_state_space_tree(lowercase_						,   lowercase_						,   index + 1							)
				current_subsequence.pop()


if __name__ == "__main__":
			__SCREAMING_SNAKE_CASE  :						list[Any]    							=      [3, 1, 2, 4]
			generate_all_subsequences(seq)

			seq.clear()
			seq.extend(['''A''', '''B''', '''C'''])
			generate_all_subsequences(seq)
