From 899616f97b6fc6fd5d9ded4b49a7a309e10df1ca Mon Sep 17 00:00:00 2001 From: Dax Pryce Date: Fri, 5 Nov 2021 09:02:33 -0700 Subject: [PATCH] Disabling non deterministic tests in test_n2v See issue #880 --- tests/embed/test_n2v.py | 94 +++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 46 deletions(-) diff --git a/tests/embed/test_n2v.py b/tests/embed/test_n2v.py index 545e1203d..a876cb8d5 100644 --- a/tests/embed/test_n2v.py +++ b/tests/embed/test_n2v.py @@ -12,68 +12,70 @@ class Node2VecEmbedTest(unittest.TestCase): - def test_n2v_returns_same_labels_with_different_nodeid_types(self): - probability_matrix = np.array([[0.95, 0.01], [0.01, 0.95]]) - number_of_nodes_per_community = [20, 20] + # these are not deterministic tests and can't be trusted to work consistently. + # See Issue #880 +# def test_n2v_returns_same_labels_with_different_nodeid_types(self): +# probability_matrix = np.array([[0.95, 0.01], [0.01, 0.95]]) +# number_of_nodes_per_community = [20, 20] - sbm_sample = gc.simulations.sbm( - number_of_nodes_per_community, probability_matrix - ) - sbm_graph = nx.from_numpy_array(sbm_sample) +# sbm_sample = gc.simulations.sbm( +# number_of_nodes_per_community, probability_matrix +# ) +# sbm_graph = nx.from_numpy_array(sbm_sample) - graph = nx.Graph() - graph_as_strings = nx.Graph() - for s, t in sbm_graph.edges(): - graph.add_edge(s, t, weight=1) - graph_as_strings.add_edge(str(s), str(t), weight=1) +# graph = nx.Graph() +# graph_as_strings = nx.Graph() +# for s, t in sbm_graph.edges(): +# graph.add_edge(s, t, weight=1) +# graph_as_strings.add_edge(str(s), str(t), weight=1) - original_embedding = gc.embed.node2vec_embed(graph, random_seed=1) - string_embedding = gc.embed.node2vec_embed(graph_as_strings, random_seed=1) +# original_embedding = gc.embed.node2vec_embed(graph, random_seed=1) +# string_embedding = gc.embed.node2vec_embed(graph_as_strings, random_seed=1) - k = KMeans(n_clusters=2) - original_labels = k.fit_predict(original_embedding[0]) - string_labels = k.fit_predict(string_embedding[0]) +# k = KMeans(n_clusters=2) +# original_labels = k.fit_predict(original_embedding[0]) +# string_labels = k.fit_predict(string_embedding[0]) - expected_labels = np.zeros(40, dtype=int) - expected_labels[20:] = 1 +# expected_labels = np.zeros(40, dtype=int) +# expected_labels[20:] = 1 - original_ari = adjusted_rand_score(original_labels, expected_labels) - string_ari = adjusted_rand_score(string_labels, expected_labels) +# original_ari = adjusted_rand_score(original_labels, expected_labels) +# string_ari = adjusted_rand_score(string_labels, expected_labels) - self.assertEqual(original_ari, string_ari) +# self.assertEqual(original_ari, string_ari) - def test_n2v_directed_undirected_returns_same_clustering(self): - probability_matrix = np.array([[0.95, 0.01], [0.01, 0.95]]) - number_of_nodes_per_community = [20, 20] +# def test_n2v_directed_undirected_returns_same_clustering(self): +# probability_matrix = np.array([[0.95, 0.01], [0.01, 0.95]]) +# number_of_nodes_per_community = [20, 20] - sbm_sample = gc.simulations.sbm( - number_of_nodes_per_community, probability_matrix - ) - sbm_graph = nx.from_numpy_array(sbm_sample) +# sbm_sample = gc.simulations.sbm( +# number_of_nodes_per_community, probability_matrix +# ) +# sbm_graph = nx.from_numpy_array(sbm_sample) - graph = nx.Graph() - graph_directed = nx.DiGraph() - for s, t in sbm_graph.edges(): - graph.add_edge(s, t, weight=1) +# graph = nx.Graph() +# graph_directed = nx.DiGraph() +# for s, t in sbm_graph.edges(): +# graph.add_edge(s, t, weight=1) - graph_directed.add_edge(s, t, weight=1) - graph_directed.add_edge(t, s, weight=1) +# graph_directed.add_edge(s, t, weight=1) +# graph_directed.add_edge(t, s, weight=1) - undirected_embedding = gc.embed.node2vec_embed(graph, random_seed=1) - directed_embedding = gc.embed.node2vec_embed(graph_directed, random_seed=1) +# undirected_embedding = gc.embed.node2vec_embed(graph, random_seed=1) +# directed_embedding = gc.embed.node2vec_embed(graph_directed, random_seed=1) - k = KMeans(n_clusters=2, random_state=1234) - undirected_labels = k.fit_predict(undirected_embedding[0]) - k = KMeans(n_clusters=2, random_state=1234) - directed_labels = k.fit_predict(directed_embedding[0]) +# k = KMeans(n_clusters=2, random_state=1234) +# undirected_labels = k.fit_predict(undirected_embedding[0]) +# k = KMeans(n_clusters=2, random_state=1234) +# directed_labels = k.fit_predict(directed_embedding[0]) - expected_labels = np.zeros(40, dtype=int) - expected_labels[20:] = 1 +# expected_labels = np.zeros(40, dtype=int) +# expected_labels[20:] = 1 - undirected_ari = adjusted_rand_score(undirected_labels, expected_labels) - directed_ari = adjusted_rand_score(directed_labels, expected_labels) +# undirected_ari = adjusted_rand_score(undirected_labels, expected_labels) +# directed_ari = adjusted_rand_score(directed_labels, expected_labels) - self.assertEqual(undirected_ari, directed_ari) +# self.assertEqual(undirected_ari, directed_ari) def test_node2vec_embed(self): g = nx.florentine_families_graph()