diff --git a/gnm/shape/gnm_numpy_test.py b/gnm/shape/gnm_numpy_test.py index 57b2167..a74bb6c 100644 --- a/gnm/shape/gnm_numpy_test.py +++ b/gnm/shape/gnm_numpy_test.py @@ -429,6 +429,9 @@ def test_edge_list(self, version: str, variant: str): np.testing.assert_array_equal( adjacency_matrix_quads, adjacency_matrix_edge_list ) + self.assertLen( + gnm_np.edge_list, len(np.unique(gnm_np.edge_list, axis=0)) + ) @parameterized.parameters(get_group_subsets_test_cases()) def test_group_subsets(self, version: str, variant: str, group_name: str): diff --git a/gnm/shape/gnm_xnp.py b/gnm/shape/gnm_xnp.py index 396384e..211d1fd 100644 --- a/gnm/shape/gnm_xnp.py +++ b/gnm/shape/gnm_xnp.py @@ -426,7 +426,7 @@ def edge_list(self) -> npt.NDArray[np.integer]: e1 = quads.ravel() e2 = np.roll(quads, -1, axis=1).ravel() edges = np.stack([np.minimum(e1, e2), np.maximum(e1, e2)], axis=1) - edge_keys = e1 + self.num_vertices * e2 + edge_keys = edges[:, 0] + self.num_vertices * edges[:, 1] _, unique_indices = np.unique(edge_keys, return_index=True) unique_undirected_edges = edges[unique_indices] return np.vstack(