示例#1
0
    def test_prune_clusters(self):
        # Create two small cliques
        graph = StentGraph()
        graph.add_edge(1, 2, cost=2, ctvalue=50)
        graph.add_edge(2, 3, cost=2, ctvalue=50)
        graph.add_edge(3, 1, cost=2, ctvalue=50)
        #
        graph.add_edge(4, 5, cost=2, ctvalue=50)
        graph.add_edge(5, 6, cost=2, ctvalue=50)
        graph.add_edge(6, 7, cost=2, ctvalue=50)
        graph.add_edge(7, 4, cost=2, ctvalue=50)

        # Connect them
        graph.add_edge(1, 4, cost=3, ctvalue=50)

        # Also add loose node
        graph.add_nodes_from([101, 102])

        # Remove cliques and check that nothing happened
        prune_clusters(graph, 4)
        assert graph.number_of_edges() == 8
        assert graph.number_of_nodes() == 7

        # Remove connection
        graph.remove_edge(1, 4)

        # Remove cliques and check that one clique is removed
        prune_clusters(graph, 4)
        assert graph.number_of_edges() == 4
        assert graph.number_of_nodes() == 4

        # Remove cliques and check that one clique is removed
        prune_clusters(graph, 5)
        assert graph.number_of_edges() == 0
        assert graph.number_of_nodes() == 0
示例#2
0
    def test_pack2(self):
        # Auto generate
        import random
        n = 500
        p = dict(
            (i, (random.gauss(0, 2), random.gauss(0, 2))) for i in range(n))
        g_ = nx.random_geometric_graph(n, 0.1, dim=3, pos=p)

        g = StentGraph(summary='dit is een stent!', lala=3)
        g.add_nodes_from(g_.nodes_iter())
        g.add_edges_from(g_.edges_iter())

        fname = '/home/almar/test.ssdf'
        ssdf.save(fname, g.pack())

        g2 = StentGraph()
        g2.unpack(ssdf.load(fname))

        #print(nx.is_isomorphic(g, g2))
        assert nx.is_isomorphic(g, g2)