Exemplo n.º 1
0
    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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
    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)