






'''simple docstring'''

def 					lowercase__				(   __UpperCamelCase	,		__UpperCamelCase	,		__UpperCamelCase					)->				float:
      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(__UpperCamelCase	,		__UpperCamelCase					):
            raise Exception("""Years to repay must be an integer > 0"""					)

      # Yearly rate is divided by 12 to get monthly rate
      UpperCamelCase       						=      rate_per_annum / 12

      # Years to repay is multiplied by 12 to get number of payments as payment is monthly
      UpperCamelCase       						=      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'''

SCREAMING_SNAKE_CASE__											=     8.31_44_62  # Unit - J mol-1 K-1







def 					lowercase__				(   __UpperCamelCase	,		__UpperCamelCase	,		__UpperCamelCase					)->				float:
      if moles < 0 or kelvin < 0 or volume < 0:
            raise ValueError("""Invalid inputs. Enter positive value."""					)
      return moles * kelvin * UNIVERSAL_GAS_CONSTANT / volume







def 					lowercase__				(   __UpperCamelCase	,		__UpperCamelCase	,		__UpperCamelCase					)->				float:
      if moles < 0 or kelvin < 0 or pressure < 0:
            raise ValueError("""Invalid inputs. Enter positive value."""					)
      return moles * kelvin * UNIVERSAL_GAS_CONSTANT / pressure


if __name__ == "__main__":
     from doctest import testmod

     testmod()
