
def        lowerCAmelCase       (				snake_case__   :      int )->			int:
    if number != int(snake_case__ ):
        raise ValueError("factorial() only accepts integral values" )
    if number < 0:
        raise ValueError("factorial() not defined for negative values" )
    A_								=					1
    for i in range(1				,					number + 1 ):
        value *= i
    return value





def        lowerCAmelCase       (				snake_case__   :      int )->			int:
    if not isinstance(snake_case__				,					snake_case__ ):
        raise ValueError("factorial() only accepts integral values" )
    if n < 0:
        raise ValueError("factorial() not defined for negative values" )
    return 1 if n == 0 or n == 1 else n * factorial(n - 1 )


if __name__ == "__main__":
     import doctest

     doctest.testmod()

     __magic_name__  :  List[Any]     			=   int(input('Enter a positive integer: ').strip() or 0)
     print(f"""factorial{n} is {factorial(n)}""")








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 							lowerCamelCase       (		unittest.TestCase			,  __snake_case					):



  """simple docstring"""





  def 					lowercase_						(					self					):
      A_								=					load_tool("image-question-answering"					)
      self.tool.setup()
      A_								=					load_tool("image-question-answering"						,    remote=__UpperCamelCase					)

  def 					lowercase_						(					self					):
      A_								=					Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"					)					) / "000000039769.png"					)
      A_								=					self.tool(__UpperCamelCase						,    "How many cats are sleeping on the couch?"					)
      self.assertEqual(__UpperCamelCase						,    "2"					)

  def 					lowercase_						(					self					):
      A_								=					Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"					)					) / "000000039769.png"					)
      A_								=					self.remote_tool(__UpperCamelCase						,    "How many cats are sleeping on the couch?"					)
      self.assertEqual(__UpperCamelCase						,    "2"					)

  def 					lowercase_						(					self					):
      A_								=					Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"					)					) / "000000039769.png"					)
      A_								=					self.tool(image=__UpperCamelCase						,    question="How many cats are sleeping on the couch?"					)
      self.assertEqual(__UpperCamelCase						,    "2"					)

  def 					lowercase_						(					self					):
      A_								=					Image.open(Path(get_tests_dir("fixtures/tests_samples/COCO"					)					) / "000000039769.png"					)
      A_								=					self.remote_tool(image=__UpperCamelCase						,    question="How many cats are sleeping on the couch?"					)
      self.assertEqual(__UpperCamelCase						,    "2"					)






