コード例 #1
0
    def manipulation(self, g):

        vd1 = g.add_vertex()
        vd2 = g.add_vertex()
        vd3 = g.add_vertex()
        vd4 = g.add_vertex()

        g.add_edge(vertex1=vd1, vertex2=vd2)
        g.add_edge(vertex1=vd1, vertex2=vd3)
        g.add_edge(vertex1=vd2, vertex2=vd4)
        visitor = bfs.distance_recording_visitor(start_vertex=vd1)
        bfs.breadth_first_search(graph=g, vertex=vd1, visitor=visitor)

        self.assertEqual(visitor.distance_for, {
            vd1: 0,
            vd2: 1,
            vd3: 1,
            vd4: 2
        })
        visitor2 = bfs.distance_recording_visitor(start_vertex=vd2)
        bfs.breadth_first_search(graph=g, vertex=vd2, visitor=visitor2)

        self.assertEqual(visitor2.distance_for, {
            vd1: 1,
            vd2: 0,
            vd3: 2,
            vd4: 1
        })
コード例 #2
0
  def manipulation(self, g):

    vd1 = g.add_vertex()
    vd2 = g.add_vertex()
    vd3 = g.add_vertex()
    vd4 = g.add_vertex()

    g.add_edge( vertex1 = vd1, vertex2 = vd2 )
    g.add_edge( vertex1 = vd1, vertex2 = vd3 )
    g.add_edge( vertex1 = vd2, vertex2 = vd4 )
    visitor = bfs.distance_recording_visitor( start_vertex = vd1 )
    bfs.breadth_first_search( graph = g, vertex = vd1, visitor = visitor )

    self.assertEqual(
      visitor.distance_for,
      { vd1: 0, vd2: 1, vd3: 1, vd4: 2 }
      )
    visitor2 = bfs.distance_recording_visitor( start_vertex = vd2 )
    bfs.breadth_first_search( graph = g, vertex = vd2, visitor = visitor2 )

    self.assertEqual(
      visitor2.distance_for,
      { vd1: 1, vd2: 0, vd3: 2, vd4: 1 }
      )
コード例 #3
0
ファイル: topology.py プロジェクト: renesugar/cctbx_project
    def distances_from(self, atom):

        if atom not in self.descriptor_for:
            raise ValueError, "Unknown atom: %s" % atom

        from graph import breadth_first_search as bfs

        vertex = self.descriptor_for[atom]
        visitor = bfs.distance_recording_visitor(start_vertex=vertex)
        bfs.breadth_first_search(
            graph=self.graph,
            vertex=vertex,
            visitor=visitor,
        )

        atom_for = self.atom_for
        return dict((atom_for[v], visitor.distance_for.get(v, None))
                    for v in self.descriptors)
コード例 #4
0
ファイル: topology.py プロジェクト: cctbx/cctbx-playground
  def distances_from(self, atom):

    if atom not in self.descriptor_for:
      raise ValueError, "Unknown atom: %s" % atom

    from graph import breadth_first_search as bfs

    vertex = self.descriptor_for[ atom ]
    visitor = bfs.distance_recording_visitor( start_vertex = vertex )
    bfs.breadth_first_search(
      graph = self.graph,
      vertex = vertex,
      visitor = visitor,
      )

    atom_for = self.atom_for
    return dict(
      ( atom_for[ v ], visitor.distance_for.get( v, None ) )
      for v in self.descriptors
      )