def test_pg_can_be_extended_with_another_graph_with_different_properties(): pg = PropertyGraph() for i in range(5): pg.add_vertex(i) for i in range(4): pg.add_edge(i, i + 1, i) pg.add_vertex_property("aprop") for vid in pg.vertices(): pg.vertex_property("aprop")[vid] = 1 pg.add_edge_property("aprop") for eid in pg.edges(): pg.edge_property("aprop")[eid] = 2 pg.add_graph_property("gprop", 'a') old_len = len(g) old_len_vprop = len(g.vertex_property("prop")) old_len_eprop = len(g.edge_property("prop")) g.extend(pg) assert len(g) == old_len + len(pg) assert "prop" in g.vertex_property_names() assert "aprop" in g.vertex_property_names() assert "prop" in g.edge_property_names() assert "aprop" in g.edge_property_names() assert "gprop" in g.graph_property_names() assert len(g.vertex_property("prop")) == old_len_vprop assert len(g.edge_property("prop")) == old_len_eprop assert len(g.vertex_property("aprop")) == len(pg.vertex_property("aprop")) assert len(g.edge_property("aprop")) == len(pg.edge_property("aprop"))
from nose.tools import assert_raises, with_setup from openalea.container.graph import Graph from openalea.container.property_graph import (PropertyGraph, InvalidVertex, InvalidEdge, InvalidProperty) g = PropertyGraph() g.add_vertex_property("prop") g.add_edge_property("prop") def setup_func(): for i in range(10): g.add_vertex(i) g.vertex_property("prop")[i] = 'v%d' % i for i in range(9): g.add_edge(i, i + 1, i) g.edge_property("prop")[i] = 'e%d' % i def teardown_func(): g.clear() @with_setup(setup_func, teardown_func) def test_pg_has_no_property_by_default(): pg = PropertyGraph() assert len(tuple(pg.vertex_property_names())) == 0 assert len(tuple(pg.edge_property_names())) == 0