






"""simple docstring"""
def        snake_case   (     A__			,A__			,A__		):
			if principal <= 0:
						raise Exception("Principal borrowed must be > 0"		)
			if rate_per_annum < 0:
						raise Exception("Rate of interest must be >= 0"		)
			if years_to_repay <= 0 or not isinstance(A__			,A__		):
						raise Exception("Years to repay must be an integer > 0"		)

			# Yearly rate is divided by 12 to get monthly rate
			UpperCAmelCase_  :				Optional[Any]      =      rate_per_annum / 12

			# Years to repay is multiplied by 12 to get number of payments as payment is monthly
			UpperCAmelCase_  :				str      =      years_to_repay * 12

			return (
			    principal
			    * rate_per_month
			    * (1 + rate_per_month) ** number_of_payments
			    / ((1 + rate_per_month) ** number_of_payments - 1)
			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()











"""simple docstring"""
from ..utils import DummyObject, requires_backends







class     UpperCamelCase_ (metaclass=__A  ):
	__magic_name__			   =       ['''onnx''']





	def __init__(   self      :				List[Any]			,			*lowerCAmelCase_      :				Dict			,			**lowerCAmelCase_      :				Dict		)		->    Dict:
				requires_backends(self			,			["onnx"]		)





	@classmethod
	def   _SCREAMING_SNAKE_CASE   (   cls      :				Optional[Any]			,			*lowerCAmelCase_      :				Dict			,			**lowerCAmelCase_      :				Union[str, Any]		)		->    int:
				requires_backends(cls			,			["onnx"]		)





	@classmethod
	def   _SCREAMING_SNAKE_CASE   (   cls      :				str			,			*lowerCAmelCase_      :				Optional[Any]			,			**lowerCAmelCase_      :				str		)		->    Optional[Any]:
				requires_backends(cls			,			["onnx"]		)



