






"""simple docstring"""


import unittest

import requests

from transformers import MODEL_FOR_VISION_2_SEQ_MAPPING, TF_MODEL_FOR_VISION_2_SEQ_MAPPING, is_vision_available
from transformers.pipelines import pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    is_torch_available,
    require_tf,
    require_torch,
    require_vision,
    slow,
)

from .test_pipelines_common import ANY


if is_torch_available():
       from transformers.pytorch_utils import is_torch_greater_or_equal_than_1_11
else:
       lowercase_								=	False


if is_vision_available():
       from PIL import Image
else:


       class    snake_case						:


          '''simple docstring'''

          @staticmethod
          def 							_SCREAMING_SNAKE_CASE							(      *_lowerCamelCase					:	Optional[int],			**_lowerCamelCase					:	str    ):

            '''simple docstring'''
            pass


@is_pipeline_test
@require_vision
class    snake_case						(				unittest.TestCase		):


   '''simple docstring'''

   A_		:      Tuple							=					MODEL_FOR_VISION_2_SEQ_MAPPING
   A_		:      int							=					TF_MODEL_FOR_VISION_2_SEQ_MAPPING


   def 							_SCREAMING_SNAKE_CASE							(      self					:	Union[str, Any],			_lowerCamelCase					:	Optional[Any],			_lowerCamelCase					:	Optional[int],			_lowerCamelCase					:	Optional[int]    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model=__snake_case,			tokenizer=__snake_case,			image_processor=__snake_case    )
     __A		     =					[
         Image.open('''./tests/fixtures/tests_samples/COCO/000000039769.png'''    ),
         './tests/fixtures/tests_samples/COCO/000000039769.png',
     ]
     return pipe, examples


   def 							_SCREAMING_SNAKE_CASE							(      self					:	List[Any],			_lowerCamelCase					:	int,			_lowerCamelCase					:	str    ):

     '''simple docstring'''
     __A		     =					pipe(__snake_case    )
     self.assertEqual(
         __snake_case,			[
             [{'''generated_text''': ANY(__snake_case    )}],
             [{'''generated_text''': ANY(__snake_case    )}],
         ],			)


   @require_tf
   def 							_SCREAMING_SNAKE_CASE							(      self					:	str    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''hf-internal-testing/tiny-random-vit-gpt2''',			framework='''tf'''    )
     __A		     =					'./tests/fixtures/tests_samples/COCO/000000039769.png'

     __A		     =					pipe(__snake_case    )
     self.assertEqual(
         __snake_case,			[
             {
                 '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
             },
         ],			)

     __A		     =					pipe([image, image]    )
     self.assertEqual(
         __snake_case,			[
             [
                 {
                     '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                 }
             ],
             [
                 {
                     '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                 }
             ],
         ],			)

     __A		     =					pipe(__snake_case,			max_new_tokens=1    )
     self.assertEqual(
         __snake_case,			[{'''generated_text''': '''growth'''}],			)


   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	Any    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''hf-internal-testing/tiny-random-vit-gpt2'''    )
     __A		     =					'./tests/fixtures/tests_samples/COCO/000000039769.png'

     __A		     =					pipe(__snake_case    )
     self.assertEqual(
         __snake_case,			[
             {
                 '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
             },
         ],			)

     __A		     =					pipe([image, image]    )
     self.assertEqual(
         __snake_case,			[
             [
                 {
                     '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                 }
             ],
             [
                 {
                     '''generated_text''': '''growthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthgrowthGOGO'''
                 }
             ],
         ],			)


   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	int    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''hf-internal-testing/tiny-random-BlipForConditionalGeneration'''    )
     __A		     =					'./tests/fixtures/tests_samples/COCO/000000039769.png'
     __A		     =					'a photo of'

     __A		     =					pipe(__snake_case,			prompt=__snake_case    )
     self.assertTrue(outputs[0]['''generated_text'''].startswith(__snake_case    )    )


   @slow
   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	Union[str, Any]    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''ydshieh/vit-gpt2-coco-en'''    )
     __A		     =					'./tests/fixtures/tests_samples/COCO/000000039769.png'

     __A		     =					pipe(__snake_case    )
     self.assertEqual(__snake_case,			[{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}]    )

     __A		     =					pipe([image, image]    )
     self.assertEqual(
         __snake_case,			[
             [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
             [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
         ],			)


   @slow
   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	Optional[int]    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''Salesforce/blip-image-captioning-base'''    )
     __A		     =					'https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/pokemon.png'
     __A		     =					Image.open(requests.get(__snake_case,			stream=__snake_case    ).raw    )

     __A		     =					pipe(__snake_case    )
     self.assertEqual(__snake_case,			[{'''generated_text''': '''a pink pokemon pokemon with a blue shirt and a blue shirt'''}]    )


   @slow
   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	int    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''microsoft/git-base-coco'''    )
     __A		     =					'https://huggingface.co/datasets/sayakpaul/sample-datasets/resolve/main/pokemon.png'
     __A		     =					Image.open(requests.get(__snake_case,			stream=__snake_case    ).raw    )

     __A		     =					pipe(__snake_case    )
     self.assertEqual(__snake_case,			[{'''generated_text''': '''a cartoon of a purple character.'''}]    )


   @slow
   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	Any    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''Salesforce/blip-image-captioning-base'''    )
     __A		     =					'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'
     __A		     =					Image.open(requests.get(__snake_case,			stream=__snake_case    ).raw    )

     __A		     =					'a photography of'

     __A		     =					pipe(__snake_case,			prompt=__snake_case    )
     self.assertEqual(__snake_case,			[{'''generated_text''': '''a photography of a volcano'''}]    )

     with self.assertRaises(__snake_case    ):
       __A		     =					pipe([image, image],			prompt=[prompt, prompt]    )


   @slow
   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	Optional[int]    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''microsoft/git-base-coco'''    )
     __A		     =					'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'
     __A		     =					Image.open(requests.get(__snake_case,			stream=__snake_case    ).raw    )

     __A		     =					'a photo of a'

     __A		     =					pipe(__snake_case,			prompt=__snake_case    )
     self.assertEqual(__snake_case,			[{'''generated_text''': '''a photo of a tent with a tent and a tent in the background.'''}]    )

     with self.assertRaises(__snake_case    ):
       __A		     =					pipe([image, image],			prompt=[prompt, prompt]    )


   @unittest.skipIf(
       not is_torch_greater_or_equal_than_1_11,			reason='''`Pix2StructImageProcessor` requires `torch>=1.11.0`.'''    )
   @slow
   @require_torch
   def 							_SCREAMING_SNAKE_CASE							(      self					:	Optional[int]    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''google/pix2struct-ai2d-base'''    )
     __A		     =					'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg'
     __A		     =					Image.open(requests.get(__snake_case,			stream=__snake_case    ).raw    )

     __A		     =					'What does the label 15 represent? (1) lava (2) core (3) tunnel (4) ash cloud'

     __A		     =					pipe(__snake_case,			prompt=__snake_case    )
     self.assertEqual(__snake_case,			[{'''generated_text''': '''ash cloud'''}]    )

     with self.assertRaises(__snake_case    ):
       __A		     =					pipe([image, image],			prompt=[prompt, prompt]    )






   @slow
   @require_tf
   def 							_SCREAMING_SNAKE_CASE							(      self					:	str    ):

     '''simple docstring'''
     __A		     =					pipeline('''image-to-text''',			model='''ydshieh/vit-gpt2-coco-en''',			framework='''tf'''    )
     __A		     =					'./tests/fixtures/tests_samples/COCO/000000039769.png'

     __A		     =					pipe(__snake_case    )
     self.assertEqual(__snake_case,			[{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}]    )

     __A		     =					pipe([image, image]    )
     self.assertEqual(
         __snake_case,			[
             [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
             [{'''generated_text''': '''a cat laying on a blanket next to a cat laying on a bed '''}],
         ],			)











'''simple docstring'''






def    lowercase_   (		lowercase__ = 400_0000    ) ->int:

						if n <= 1:
												return 0
						_snake_case: Union[str, Any]	       =		0
						_snake_case: List[Any]	       =		2
						_snake_case: Any	       =		0
						while 4 * b + a <= n:
												_snake_case       ,    _snake_case: int	       =		b, 4 * b + a
												count += a
						return count + b


if __name__ == "__main__":
		print(F'{solution() = }')





