def test_portgraph_add_actor(): pg = PortGraph() vid1 = pg.add_vertex() actor = Node() keys = {"toto", 1, "titi"} for key in keys: actor.add_input(key, "descr") actor.add_output(key, "descr") # bad actor assert_raises(AttributeError, lambda: pg.add_actor(None)) assert len(pg) == 1 assert_raises(AttributeError, lambda: pg.add_actor(None, vid1 + 1)) assert len(pg) == 1 # vertex id already used assert_raises(InvalidVertex, lambda: pg.add_actor(actor, vid1)) assert len(pg) == 1 for key in actor.inputs(): pg.add_in_port(vid1, key) for key in actor.outputs(): pg.add_out_port(vid1, key) pg.set_actor(vid1, actor) # vertex id already used assert_raises(InvalidVertex, lambda: pg.add_actor(actor, vid1)) assert len(pg) == 1 vid2 = pg.add_actor(actor) assert pg.actor(vid2) == actor assert set(actor.inputs()) == keys assert set(pg.local_id(pid) for pid in pg.in_ports(vid2)) == keys assert set(actor.outputs()) == keys assert set(pg.local_id(pid) for pid in pg.out_ports(vid2)) == keys
def test_portgraph_add_actor(): pg = PortGraph() vid1 = pg.add_vertex() actor = Node() keys = {"toto", 1, "titi"} for key in keys: actor.add_input(key, "descr") actor.add_output(key, "descr") # bad actor assert_raises(AttributeError, lambda: pg.add_actor(None)) assert len(pg) == 1 assert_raises(AttributeError, lambda: pg.add_actor(None, vid1 + 1)) assert len(pg) == 1 # vertex id already used assert_raises(InvalidVertex, lambda: pg.add_actor(actor, vid1)) assert len(pg) == 1 for key in actor.inputs(): pg.add_in_port(vid1, key) for key in actor.outputs(): pg.add_out_port(vid1, key) pg.set_actor(vid1, actor) # vertex id already used assert_raises(InvalidVertex, lambda: pg.add_actor(actor, vid1)) assert len(pg) == 1 vid2 = pg.add_actor(actor) assert pg.actor(vid2) == actor assert set(actor.inputs()) == keys assert set(pg.local_id(pid) for pid in pg.in_ports(vid2)) == keys assert set(actor.outputs()) == keys assert set(pg.local_id(pid) for pid in pg.out_ports(vid2)) == keys
def test_node_port_keys_are_locally_unique(): n = Node() n.add_input(1, "titi") assert len(list(n.inputs())) == 1 n.add_input("toto", "titi") assert len(list(n.inputs())) == 2 assert_raises(KeyError, lambda: n.add_input(1, "toto")) n.add_output(1, "tata") assert len(list(n.outputs())) == 1 n.add_output("toto", "tata") assert len(list(n.outputs())) == 2 assert_raises(KeyError, lambda: n.add_output("toto", "toto"))
def test_node_port_keys_are_locally_unique(): n = Node() n.add_input(1, "titi") assert len(list(n.inputs())) == 1 n.add_input("toto", "titi") assert len(list(n.inputs())) == 2 assert_raises(KeyError, lambda: n.add_input(1, "toto")) n.add_output(1, "tata") assert len(list(n.outputs())) == 1 n.add_output("toto", "tata") assert len(list(n.outputs())) == 2 assert_raises(KeyError, lambda: n.add_output("toto", "toto"))
def test_portgraph_set_actor(): pg = PortGraph() assert_raises(InvalidVertex, lambda: pg.set_actor(0, None)) actor = Node() for key in ("toto", 1, "titi"): actor.add_input(key, "descr") actor.add_output(key, "descr") assert_raises(InvalidVertex, lambda: pg.set_actor(0, actor)) vid = pg.add_vertex() pg.set_actor(vid, None) assert pg.actor(vid) is None assert_raises(InvalidPort, lambda: pg.set_actor(vid, actor)) for key in actor.inputs(): pg.add_in_port(vid, key) assert_raises(InvalidPort, lambda: pg.set_actor(vid, actor)) for key in actor.outputs(): pg.add_out_port(vid, key) pg.set_actor(vid, actor) assert pg.actor(vid) == actor pg.set_actor(vid, None) assert pg.actor(vid) is None
def test_portgraph_set_actor(): pg = PortGraph() assert_raises(InvalidVertex, lambda: pg.set_actor(0, None)) actor = Node() for key in ("toto", 1, "titi"): actor.add_input(key, "descr") actor.add_output(key, "descr") assert_raises(InvalidVertex, lambda: pg.set_actor(0, actor)) vid = pg.add_vertex() pg.set_actor(vid, None) assert pg.actor(vid) is None assert_raises(InvalidPort, lambda: pg.set_actor(vid, actor)) for key in actor.inputs(): pg.add_in_port(vid, key) assert_raises(InvalidPort, lambda: pg.set_actor(vid, actor)) for key in actor.outputs(): pg.add_out_port(vid, key) pg.set_actor(vid, actor) assert pg.actor(vid) == actor pg.set_actor(vid, None) assert pg.actor(vid) is None
def test_node_ports_order_is_preserved(): n = Node() n.add_output('a1', "descr") n.add_output('a2', "descr") n.add_output('res', "descr") assert tuple(n.outputs()) == ('a1', 'a2', 'res')
def test_node_ports_are_empty_on_creation(): n = Node() assert len(list(n.inputs())) == 0 assert len(list(n.outputs())) == 0
def test_node_ports_order_is_preserved(): n = Node() n.add_output("a1", "descr") n.add_output("a2", "descr") n.add_output("res", "descr") assert tuple(n.outputs()) == ("a1", "a2", "res")
def test_node_ports_are_empty_on_creation(): n = Node() assert len(list(n.inputs())) == 0 assert len(list(n.outputs())) == 0