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