示例#1
0
    def testGraph(self):
        """ ctor nodes edges connect walk """

        # # create graph
        gr = Graph("testGraph", self.nodes, self.edges)

        # # nodes and edges
        for node in self.nodes:
            self.assertEqual(node in gr, True)
        for edge in self.edges:
            self.assertEqual(edge in gr, True)
        self.assertEqual(sorted(self.nodes, key=lambda x: x.name),
                         sorted(gr.nodes(), key=lambda x: x.name))
        self.assertEqual(sorted(self.edges, key=lambda x: x.name),
                         sorted(gr.edges(), key=lambda x: x.name))

        # # getNode
        for node in self.nodes:
            self.assertEqual(gr.getNode(node.name), node)

        # # connect
        aloneEdge = gr.connect(self.nodes[0], self.aloneNode)
        self.assertEqual(self.aloneNode in gr, True)
        self.assertEqual(aloneEdge in gr, True)

        # # addNode
        anotherNode = Node("5")
        anotherEdge = anotherNode.connect(self.aloneNode)
        gr.addNode(anotherNode)
        self.assertEqual(anotherNode in gr, True)
        self.assertEqual(anotherEdge in gr, True)

        # # walk no nodeFcn
        ret = gr.walkAll()
        self.assertEqual(ret, {})

        for node in gr.nodes():
            self.assertEqual(node.visited, True)

        gr.reset()
        for node in gr.nodes():
            self.assertEqual(node.visited, False)
        # # walk with nodeFcn
        def nbEdges(node):
            """ dummy node fcn """
            return len(node.edges())

        ret = gr.walkAll(nodeFcn=nbEdges)
        self.assertEqual(ret, {'1': 3, '2': 0, '3': 0, '4': 0, '5': 1})
示例#2
0
  def testGraph( self ):
    """ ctor nodes edges connect walk """

    # # create graph
    gr = Graph( "testGraph", self.nodes, self.edges )

    # # nodes and edges
    for node in self.nodes:
      self.assertEqual( node in gr, True )
    for edge in self.edges:
      self.assertEqual( edge in gr, True )
    self.assertEqual( sorted( self.nodes ), sorted( gr.nodes() ) )
    self.assertEqual( sorted( self.edges ), sorted( gr.edges() ) )

    # # getNode
    for node in self.nodes:
      self.assertEqual( gr.getNode( node.name ), node )

    # # connect
    aloneEdge = gr.connect( self.nodes[0], self.aloneNode )
    self.assertEqual( self.aloneNode in gr, True )
    self.assertEqual( aloneEdge in gr, True )

    # # addNode
    anotherNode = Node( "5" )
    anotherEdge = anotherNode.connect( self.aloneNode )
    gr.addNode( anotherNode )
    self.assertEqual( anotherNode in gr, True )
    self.assertEqual( anotherEdge in gr, True )


    # # walk no nodeFcn
    ret = gr.walkAll()
    self.assertEqual( ret, {} )

    for node in gr.nodes():
      self.assertEqual( node.visited, True )

    gr.reset()
    for node in gr.nodes():
      self.assertEqual( node.visited, False )
    # # walk with nodeFcn
    def nbEdges( node ):
      """ dummy node fcn """
      return len( node.edges() )
    ret = gr.walkAll( nodeFcn = nbEdges )
    self.assertEqual( ret, { '1': 3, '2' : 0, '3': 0, '4' : 0, '5': 1 } )