Beispiel #1
0
def test_ignore_links(test_nodenet):
    nodes = prepare_nodenet(test_nodenet)
    micropsi.add_link(test_nodenet, nodes['a'], "por", nodes['b'], "gen", 0.5, 1)

    nodespace = micropsi.get_nodes(test_nodenet, [])
    assert len(nodespace["nodes"]) == 4
    assert 'links' not in nodespace

    assert len(nodespace["nodes"][nodes['a']]['links']['por']) == 1
    nodespace = micropsi.get_nodes(test_nodenet, [], include_links=False)
    assert 'links' not in nodespace["nodes"][nodes['a']]
Beispiel #2
0
def test_get_nodespace(test_nodenet):
    nodes = prepare_nodenet(test_nodenet)
    nodespace = micropsi.get_nodes(test_nodenet)
    assert len(nodespace["nodes"]) == 4
    node1 = nodespace["nodes"][nodes['a']]
    assert node1["name"] == "A"
    assert node1["position"] == [200, 250, 10]
Beispiel #3
0
def test_save_nodenet(test_nodenet):
    prepare_nodenet(test_nodenet)
    # save_nodenet
    micropsi.save_nodenet(test_nodenet)
    # unload_nodenet
    micropsi.unload_nodenet(test_nodenet)
    try:
        micropsi.get_nodes(test_nodenet)
        assert False, "could fetch a Nodespace that should not have been in memory"
    except:
        pass
    # load_nodenet
    micropsi.get_nodenet(test_nodenet)
    nodespace = micropsi.get_nodes(test_nodenet)
    assert len(nodespace["nodes"]) == 4
    micropsi.delete_nodenet(test_nodenet)
Beispiel #4
0
def test_delete_link(test_nodenet):
    nodes = prepare_nodenet(test_nodenet)
    success, link = micropsi.add_link(test_nodenet, nodes['a'], "por", nodes['b'], "gen", 0.5, 1)
    assert success
    micropsi.delete_link(test_nodenet, nodes['a'], "por", nodes['b'], "gen")
    nodespace = micropsi.get_nodes(test_nodenet)
    assert nodespace['nodes'][nodes['a']]['links'] == {}
Beispiel #5
0
def test_add_node(test_nodenet):
    micropsi.load_nodenet(test_nodenet)
    # make sure nodenet is empty
    nodespace = micropsi.get_nodes(test_nodenet)
    try:
        for i in nodespace["nodes"]:
            micropsi.delete_node(test_nodenet, i)
    except:
        pass

    nodespace = micropsi.get_nodes(test_nodenet)
    assert len(nodespace.get("nodes", [])) == 0
    res, uid = micropsi.add_node(test_nodenet, "Pipe", [200, 250, 10], None, state=None, name="A")
    nodespace = micropsi.get_nodes(test_nodenet)
    assert len(nodespace["nodes"]) == 1
    node1 = nodespace["nodes"][uid]
    assert node1["name"] == "A"
    assert node1["position"] == [200, 250, 10]
Beispiel #6
0
def test_get_nodes(test_nodenet):
    nodenet = micropsi.nodenets[test_nodenet]
    netapi = nodenet.netapi
    ns1 = netapi.create_nodespace(None, "ns1")
    ns2 = netapi.create_nodespace(None, "ns2")
    ns3 = netapi.create_nodespace(ns1.uid, "ns3")
    n1 = netapi.create_node("Pipe", ns1.uid, "n1")
    n2 = netapi.create_node("Pipe", ns2.uid, "n2")
    n3 = netapi.create_node("Pipe", ns3.uid, "n3")
    result = micropsi.get_nodes(test_nodenet)
    rootuid = nodenet.get_nodespace(None).uid
    assert set(result['nodes'].keys()) == {n1.uid, n2.uid, n3.uid}
    assert set(result['nodespaces'].keys()) == {rootuid, ns1.uid, ns2.uid, ns3.uid}
    result = micropsi.get_nodes(test_nodenet, [None])
    assert result['nodes'] == {}
    assert set(result['nodespaces'].keys()) == {ns1.uid, ns2.uid}
    result = micropsi.get_nodes(test_nodenet, [ns1.uid])
    assert set(result['nodes'].keys()) == {n1.uid}
    assert set(result['nodespaces'].keys()) == {ns3.uid}
Beispiel #7
0
def test_non_standard_gate_defaults(test_nodenet):
    nodenet = micropsi.nodenets[test_nodenet]
    res, uid = micropsi.add_node(test_nodenet, 'Register', [30, 30, 10], name='test')
    node = nodenet.netapi.get_node(uid)
    genparams = {'maximum': 0.5}
    micropsi.set_gate_parameters(nodenet.uid, node.uid, 'gen', genparams)
    assert node.clone_non_default_gate_parameters()['gen']['maximum'] == 0.5
    assert node.get_data()['gate_parameters'] == {'gen': {'maximum': 0.5}}
    assert nodenet.get_data()['nodes'][uid]['gate_parameters'] == {'gen': {'maximum': 0.5}}
    data = micropsi.get_nodes(test_nodenet)
    assert data['nodes'][uid]['gate_parameters'] == {'gen': {'maximum': 0.5}}
Beispiel #8
0
def test_get_nodes(test_nodenet):
    nodenet = micropsi.nodenets[test_nodenet]
    netapi = nodenet.netapi
    ns1 = netapi.create_nodespace(None, "ns1")
    ns2 = netapi.create_nodespace(None, "ns2")
    ns3 = netapi.create_nodespace(ns1.uid, "ns3")
    n1 = netapi.create_node("Pipe", ns1.uid, "n1")
    n2 = netapi.create_node("Pipe", ns2.uid, "n2")
    n3 = netapi.create_node("Pipe", ns3.uid, "n3")
    result = micropsi.get_nodes(test_nodenet)
    rootuid = nodenet.get_nodespace(None).uid
    assert set(result['nodes'].keys()) == {n1.uid, n2.uid, n3.uid}
    assert set(
        result['nodespaces'].keys()) == {rootuid, ns1.uid, ns2.uid, ns3.uid}
    result = micropsi.get_nodes(test_nodenet, [None])
    assert result['nodes'] == {}
    assert set(result['nodespaces'].keys()) == {ns1.uid, ns2.uid}
    result = micropsi.get_nodes(test_nodenet, [ns1.uid])
    assert set(result['nodes'].keys()) == {n1.uid}
    assert set(result['nodespaces'].keys()) == {ns3.uid}
Beispiel #9
0
def test_create_nodenet_from_template(test_nodenet, node, engine):
    mode = micropsi.cfg['micropsi2'].get('single_agent_mode')
    micropsi.cfg['micropsi2'].update({'single_agent_mode': '1'})
    api = micropsi.nodenets[test_nodenet].netapi
    node1 = api.get_node(node)
    node2 = api.create_node("Register", None, "node2")
    api.link(node1, 'gen', node2, 'gen')
    micropsi.save_nodenet(test_nodenet)
    result, uid = micropsi.new_nodenet('copynet', engine=engine, template=test_nodenet)
    data = micropsi.get_nodes(uid)
    for uid, n in data['nodes'].items():
        if n['name'] == node1.name:
            assert len(n['links']['gen']) == 2
        else:
            assert n['name'] == node2.name
    micropsi.cfg['micropsi2'].update({'single_agent_mode': mode})
Beispiel #10
0
def test_create_nodenet_from_template(test_nodenet, node, engine):
    mode = micropsi.cfg['micropsi2'].get('single_agent_mode')
    micropsi.cfg['micropsi2'].update({'single_agent_mode': '1'})
    api = micropsi.nodenets[test_nodenet].netapi
    node1 = api.get_node(node)
    node2 = api.create_node("Register", None, "node2")
    api.link(node1, 'gen', node2, 'gen')
    micropsi.save_nodenet(test_nodenet)
    result, uid = micropsi.new_nodenet('copynet',
                                       engine=engine,
                                       template=test_nodenet)
    data = micropsi.get_nodes(uid)
    for uid, n in data['nodes'].items():
        if n['name'] == node1.name:
            assert len(n['links']['gen']) == 2
        else:
            assert n['name'] == node2.name
    micropsi.cfg['micropsi2'].update({'single_agent_mode': mode})
Beispiel #11
0
def test_add_link(test_nodenet):
    nodes = prepare_nodenet(test_nodenet)
    micropsi.add_link(test_nodenet, nodes['a'], "por", nodes['b'], "gen", 0.5, 1)
    micropsi.add_link(test_nodenet, nodes['a'], "por", nodes['b'], "gen", 1, 0.1)
    micropsi.add_link(test_nodenet, nodes['c'], "ret", nodes['b'], "gen", 1, 1)

    nodespace = micropsi.get_nodes(test_nodenet)
    assert len(nodespace["nodes"]) == 4

    link_a_b = nodespace["nodes"][nodes['a']]['links']['por'][0]
    assert link_a_b['target_node_uid'] == nodes['b']
    assert link_a_b['target_slot_name'] == 'gen'
    assert link_a_b['weight'] == 1

    link_c_b = nodespace['nodes'][nodes['c']]['links']['ret'][0]
    assert link_c_b["target_node_uid"] == nodes['b']
    assert link_c_b["target_slot_name"] == "gen"

    assert nodespace['nodes'][nodes['b']]['links'] == {}
    assert nodespace['nodes'][nodes['s']]['links'] == {}
Beispiel #12
0
def get_nodes(nodenet_uid, nodespaces=[], include_links=True):
    return True, runtime.get_nodes(nodenet_uid, nodespaces, include_links)
Beispiel #13
0
def test_position_always_3d(test_nodenet):
    res, nuid = micropsi.add_node(test_nodenet, "Pipe", [200], None, state=None, name="A")
    res, nsuid = micropsi.add_nodespace(test_nodenet, [200, 125, 0, 134], None, name="NS")
    data = micropsi.get_nodes(test_nodenet)
    assert data['nodes'][nuid]['position'] == [200, 0, 0]
    assert data['nodespaces'][nsuid]['position'] == [200, 125, 0]
Beispiel #14
0
def get_nodes(nodenet_uid, nodespaces=[], include_links=True, links_to_nodespaces=[]):
    """ Return content of the given nodenet, filtered by nodespaces.
    Optionally also returns links to and from the nodespaces listed in `links_to_nodespaces` """
    return True, runtime.get_nodes(nodenet_uid, nodespaces, include_links, links_to_nodespaces=links_to_nodespaces)