



"""simple docstring"""







import unittest

from transformers import MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING, is_vision_available, pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_tf,
    require_torch,
    require_vision,
    slow,
)

from .test_pipelines_common import ANY


if is_vision_available():
							from PIL import Image
else:
							class        __A       :







									'''simple docstring'''





									@staticmethod
									def 					UpperCAmelCase    (	*_snake_case						:  Optional[int]			,**_snake_case						:  Optional[Any]						)					->		int:






											"""simple docstring"""



											pass
@is_pipeline_test
@require_vision
@require_torch
class        __A       (	unittest.TestCase    ):







		'''simple docstring'''





		lowerCAmelCase			:					List[str]   	=				MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING







		def 					UpperCAmelCase    (	self						:  Union[str, Any]			,_snake_case						:  str			,_snake_case						:  str			,_snake_case						:  Dict						)					->		Tuple:






				"""simple docstring"""



				lowercase__   :    str				=			pipeline(
				    '''zero-shot-object-detection'''			,model='''hf-internal-testing/tiny-random-owlvit-object-detection'''						)

				lowercase__   :    Optional[int]				=			[
				    {
				        '''image''': '''./tests/fixtures/tests_samples/COCO/000000039769.png''',
				        '''candidate_labels''': ['''cat''', '''remote''', '''couch'''],
				    }
				]
				return object_detector, examples







		def 					UpperCAmelCase    (	self						:  str			,_snake_case						:  str			,_snake_case						:  Dict						)					->		List[Any]:






				"""simple docstring"""



				lowercase__   :    List[Any]				=			object_detector(examples[0]			,threshold=0.0						)

				lowercase__   :    Optional[int]				=			len(_snake_case						)
				self.assertGreater(_snake_case			,0						)
				self.assertEqual(
				    _snake_case			,[
				        {
				            '''score''': ANY(_snake_case						),
				            '''label''': ANY(_snake_case						),
				            '''box''': {'''xmin''': ANY(_snake_case						), '''ymin''': ANY(_snake_case						), '''xmax''': ANY(_snake_case						), '''ymax''': ANY(_snake_case						)},
				        }
				        for i in range(_snake_case						)
				    ]			,)







		@require_tf
		@unittest.skip('''Zero Shot Object Detection not implemented in TF'''						)
		def 					UpperCAmelCase    (	self						:  Union[str, Any]						)					->		Union[str, Any]:






				"""simple docstring"""



				pass







		@require_torch
		def 					UpperCAmelCase    (	self						:  List[str]						)					->		Tuple:






				"""simple docstring"""



				lowercase__   :    Tuple				=			pipeline(
				    '''zero-shot-object-detection'''			,model='''hf-internal-testing/tiny-random-owlvit-object-detection'''						)

				lowercase__   :    str				=			object_detector(
				    '''./tests/fixtures/tests_samples/COCO/000000039769.png'''			,candidate_labels=['''cat''', '''remote''', '''couch''']			,threshold=0.64			,)

				self.assertEqual(
				    nested_simplify(_snake_case			,decimals=4						)			,[
				        {'''score''': 0.7235, '''label''': '''cat''', '''box''': {'''xmin''': 204, '''ymin''': 167, '''xmax''': 232, '''ymax''': 190}},
				        {'''score''': 0.7218, '''label''': '''remote''', '''box''': {'''xmin''': 204, '''ymin''': 167, '''xmax''': 232, '''ymax''': 190}},
				        {'''score''': 0.7184, '''label''': '''couch''', '''box''': {'''xmin''': 204, '''ymin''': 167, '''xmax''': 232, '''ymax''': 190}},
				        {'''score''': 0.6748, '''label''': '''remote''', '''box''': {'''xmin''': 571, '''ymin''': 83, '''xmax''': 598, '''ymax''': 103}},
				        {'''score''': 0.6656, '''label''': '''cat''', '''box''': {'''xmin''': 571, '''ymin''': 83, '''xmax''': 598, '''ymax''': 103}},
				        {'''score''': 0.6614, '''label''': '''couch''', '''box''': {'''xmin''': 571, '''ymin''': 83, '''xmax''': 598, '''ymax''': 103}},
				        {'''score''': 0.6456, '''label''': '''remote''', '''box''': {'''xmin''': 494, '''ymin''': 105, '''xmax''': 521, '''ymax''': 127}},
				        {'''score''': 0.642, '''label''': '''remote''', '''box''': {'''xmin''': 67, '''ymin''': 274, '''xmax''': 93, '''ymax''': 297}},
				        {'''score''': 0.6419, '''label''': '''cat''', '''box''': {'''xmin''': 494, '''ymin''': 105, '''xmax''': 521, '''ymax''': 127}},
				    ]			,)

				lowercase__   :    str				=			object_detector(
				    [
				        {
				            '''image''': '''./tests/fixtures/tests_samples/COCO/000000039769.png''',
				            '''candidate_labels''': ['''cat''', '''remote''', '''couch'''],
				        }
				    ]			,threshold=0.64			,)

				self.assertEqual(
				    nested_simplify(_snake_case			,decimals=4						)			,[
				        [
				            {'''score''': 0.7235, '''label''': '''cat''', '''box''': {'''xmin''': 204, '''ymin''': 167, '''xmax''': 232, '''ymax''': 190}},
				            {'''score''': 0.7218, '''label''': '''remote''', '''box''': {'''xmin''': 204, '''ymin''': 167, '''xmax''': 232, '''ymax''': 190}},
				            {'''score''': 0.7184, '''label''': '''couch''', '''box''': {'''xmin''': 204, '''ymin''': 167, '''xmax''': 232, '''ymax''': 190}},
				            {'''score''': 0.6748, '''label''': '''remote''', '''box''': {'''xmin''': 571, '''ymin''': 83, '''xmax''': 598, '''ymax''': 103}},
				            {'''score''': 0.6656, '''label''': '''cat''', '''box''': {'''xmin''': 571, '''ymin''': 83, '''xmax''': 598, '''ymax''': 103}},
				            {'''score''': 0.6614, '''label''': '''couch''', '''box''': {'''xmin''': 571, '''ymin''': 83, '''xmax''': 598, '''ymax''': 103}},
				            {'''score''': 0.6456, '''label''': '''remote''', '''box''': {'''xmin''': 494, '''ymin''': 105, '''xmax''': 521, '''ymax''': 127}},
				            {'''score''': 0.642, '''label''': '''remote''', '''box''': {'''xmin''': 67, '''ymin''': 274, '''xmax''': 93, '''ymax''': 297}},
				            {'''score''': 0.6419, '''label''': '''cat''', '''box''': {'''xmin''': 494, '''ymin''': 105, '''xmax''': 521, '''ymax''': 127}},
				        ]
				    ]			,)







		@require_torch
		@slow
		def 					UpperCAmelCase    (	self						:  List[Any]						)					->		List[Any]:






				"""simple docstring"""



				lowercase__   :    List[str]				=			pipeline('''zero-shot-object-detection'''						)

				lowercase__   :    Any				=			object_detector(
				    '''http://images.cocodataset.org/val2017/000000039769.jpg'''			,candidate_labels=['''cat''', '''remote''', '''couch''']			,)
				self.assertEqual(
				    nested_simplify(_snake_case			,decimals=4						)			,[
				        {'''score''': 0.2868, '''label''': '''cat''', '''box''': {'''xmin''': 324, '''ymin''': 20, '''xmax''': 640, '''ymax''': 373}},
				        {'''score''': 0.277, '''label''': '''remote''', '''box''': {'''xmin''': 40, '''ymin''': 72, '''xmax''': 177, '''ymax''': 115}},
				        {'''score''': 0.2537, '''label''': '''cat''', '''box''': {'''xmin''': 1, '''ymin''': 55, '''xmax''': 315, '''ymax''': 472}},
				        {'''score''': 0.1474, '''label''': '''remote''', '''box''': {'''xmin''': 335, '''ymin''': 74, '''xmax''': 371, '''ymax''': 187}},
				        {'''score''': 0.1208, '''label''': '''couch''', '''box''': {'''xmin''': 4, '''ymin''': 0, '''xmax''': 642, '''ymax''': 476}},
				    ]			,)

				lowercase__   :    int				=			object_detector(
				    [
				        {
				            '''image''': '''http://images.cocodataset.org/val2017/000000039769.jpg''',
				            '''candidate_labels''': ['''cat''', '''remote''', '''couch'''],
				        },
				        {
				            '''image''': '''http://images.cocodataset.org/val2017/000000039769.jpg''',
				            '''candidate_labels''': ['''cat''', '''remote''', '''couch'''],
				        },
				    ]			,)
				self.assertEqual(
				    nested_simplify(_snake_case			,decimals=4						)			,[
				        [
				            {'''score''': 0.2868, '''label''': '''cat''', '''box''': {'''xmin''': 324, '''ymin''': 20, '''xmax''': 640, '''ymax''': 373}},
				            {'''score''': 0.277, '''label''': '''remote''', '''box''': {'''xmin''': 40, '''ymin''': 72, '''xmax''': 177, '''ymax''': 115}},
				            {'''score''': 0.2537, '''label''': '''cat''', '''box''': {'''xmin''': 1, '''ymin''': 55, '''xmax''': 315, '''ymax''': 472}},
				            {'''score''': 0.1474, '''label''': '''remote''', '''box''': {'''xmin''': 335, '''ymin''': 74, '''xmax''': 371, '''ymax''': 187}},
				            {'''score''': 0.1208, '''label''': '''couch''', '''box''': {'''xmin''': 4, '''ymin''': 0, '''xmax''': 642, '''ymax''': 476}},
				        ],
				        [
				            {'''score''': 0.2868, '''label''': '''cat''', '''box''': {'''xmin''': 324, '''ymin''': 20, '''xmax''': 640, '''ymax''': 373}},
				            {'''score''': 0.277, '''label''': '''remote''', '''box''': {'''xmin''': 40, '''ymin''': 72, '''xmax''': 177, '''ymax''': 115}},
				            {'''score''': 0.2537, '''label''': '''cat''', '''box''': {'''xmin''': 1, '''ymin''': 55, '''xmax''': 315, '''ymax''': 472}},
				            {'''score''': 0.1474, '''label''': '''remote''', '''box''': {'''xmin''': 335, '''ymin''': 74, '''xmax''': 371, '''ymax''': 187}},
				            {'''score''': 0.1208, '''label''': '''couch''', '''box''': {'''xmin''': 4, '''ymin''': 0, '''xmax''': 642, '''ymax''': 476}},
				        ],
				    ]			,)







		@require_tf
		@unittest.skip('''Zero Shot Object Detection not implemented in TF'''						)
		def 					UpperCAmelCase    (	self						:  List[Any]						)					->		Dict:






				"""simple docstring"""



				pass







		@require_torch
		@slow
		def 					UpperCAmelCase    (	self						:  Union[str, Any]						)					->		Union[str, Any]:






				"""simple docstring"""



				lowercase__   :    List[Any]				=			0.2
				lowercase__   :    List[Any]				=			pipeline('''zero-shot-object-detection'''						)

				lowercase__   :    Any				=			object_detector(
				    '''http://images.cocodataset.org/val2017/000000039769.jpg'''			,candidate_labels=['''cat''', '''remote''', '''couch''']			,threshold=_snake_case			,)
				self.assertEqual(
				    nested_simplify(_snake_case			,decimals=4						)			,[
				        {'''score''': 0.2868, '''label''': '''cat''', '''box''': {'''xmin''': 324, '''ymin''': 20, '''xmax''': 640, '''ymax''': 373}},
				        {'''score''': 0.277, '''label''': '''remote''', '''box''': {'''xmin''': 40, '''ymin''': 72, '''xmax''': 177, '''ymax''': 115}},
				        {'''score''': 0.2537, '''label''': '''cat''', '''box''': {'''xmin''': 1, '''ymin''': 55, '''xmax''': 315, '''ymax''': 472}},
				    ]			,)







		@require_torch
		@slow
		def 					UpperCAmelCase    (	self						:  str						)					->		int:






				"""simple docstring"""



				lowercase__   :    Optional[int]				=			2
				lowercase__   :    int				=			pipeline('''zero-shot-object-detection'''						)

				lowercase__   :    Union[str, Any]				=			object_detector(
				    '''http://images.cocodataset.org/val2017/000000039769.jpg'''			,candidate_labels=['''cat''', '''remote''', '''couch''']			,top_k=_snake_case			,)
				self.assertEqual(
				    nested_simplify(_snake_case			,decimals=4						)			,[
				        {'''score''': 0.2868, '''label''': '''cat''', '''box''': {'''xmin''': 324, '''ymin''': 20, '''xmax''': 640, '''ymax''': 373}},
				        {'''score''': 0.277, '''label''': '''remote''', '''box''': {'''xmin''': 40, '''ymin''': 72, '''xmax''': 177, '''ymax''': 115}},
				    ]			,)





"""simple docstring"""







import os



def      __UpperCAmelCase      (    )							->      int:
		with open(os.path.dirname(__lowerCamelCase	) + '''/p022_names.txt'''	) as file:
				lowercase__   :    List[Any]				=			str(file.readlines()[0]	)
				lowercase__   :    Dict				=			names.replace('''"'''						,     ''''''	).split(''','''	)

		names.sort()

		lowercase__   :    int				=			0
		lowercase__   :    Optional[Any]				=			0

		for i, name in enumerate(__lowerCamelCase	):
				for letter in name:
						name_score += ord(__lowerCamelCase	) - 64

				total_score += (i + 1) * name_score
				lowercase__   :    List[str]				=			0
		return total_score


if __name__ == "__main__":
							print(solution())
