def test_gas_price_should_increase_with_time(self): # given geometric_gas_price = GeometricGasPrice(100, 10) # expect assert geometric_gas_price.get_gas_price(0) == 100 assert geometric_gas_price.get_gas_price(1) == 100 assert geometric_gas_price.get_gas_price(10) == 113 assert geometric_gas_price.get_gas_price(15) == 113 assert geometric_gas_price.get_gas_price(20) == 127 assert geometric_gas_price.get_gas_price(30) == 143 assert geometric_gas_price.get_gas_price(50) == 181 assert geometric_gas_price.get_gas_price(100) == 325
def test_gas_price_should_obey_max_value(self): # given geometric_gas_price = GeometricGasPrice(1000, 60, 1.125, 2500) # expect assert geometric_gas_price.get_gas_price(0) == 1000 assert geometric_gas_price.get_gas_price(1) == 1000 assert geometric_gas_price.get_gas_price(59) == 1000 assert geometric_gas_price.get_gas_price(60) == 1125 assert geometric_gas_price.get_gas_price(119) == 1125 assert geometric_gas_price.get_gas_price(120) == 1266 assert geometric_gas_price.get_gas_price(1200) == 2500 assert geometric_gas_price.get_gas_price(3000) == 2500 assert geometric_gas_price.get_gas_price(1000000) == 2500
def test_behaves_with_realistic_values(self): # given GWEI = 1000000000 geometric_gas_price = GeometricGasPrice(100 * GWEI, 10, 1 + (0.125 * 2)) for seconds in [0, 1, 10, 12, 30, 60]: print( f"gas price after {seconds} seconds is {geometric_gas_price.get_gas_price(seconds)/GWEI}" ) assert round(geometric_gas_price.get_gas_price(0) / GWEI, 1) == 100.0 assert round(geometric_gas_price.get_gas_price(1) / GWEI, 1) == 100.0 assert round(geometric_gas_price.get_gas_price(10) / GWEI, 1) == 125.0 assert round(geometric_gas_price.get_gas_price(12) / GWEI, 1) == 125.0 assert round(geometric_gas_price.get_gas_price(30) / GWEI, 1) == 195.3 assert round(geometric_gas_price.get_gas_price(60) / GWEI, 1) == 381.5