
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_sentencepiece_available, is_tokenizers_available


__magic_name__           =					{}

try:
     if not is_sentencepiece_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     __magic_name__           =					['''CpmTokenizer''']

try:
     if not is_tokenizers_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     __magic_name__           =					['''CpmTokenizerFast''']


if TYPE_CHECKING:
     try:
          if not is_sentencepiece_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_cpm import CpmTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_cpm_fast import CpmTokenizerFast

else:
     import sys

     __magic_name__           =					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)





import unittest
from pathlib import Path

from transformers import is_vision_available, load_tool
from transformers.testing_utils import get_tests_dir

from .test_tools_common import ToolTesterMixin


if is_vision_available():
     from PIL import Image




class    _SCREAMING_SNAKE_CASE					( unittest.TestCase    ,   __UpperCamelCase	):
      def A_     (     self	):
          snake_case__  =			load_tool("image-captioning"	)
          self.tool.setup()
          snake_case__  =			load_tool("image-captioning"						,		remote=lowerCamelCase	)
      def A_     (     self	):
          snake_case__  =			Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"	)	) / "000000039769.png"	)
          snake_case__  =			self.tool(lowerCamelCase	)
          self.assertEqual(lowerCamelCase						,		"two cats sleeping on a couch"	)
      def A_     (     self	):
          snake_case__  =			Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"	)	) / "000000039769.png"	)
          snake_case__  =			self.remote_tool(lowerCamelCase	)
          self.assertEqual(lowerCamelCase						,		"two cats sleeping on a couch"	)
      def A_     (     self	):
          snake_case__  =			Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"	)	) / "000000039769.png"	)
          snake_case__  =			self.tool(image=lowerCamelCase	)
          self.assertEqual(lowerCamelCase						,		"two cats sleeping on a couch"	)



      def A_     (     self	):
          snake_case__  =			Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"	)	) / "000000039769.png"	)
          snake_case__  =			self.remote_tool(image=lowerCamelCase	)
          self.assertEqual(lowerCamelCase						,		"two cats sleeping on a couch"	)



