def test_received_order(self): var = mem.Variables('ip') myfilter = var.dealer._dealer_contract.contract.events.ReceivedOrder.createFilter(fromBlock=0, toBlock='latest') eventlist = myfilter.get_all_entries() for entry in eventlist: pass
def main(): # general setup of simulation var = mem.Variables() lp.decompose(var) # set initial inventory and market prices var.dealer.set_resource_inventory() var.dealer.set_mkt_prices() utils.wait_for_new_block(var) # set initial simulation parameter market_prices = var.dealer.mkt_prices equal_market_prices = False iteration = 1 output.initial_setup(var, draw=True) # main simulation loop while(not equal_market_prices): for agent in var.agent_pool: agent.get_mkt_prices() # call agent.determine_bundle_attributes() agent.set_order() # transact utils.wait_for_new_block(var) var.dealer.get_orders() # call var.dealer.create_mmp() var.dealer.solve_mmp() var.dealer.set_trades() # transact var.dealer.delete_order() # transact var.dealer.set_mkt_prices() # transact var.dealer.set_mmp_attributes() # transact utils.wait_for_new_block(var) for agent in var.agent_pool: agent.verify_strong_duality() # call agent.accept_trade() # transact agent.add_trade_to_shared_resources() utils.wait_for_new_block(var) var.latest_block = var.web3.eth.getBlock('latest')['number'] var.dealer.recalculate_resource_inventory() # transact output.iteration_stats(var, iteration, draw=True) iteration += 1 if(np.array_equal(market_prices, var.dealer.mkt_prices)): equal_market_prices = True else: market_prices = var.dealer.mkt_prices
def test_mkt_prices(self): var = mem.Variables('ip') agent = var.agent_pool[0] dealer = var.dealer # set mkt price vector dealer.mkt_prices = np.array([3, 4]) # set mkt prices in contract dealer.set_mkt_prices() # get mkt prices from contract agent.get_mkt_prices() self.assertTrue(np.array_equal(dealer.mkt_prices, agent.mkt_prices))
def test_calculate_trade(self): first_order = ['account_1', [8, 3], 600] second_order = ['account_1', [2, 9], 300] var = mem.Variables() dealer = var.dealer dealer._mmp_values = np.array([1, 1]) dealer._order_handler = utils.OrderHandler() dealer._order_handler.add_order(0, first_order) dealer._order_handler.add_order(1, second_order) dealer.set_trade_share() orders = dealer._order_handler.get_all_orders() orders[0].calculate_prepayment() self.assertEqual(orders[0]._prepayment, 9)