示例#1
0
 def test_K5(self):
     """Katz centrality: K5"""
     G = nx.complete_graph(5)
     alpha = 0.1
     b = nx.katz_centrality(G, alpha)
     v = math.sqrt(1 / 5.0)
     b_answer = dict.fromkeys(G, v)
     for n in sorted(G):
         assert almost_equal(b[n], b_answer[n])
     nstart = dict([(n, 1) for n in G])
     b = nx.katz_centrality(G, alpha, nstart=nstart)
     for n in sorted(G):
         assert almost_equal(b[n], b_answer[n])
示例#2
0
 def test_maxiter(self):
     with pytest.raises(nx.PowerIterationFailedConvergence):
         alpha = 0.1
         G = nx.path_graph(3)
         max_iter = 0
         try:
             b = nx.katz_centrality(G, alpha, max_iter=max_iter)
         except nx.NetworkXError as e:
             assert str(
                 max_iter) in e.args[0], "max_iter value not in error msg"
             raise  # So that the decorater sees the exception.
示例#3
0
 def test_beta_as_dict(self):
     alpha = 0.1
     beta = {0: 1.0, 1: 1.0, 2: 1.0}
     b_answer = {
         0: 0.5598852584152165,
         1: 0.6107839182711449,
         2: 0.5598852584152162
     }
     G = nx.path_graph(3)
     b = nx.katz_centrality(G, alpha, beta)
     for n in sorted(G):
         assert almost_equal(b[n], b_answer[n], places=4)
示例#4
0
 def test_P3(self):
     """Katz centrality: P3"""
     alpha = 0.1
     G = nx.path_graph(3)
     b_answer = {
         0: 0.5598852584152165,
         1: 0.6107839182711449,
         2: 0.5598852584152162
     }
     b = nx.katz_centrality(G, alpha)
     for n in sorted(G):
         assert almost_equal(b[n], b_answer[n], places=4)
示例#5
0
 def test_K5_unweighted(self):
     """Katz centrality: K5"""
     G = nx.complete_graph(5)
     alpha = 0.1
     b = nx.katz_centrality(G, alpha, weight=None)
     v = math.sqrt(1 / 5.0)
     b_answer = dict.fromkeys(G, v)
     for n in sorted(G):
         assert almost_equal(b[n], b_answer[n])
     nstart = dict([(n, 1) for n in G])
     b = nx.eigenvector_centrality_numpy(G, weight=None)
     for n in sorted(G):
         assert almost_equal(b[n], b_answer[n], places=3)
示例#6
0
 def test_multiple_alpha(self):
     alpha_list = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
     for alpha in alpha_list:
         b_answer = {
             0.1: {
                 0: 0.5598852584152165,
                 1: 0.6107839182711449,
                 2: 0.5598852584152162,
             },
             0.2: {
                 0: 0.5454545454545454,
                 1: 0.6363636363636365,
                 2: 0.5454545454545454,
             },
             0.3: {
                 0: 0.5333964609104419,
                 1: 0.6564879518897746,
                 2: 0.5333964609104419,
             },
             0.4: {
                 0: 0.5232045649263551,
                 1: 0.6726915834767423,
                 2: 0.5232045649263551,
             },
             0.5: {
                 0: 0.5144957746691622,
                 1: 0.6859943117075809,
                 2: 0.5144957746691622,
             },
             0.6: {
                 0: 0.5069794004195823,
                 1: 0.6970966755769258,
                 2: 0.5069794004195823,
             },
         }
         G = nx.path_graph(3)
         b = nx.katz_centrality(G, alpha)
         for n in sorted(G):
             assert almost_equal(b[n], b_answer[alpha][n], places=4)
示例#7
0
 def test_katz_centrality_unweighted(self):
     H = self.H
     alpha = self.H.alpha
     p = nx.katz_centrality(H, alpha, weight="weight")
     for (a, b) in zip(list(p.values()), self.H.evc):
         assert almost_equal(a, b)
示例#8
0
 def test_katz_centrality_weighted(self):
     G = self.G
     alpha = self.G.alpha
     p = nx.katz_centrality(G, alpha, weight="weight")
     for (a, b) in zip(list(p.values()), self.G.evc):
         assert almost_equal(a, b)
示例#9
0
 def test_empty(self):
     e = nx.katz_centrality(nx.Graph(), 0.1)
     assert e == {}
示例#10
0
 def test_multigraph(self):
     with pytest.raises(nx.NetworkXException):
         e = nx.katz_centrality(nx.MultiGraph(), 0.1)
示例#11
0
 def test_bad_beta_numbe(self):
     with pytest.raises(nx.NetworkXException):
         G = nx.Graph([(0, 1)])
         e = nx.katz_centrality(G, 0.1, beta="foo")
示例#12
0
 def test_bad_beta(self):
     with pytest.raises(nx.NetworkXException):
         G = nx.Graph([(0, 1)])
         beta = {0: 77}
         e = nx.katz_centrality(G, 0.1, beta=beta)