def test_set_object_properties(test_world):
    world = runtime.get_available_worlds()[test_world]
    runtime.add_worldobject(test_world, "Default", (10, 10), uid='foobar', name='foobar', parameters={})
    runtime.set_worldobject_properties(test_world, "foobar", position=(5, 5))
    assert world.objects["foobar"].position == (5, 5)
    assert world.data['objects']['foobar']['position'] == (5, 5)
    assert runtime.get_world_view(test_world, -1)['objects']['foobar']['position'] == (5, 5)
예제 #2
0
def test_island(resourcepath):
    success, world_uid = micropsi.new_world("Misland",
                                            "Island",
                                            owner="tester")
    assert success
    world = runtime.worlds[world_uid]
    assert world.__class__.__name__ == 'Island'
    runtime.add_worldobject(world_uid,
                            "Lightsource", (10, 10),
                            uid='foobar',
                            name='foobar',
                            parameters={})
    runtime.save_world(world_uid)
    runtime.revert_world(world_uid)
    world = runtime.worlds[world_uid]
    assert world.objects["foobar"].__class__.__name__ == 'Lightsource'
    assert world.objects["foobar"].position == [10, 10]
    assert world.data['objects']['foobar']['position'] == [10, 10]
    assert world.__class__.__name__ == 'Island'
    runtime.set_worldobject_properties(world_uid, "foobar", position=(5, 5))
    assert world.objects["foobar"].position == (5, 5)
    assert world.data['objects']['foobar']['position'] == (5, 5)
    assert runtime.get_world_view(world_uid,
                                  -1)['objects']['foobar']['position'] == (5,
                                                                           5)
    runtime.delete_world(world_uid)
예제 #3
0
def test_set_object_properties(test_world):
    world = runtime.get_available_worlds()[test_world]
    runtime.add_worldobject(test_world, "Default", (10, 10), uid='foobar', name='foobar', parameters={})
    runtime.set_worldobject_properties(test_world, "foobar", position=(5, 5))
    assert world.objects["foobar"].position == (5, 5)
    assert world.data['objects']['foobar']['position'] == (5, 5)
    assert runtime.get_world_view(test_world, -1)['objects']['foobar']['position'] == (5, 5)
예제 #4
0
def get_current_state(nodenet_uid, nodenet=None, world=None, monitors=None):
    data = {}
    nodenet_obj = runtime.get_nodenet(nodenet_uid)
    if nodenet_obj is not None:
        data['simulation_running'] = nodenet_obj.is_active
        data['current_nodenet_step'] = nodenet_obj.current_step
        data['current_world_step'] = nodenet_obj.world.current_step if nodenet_obj.world else 0
        if nodenet is not None:
            data['nodenet'] = runtime.get_nodenet_data(nodenet_uid=nodenet_uid, **nodenet)
        if world is not None and nodenet_obj.world:
            data['world'] = runtime.get_world_view(world_uid=nodenet_obj.world.uid, **world)
        if monitors is not None:
            data['monitors'] = runtime.get_monitoring_info(nodenet_uid=nodenet_uid, **monitors)
        return True, data
    else:
        return False, "No such nodenet"
예제 #5
0
def test_island(resourcepath):
    success, world_uid = micropsi.new_world("Misland", "Island", owner="tester")
    assert success
    world = runtime.worlds[world_uid]
    assert world.__class__.__name__ == 'Island'
    runtime.add_worldobject(world_uid, "Lightsource", (10, 10), uid='foobar', name='foobar', parameters={})
    runtime.save_world(world_uid)
    runtime.revert_world(world_uid)
    world = runtime.worlds[world_uid]
    assert world.objects["foobar"].__class__.__name__ == 'Lightsource'
    assert world.objects["foobar"].position == [10, 10]
    assert world.data['objects']['foobar']['position'] == [10, 10]
    assert world.__class__.__name__ == 'Island'
    runtime.set_worldobject_properties(world_uid, "foobar", position=(5, 5))
    assert world.objects["foobar"].position == (5, 5)
    assert world.data['objects']['foobar']['position'] == (5, 5)
    assert runtime.get_world_view(world_uid, -1)['objects']['foobar']['position'] == (5, 5)
    runtime.delete_world(world_uid)
예제 #6
0
def get_current_state(nodenet_uid, nodenet=None, world=None, monitors=None):
    data = {}
    nodenet_obj = runtime.get_nodenet(nodenet_uid)
    if nodenet_obj is not None:
        if nodenet_uid in runtime.MicropsiRunner.conditions:
            data['simulation_condition'] = runtime.MicropsiRunner.conditions[nodenet_uid]
            if 'monitor' in data['simulation_condition']:
                data['simulation_condition']['monitor']['color'] = nodenet_obj.get_monitor(data['simulation_condition']['monitor']['uid']).color
        data['simulation_running'] = nodenet_obj.is_active
        data['current_nodenet_step'] = nodenet_obj.current_step
        data['current_world_step'] = nodenet_obj.world.current_step if nodenet_obj.world else 0
        if nodenet is not None:
            data['nodenet'] = runtime.get_nodenet_data(nodenet_uid=nodenet_uid, **nodenet)
        if world is not None and nodenet_obj.world:
            data['world'] = runtime.get_world_view(world_uid=nodenet_obj.world.uid, **world)
        if monitors is not None:
            data['monitors'] = runtime.get_monitoring_info(nodenet_uid=nodenet_uid, **monitors)
        return True, data
    else:
        return False, "No such nodenet"
예제 #7
0
def get_world_view(world_uid, step):
    return True, runtime.get_world_view(world_uid, step)
예제 #8
0
def get_world_view(world_uid, step):
    try:
        return runtime.get_world_view(world_uid, step)
    except KeyError:
        return {'Error': 'World %s not found' % world_uid}
예제 #9
0
def get_world_view(world_uid, step):
    """ Return a dict containing current_step, agents, objetcs"""
    return True, runtime.get_world_view(world_uid, int(step))