
"""simple docstring"""







import unittest

from datasets import load_dataset

from transformers import load_tool

from .test_tools_common import ToolTesterMixin






class      __a      (       unittest.TestCase					,						lowerCAmelCase_      ):







       def  _snake_case      (       self		):



          '''simple docstring'''

          _UpperCAmelCase 						=       load_tool("document-question-answering"		)
          self.tool.setup()
          _UpperCAmelCase 						=       load_tool("document-question-answering"				,remote=lowerCamelCase_		)







       def  _snake_case      (       self		):



          '''simple docstring'''

          _UpperCAmelCase 						=       load_dataset("hf-internal-testing/example-documents"				,split="test"		)
          _UpperCAmelCase 						=       dataset[0]["image"]

          _UpperCAmelCase 						=       self.tool(lowerCamelCase_				,"When is the coffee break?"		)
          self.assertEqual(lowerCamelCase_				,"11-14 to 11:39 a.m."		)







       def  _snake_case      (       self		):



          '''simple docstring'''

          _UpperCAmelCase 						=       load_dataset("hf-internal-testing/example-documents"				,split="test"		)
          _UpperCAmelCase 						=       dataset[0]["image"]

          _UpperCAmelCase 						=       self.remote_tool(lowerCamelCase_				,"When is the coffee break?"		)
          self.assertEqual(lowerCamelCase_				,"11-14 to 11:39 a.m."		)







       def  _snake_case      (       self		):



          '''simple docstring'''

          _UpperCAmelCase 						=       load_dataset("hf-internal-testing/example-documents"				,split="test"		)
          _UpperCAmelCase 						=       dataset[0]["image"]

          self.tool(document=lowerCamelCase_				,question="When is the coffee break?"		)







       def  _snake_case      (       self		):



          '''simple docstring'''

          _UpperCAmelCase 						=       load_dataset("hf-internal-testing/example-documents"				,split="test"		)
          _UpperCAmelCase 						=       dataset[0]["image"]

          _UpperCAmelCase 						=       self.remote_tool(document=lowerCamelCase_				,question="When is the coffee break?"		)
          self.assertEqual(lowerCamelCase_				,"11-14 to 11:39 a.m."		)



"""simple docstring"""







from typing import List

import PIL
import torch
from PIL import Image

from ...configuration_utils import ConfigMixin
from ...models.modeling_utils import ModelMixin
from ...utils import PIL_INTERPOLATION






class      __a      (       lowerCAmelCase_					,						lowerCAmelCase_      ):







       def __init__(       self		):



          '''simple docstring'''

          super().__init__()

          self.register_buffer("watermark_image"				,torch.zeros((62, 62, 4)		)		)
          _UpperCAmelCase 						=       None







       def  _snake_case      (       self				,lowerCamelCase_				,lowerCamelCase_=None		):



          '''simple docstring'''

          _UpperCAmelCase 						=       images[0].height
          _UpperCAmelCase 						=       images[0].width

          _UpperCAmelCase 						=       sample_size or h

          _UpperCAmelCase 						=       min(h / sample_size				,w / sample_size		)
          _UpperCAmelCase						,				_UpperCAmelCase 						=       (int(h / coef		), int(w / coef		)) if coef < 1 else (h, w)

          _UpperCAmelCase						,				_UpperCAmelCase 						=       1024**2, img_w * img_h
          _UpperCAmelCase 						=       (Sa / Sa) ** 0.5
          _UpperCAmelCase						,				_UpperCAmelCase						,				_UpperCAmelCase 						=       int(K * 62		), img_w - int(14 * K		), img_h - int(14 * K		)

          if self.watermark_image_as_pil is None:
             _UpperCAmelCase 						=       self.watermark_image.to(torch.uinta		).cpu().numpy()
             _UpperCAmelCase 						=       Image.fromarray(lowerCamelCase_				,mode="RGBA"		)
             _UpperCAmelCase 						=       watermark_image

          _UpperCAmelCase 						=       self.watermark_image_as_pil.resize(
              (wm_size, wm_size)				,PIL_INTERPOLATION["bicubic"]				,reducing_gap=lowerCamelCase_		)

          for pil_img in images:
             pil_img.paste(lowerCamelCase_				,box=(wm_x - wm_size, wm_y - wm_size, wm_x, wm_y)				,mask=wm_img.split()[-1]		)

          return images

