def _make_graph(comps=(), variables=(), connections=(), inputs=('a', 'b'), outputs=('c', 'd'), states=(), resids=()): dep = DependencyGraph() scope = DumbClass(dep, '') for comp in comps: if isinstance(comp, basestring): comp = DumbClass(dep, comp, inputs=inputs, outputs=outputs, states=states, resids=resids) dep.add_component(comp.name, comp) setattr(scope, comp.name, comp) for v, iotype in variables: dep.add_boundary_var(scope, v, iotype=iotype) for src, dest in connections: dep.connect(scope, src, dest) return dep, scope
def make_graph(self, nodes=(), connections=()): scope = DumbClass() dep = DependencyGraph() for name in nodes: dep.add(name) for src,dest in connections: dep.connect(src, dest) return dep, scope
def setUp(self): self.dep = dep = DependencyGraph() for name in nodes: dep.add(name) # an internal connection dep.connect('A.c', 'B.a') # boundary connections dep.connect('parent.X.c', 'bound_a') dep.connect('B.c', 'bound_c') dep.connect('bound_c', 'parent.Y.a') # auto-passthroughs dep.connect('parent.X.d', 'B.b') dep.connect('B.d', 'parent.Y.b')
def _make_graph(comps=(), variables=(), connections=(), inputs=('a','b'), outputs=('c','d'), states=(), resids=()): dep = DependencyGraph() scope = DumbClass(dep, '') for comp in comps: if isinstance(comp, basestring): comp = DumbClass(dep, comp, inputs=inputs, outputs=outputs, states=states, resids=resids) dep.add_component(comp.name, comp) setattr(scope, comp.name, comp) for v, iotype in variables: dep.add_boundary_var(scope, v, iotype=iotype) for src, dest in connections: dep.connect(scope, src, dest) return dep, scope
def test_find_all_connecting(self): dep = DependencyGraph() for node in ['A', 'B', 'C', 'D', 'E', 'F']: dep.add(node) self.assertEqual(dep.find_all_connecting('A', 'F'), set()) dep.connect('A.c', 'B.a') dep.connect('B.c', 'C.a') dep.connect('C.d', 'D.a') dep.connect('A.d', 'D.b') dep.connect('A.d', 'F.b') self.assertEqual(dep.find_all_connecting('A', 'F'), set(['A', 'F'])) self.assertEqual(dep.find_all_connecting('A', 'D'), set(['A', 'B', 'C', 'D'])) dep.connect('C.d', 'F.a') self.assertEqual(dep.find_all_connecting('A', 'F'), set(['A', 'B', 'C', 'F']))
def _make_graph(self, comps, invars, outvars): g = DependencyGraph() g.add_nodes_from(comps, comp=True) for n in comps: g.add_nodes_from(["%s.%s" % (n, v) for v in invars], iotype='in') g.add_edges_from([("%s.%s" % (n, v), n) for v in invars]) for n in comps: g.add_nodes_from(["%s.%s" % (n, v) for v in outvars], iotype='out') g.add_edges_from([(n, "%s.%s" % (n, v)) for v in outvars]) return g
def test_find_all_connecting(self): dep = DependencyGraph() for node in ['A','B','C','D','E','F']: dep.add(node) self.assertEqual(dep.find_all_connecting('A','F'), set()) dep.connect('A.c', 'B.a') dep.connect('B.c', 'C.a') dep.connect('C.d', 'D.a') dep.connect('A.d', 'D.b') dep.connect('A.d', 'F.b') self.assertEqual(dep.find_all_connecting('A','F'), set(['A','F'])) self.assertEqual(dep.find_all_connecting('A','D'), set(['A','B','C','D'])) dep.connect('C.d', 'F.a') self.assertEqual(dep.find_all_connecting('A','F'), set(['A','B','C','F']))
def _make_graph(self, comps, invars, outvars): g = DependencyGraph() g.add_nodes_from(comps, comp=True) for n in comps: g.add_nodes_from(["%s.%s" % (n, v) for v in invars], iotype='in') g.add_edges_from([("%s.%s"%(n,v),n) for v in invars]) for n in comps: g.add_nodes_from(["%s.%s" % (n, v) for v in outvars], iotype='out') g.add_edges_from([(n,"%s.%s"%(n,v)) for v in outvars]) return g