Example #1
0
def run_simulation():
    s = tester.state()
    s.block.gas_limit = SIM_GAS * 2
    tester.gas_limit = SIM_GAS
    simulation = s.contract('simulation.se')
    logger.register_address('sim', simulation)
    a_ai = s.contract('ai_simple.se')
    logger.register_address('a_ai', a_ai)
    b_ai = s.contract('ai_two.se')
    #b_ai = s.contract('ai_simple.se')
    logger.register_address('b_ai', b_ai)

    try:
        winner = s.send(tester.k0, simulation, 0, data=[a_ai, b_ai])
    except Exception as e:
        print 'last messages'
        logger.print_log_history(8)
        raise e

    if not winner:
        print 'simulation failed, last logs:'
        print logger.print_log_history(2)
    elif a_ai in hex(winner[0]):
        print "A WINS " * 5
    else:
        assert b_ai in hex(winner[0])
        print "B WINS " * 5
Example #2
0
def run_simulation():
    s = tester.state()
    s.block.gas_limit = SIM_GAS * 2
    tester.gas_limit = SIM_GAS
    simulation = s.contract('simulation.se')
    logger.register_address('sim', simulation)
    a_ai = s.contract('ai_simple.se')
    logger.register_address('a_ai', a_ai)
    b_ai = s.contract('ai_two.se')
    #b_ai = s.contract('ai_simple.se')
    logger.register_address('b_ai', b_ai)

    try:
        winner = s.send(tester.k0, simulation, 0, data=[a_ai, b_ai])
    except Exception as e:
        print 'last messages'
        logger.print_log_history(8)
        raise e

    if not winner:
        print 'simulation failed, last logs:'
        print logger.print_log_history(2)
    elif a_ai in hex(winner[0]):
        print "A WINS " * 5
    else:
        assert b_ai in hex(winner[0])
        print "B WINS " * 5
Example #3
0
def test_quicksort():
    s = tester.state()
    c = s.contract("quicksort_pairs.se")
    data = [30, 1, 90, 2, 70, 3, 50, 4]
    expected = [30, 1, 50, 4, 70, 3, 90, 2]
    r = s.send(tester.k0, c, 0, data=data)
    assert expected == r, (r, expected)
Example #4
0
def test_quicksort():
    s = tester.state()
    c = s.contract('quicksort_pairs.se')
    data = [30, 1, 90, 2, 70, 3, 50, 4]
    expected = [30, 1, 50, 4, 70, 3, 90, 2]
    r = s.send(tester.k0, c, 0, data=data)
    assert expected == r, (r, expected)
Example #5
0
def test_debug():
    s = tester.state()
    debug = s.contract('debug.se')
    print "debug address: %s" % debug
    print 'debug returned', s.send(tester.k0,
                                   debug,
                                   0,
                                   data=["hallo", 1, 2, 3])
Example #6
0
def test_get_neighbours():
    s = tester.state()
    c = s.contract("get_neighbours.se")
    r = s.send(tester.k0, c, 0, data=[4, 3, 3])
    expected = [4, 1, 7, 3, 5]  # num, n0, n1, ...
    assert r == expected, (r, expected)
    r = s.send(tester.k0, c, 0, data=[8, 3, 3])
    expected = [2, 5, 7, 0, 0]
    assert r == expected, (r, expected)
Example #7
0
def test_get_neighbours():
    s = tester.state()
    c = s.contract('get_neighbours.se')
    r = s.send(tester.k0, c, 0, data=[4, 3, 3])
    expected = [4, 1, 7, 3, 5]  # num, n0, n1, ...
    assert r == expected, (r, expected)
    r = s.send(tester.k0, c, 0, data=[8, 3, 3])
    expected = [2, 5, 7, 0, 0]
    assert r == expected, (r, expected)
Example #8
0
def test_organizer():
    s = tester.state()
    simulation = s.contract("simulaton.se")
    print "simulator: %s" % simulation
    organizer = s.contract("organizer.se")
    ai_address = organizer
    print "organizer: %s" % organizer
    stake = 10 ** 6
    simulation_gas = 10 ** 5

    # send bets send(sender, to, value, data=[])
    print "tx1:", s.send(tester.k0, organizer, stake, data=[ai_address, simulation_gas])
    print "tx2:", s.send(tester.k1, organizer, stake, data=[ai_address, simulation_gas + 2000])
Example #9
0
def test_simluation_setup():
    s = tester.state()
    simulation = s.contract("simulation.se")
    logger.register_address("sim", simulation)
    a_ai = s.contract("ai_simple.se")
    logger.register_address("a_ai", a_ai)
    b_ai = s.contract("ai_two.se")
    logger.register_address("b_ai", b_ai)
    try:
        print s.send(tester.k0, simulation, 0, data=[a_ai, b_ai])
    except Exception, e:
        print "\n".join(repr(x) for x in logger.get_history(1))
        raise e
Example #10
0
def test_simluation_setup():
    s = tester.state()
    simulation = s.contract('simulation.se')
    logger.register_address('sim', simulation)
    a_ai = s.contract('ai_simple.se')
    logger.register_address('a_ai', a_ai)
    b_ai = s.contract('ai_two.se')
    logger.register_address('b_ai', b_ai)
    try:
        print s.send(tester.k0, simulation, 0, data=[a_ai, b_ai])
    except Exception, e:
        print '\n'.join(repr(x) for x in logger.get_history(1))
        raise e
Example #11
0
def test_ai_simple():
    s = tester.state()
    print "setting up ai_simple"
    a_ai = s.contract("ai_simple.se")
    print "SETUP GAS", s.block.gas_used
    print "GAS LIMIT", s.block.gas_limit
    b_ai = 2
    cols, rows = 4, 4
    a_grid = [0] * cols * rows
    b_grid = [0] * cols * rows
    a_grid[2], b_grid[-2 - 1] = 1000, 1000
    msgdata = [cols, rows, a_ai.decode("hex"), b_ai] + a_grid + b_grid + redistribution_grid(319283098, cols * rows)
    print msgdata
    r = s.send(tester.k0, a_ai, 0, data=msgdata)
    print r
Example #12
0
def test_ai_simple():
    s = tester.state()
    print "setting up ai_simple"
    a_ai = s.contract('ai_simple.se')
    print "SETUP GAS", s.block.gas_used
    print "GAS LIMIT", s.block.gas_limit
    b_ai = 2
    cols, rows = 4, 4
    a_grid = [0] * cols * rows
    b_grid = [0] * cols * rows
    a_grid[2], b_grid[-2 - 1] = 1000, 1000
    msgdata = [cols, rows, a_ai.decode('hex'), b_ai
               ] + a_grid + b_grid + redistribution_grid(
                   319283098, cols * rows)
    print msgdata
    r = s.send(tester.k0, a_ai, 0, data=msgdata)
    print r
Example #13
0
def test_organizer():
    s = tester.state()
    simulation = s.contract('simulaton.se')
    print "simulator: %s" % simulation
    organizer = s.contract('organizer.se')
    ai_address = organizer
    print "organizer: %s" % organizer
    stake = 10**6
    simulation_gas = 10**5

    # send bets send(sender, to, value, data=[])
    print 'tx1:', s.send(tester.k0,
                         organizer,
                         stake,
                         data=[ai_address, simulation_gas])
    print 'tx2:', s.send(tester.k1,
                         organizer,
                         stake,
                         data=[ai_address, simulation_gas + 2000])
Example #14
0
and returns an outsize-sized data array as the output
"""

code_msg = """
address = msg.data[0]
insize = 68
outsize = 3
datarray = array(insize)
gas = 1000
value = 0
move = msg(gas, address, value, datarray, insize, outsize)
return(move, 3)
"""

print 'setting up contracts',
s = tester.state()
logger.register_address('EOA', tester.a0)

c1 = s.contract(code_sub, sender=tester.k0)
logger.register_address('code_sub', c1)

c2 = s.contract(code_call, sender=tester.k0)
logger.register_address('code_call', c2)

c3 = s.contract(code_msg, sender=tester.k0)
logger.register_address('code_msg', c3)

move = [1, 2, 3]

# fails on osx and linux
print
Example #15
0
def test_debug():
    s = tester.state()
    debug = s.contract("debug.se")
    print "debug address: %s" % debug
    print "debug returned", s.send(tester.k0, debug, 0, data=["hallo", 1, 2, 3])
Example #16
0
def test_is_neighbour():
    s = tester.state()
    c = s.contract("is_neighbour.se")
    for expected, a, b in [(0, 1, 1), (1, 0, 1), (1, 4, 7), (0, 4, 8)]:
        assert [expected] == s.send(tester.k0, c, 0, data=[a, b, 3, 3])
    assert 1 == s.send(tester.k0, c, 0, data=[4, 0, 4, 4])
Example #17
0
# not really py.test but used for testing while development

from testenv import tester
from testenv import run, logger

s = tester.state()
c = s.contract('quicksort_pairs_debug.se')
logger.register_address('qsort', c)

def test_quicksort(data, expected):


    print 'testing', data, expected
    r = s.send(tester.k0, c, 0, data=data)
    assert expected == r, (r, expected)

test_quicksort([30, 1],[30, 1])
test_quicksort([30, 1, 20, 2],[20, 2, 30, 1])
test_quicksort([30, 0, 20, 2],[20, 2, 30, 0])
test_quicksort([30, 1, 90, 2, 70, 3, 50, 4],[ 30, 1, 50, 4, 70, 3, 90, 2 ])


Example #18
0
def test_is_neighbour():
    s = tester.state()
    c = s.contract('is_neighbour.se')
    for expected, a, b in [(0, 1, 1), (1, 0, 1), (1, 4, 7), (0, 4, 8)]:
        assert [expected] == s.send(tester.k0, c, 0, data=[a, b, 3, 3])
    assert 1 == s.send(tester.k0, c, 0, data=[4, 0, 4, 4])