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']]
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]
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)
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'] == {}
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]
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}
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}}
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}
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})
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'] == {}
def get_nodes(nodenet_uid, nodespaces=[], include_links=True): return True, runtime.get_nodes(nodenet_uid, nodespaces, include_links)
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]
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)