





"""simple docstring"""




from abc import ABC, abstractmethod
from argparse import ArgumentParser




class 			_a						(				_lowerCAmelCase    ):






				@staticmethod
				@abstractmethod
				def     snake_case     (			lowerCAmelCase__		:   ArgumentParser							)     ->				Any:




										'''simple docstring'''



										raise NotImplementedError()






				@abstractmethod
				def     snake_case     (			self		:   Tuple							)     ->				Union[str, Any]:




										'''simple docstring'''



										raise NotImplementedError()










"""simple docstring"""




def 	a_    (							_lowercase	,						_lowercase       ):
						if discount_rate < 0:
												raise ValueError('''Discount rate cannot be negative'''       )
						if not cash_flows:
												raise ValueError('''Cash flows list cannot be empty'''       )
						_UpperCamelCase      : Optional[int]         =   sum(
						    cash_flow / ((1 + discount_rate) ** i) for i, cash_flow in enumerate(_lowercase       )       )
						return round(_lowercase	,						ndigits=2       )


if __name__ == "__main__":
						import doctest

						doctest.testmod()



