

import unittest

from datasets import load_dataset

from transformers import load_tool

from .test_tools_common import ToolTesterMixin

class   __UpperCamelCase      (   unittest.TestCase       ,       lowercase  ):




	def  __A   (						self		:  str							):


		'''simple docstring'''







		UpperCAmelCase_    			=     load_tool("document-question-answering"							)
		self.tool.setup()
		UpperCAmelCase_    			=     load_tool("document-question-answering"						,		remote=lowerCAmelCase							)




	def  __A   (						self		:  Optional[Any]							):


		'''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  __A   (						self		:  Any							):


		'''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  __A   (						self		:  int							):


		'''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  __A   (						self		:  Any							):


		'''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."							)


def  __lowerCAmelCase (  A      ):
	UpperCAmelCase_    			=     len(A      )

	# Set the gap value to be decreased by a factor of 1.3
	# after each iteration
	UpperCAmelCase_    			=     1.3

	# Continue sorting until the gap is 1
	while gap > 1:
		# Decrease the gap value
		UpperCAmelCase_    			=     int(gap / shrink      )

		# Sort the elements using insertion sort
		for i in range(A    ,       len(A      )      ):
			UpperCAmelCase_    			=     collection[i]
			UpperCAmelCase_    			=     i
			while j >= gap and collection[j - gap] > temp:
				UpperCAmelCase_    			=     collection[j - gap]
				j -= gap
			UpperCAmelCase_    			=     temp

	return collection


if __name__ == "__main__":
				import doctest

				doctest.testmod()