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_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_are_empty_on_creation(): n = Node() assert len(list(n.inputs())) == 0 assert len(list(n.outputs())) == 0