



'''simple docstring'''
def A__    (     UpperCAmelCase_							):
						_UpperCamelCase					:		List[str] 				=   abs(UpperCAmelCase_							)
						_UpperCamelCase					:		int 				=   0
						while n > 0:
												res += n % 1_0
												n //= 1_0
						return res






def A__    (     UpperCAmelCase_							):
						_UpperCamelCase					:		List[Any] 				=   abs(UpperCAmelCase_							)
						return n if n < 1_0 else n % 1_0 + sum_of_digits(n // 1_0							)






def A__    (     UpperCAmelCase_							):
						return sum(int(UpperCAmelCase_							) for c in str(abs(UpperCAmelCase_							)							)							)






def A__    (     ):
						from collections.abc import Callable
						from timeit import timeit

						def benchmark_a_function(UpperCAmelCase_  ,  UpperCAmelCase_							) -> None:
												_UpperCamelCase					:		str 				=   f'{func.__name__}({value})'
												_UpperCamelCase					:		Tuple 				=   timeit(f'__main__.{call}'  ,  setup='import __main__'							)
												print(f'{call:56} = {func(UpperCAmelCase_							)} -- {timing:.4f} seconds'							)

						for value in (2_6_2_1_4_4, 1_1_2_5_8_9_9_9_0_6_8_4_2_6_2_4, 1_2_6_7_6_5_0_6_0_0_2_2_8_2_2_9_4_0_1_4_9_6_7_0_3_2_0_5_3_7_6):
												for func in (sum_of_digits, sum_of_digits_recursion, sum_of_digits_compact):
																		benchmark_a_function(UpperCAmelCase_  ,  UpperCAmelCase_							)
												print()


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					benchmark()








import os
import sys
import unittest


_lowerCamelCase	:		Optional[Any]							       =   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,
)


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


class 				UpperCamelCase_    ( unittest.TestCase     ):

    '''simple docstring'''






    def        SCREAMING_SNAKE_CASE							(			self      :	Tuple)						->Tuple:





           '''simple docstring'''

           A__       =    get_test_to_tester_mapping(UpperCAmelCase__)
           A__       =    get_test_to_tester_mapping(UpperCAmelCase__)

           A__       =    {'''BertModelTest''': '''BertModelTester'''}

           A__       =    {
               '''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        SCREAMING_SNAKE_CASE							(			self      :	Tuple)						->List[Any]:





           '''simple docstring'''

           A__       =    get_model_to_test_mapping(UpperCAmelCase__)
           A__       =    get_model_to_test_mapping(UpperCAmelCase__)

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

           A__       =    {
               '''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        SCREAMING_SNAKE_CASE							(			self      :	Optional[Any])						->str:





           '''simple docstring'''

           A__       =    get_model_to_tester_mapping(UpperCAmelCase__)
           A__       =    get_model_to_tester_mapping(UpperCAmelCase__)

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

           A__       =    {
               '''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__)


