




def       UpperCAmelCase__  (     lowerCamelCase,			lowerCamelCase   ):
  if discount_rate < 0:
    raise ValueError("Discount rate cannot be negative"   )
  if not cash_flows:
    raise ValueError("Cash flows list cannot be empty"   )
  lowercase    :Dict      	=						sum(
      cash_flow / ((1 + discount_rate) ** i) for i, cash_flow in enumerate(lowerCamelCase   )   )
  return round(lowerCamelCase,			ndigits=2   )


if __name__ == "__main__":
     import doctest

     doctest.testmod()









from abc import ABC, abstractmethod
from argparse import ArgumentParser




class    __lowerCAmelCase       (							lowerCAmelCase):






       @staticmethod
       @abstractmethod
       def 					SCREAMING_SNAKE_CASE    (   _lowerCAmelCase:					ArgumentParser				):
         raise NotImplementedError()






       @abstractmethod
       def 					SCREAMING_SNAKE_CASE    (   self:					List[str]				):
         raise NotImplementedError()



