diff --git a/python/tests/test_graphdb.py b/python/tests/test_graphdb.py index d4d9e2e103..ce8dd12cd5 100644 --- a/python/tests/test_graphdb.py +++ b/python/tests/test_graphdb.py @@ -167,7 +167,7 @@ def test_windowed_graph_edges(): for e in e_iter: edges.append([e.src.id, e.dst.id]) - assert edges == [[1, 1], [1, 1], [1, 2], [1, 3], [1, 2], [3, 2], [1, 3], [3, 2]] + assert edges == [[1, 1], [1, 2], [1, 3], [1, 2], [3, 2], [1, 3], [3, 2]] tedges = [v.in_edges for v in view.nodes] in_edges = [] diff --git a/raphtory/src/db/graph/graph.rs b/raphtory/src/db/graph/graph.rs index 5379c44604..8c71d73b59 100644 --- a/raphtory/src/db/graph/graph.rs +++ b/raphtory/src/db/graph/graph.rs @@ -560,7 +560,7 @@ mod db_tests { g.add_edge(*t, *src, *dst, NO_PROPS, None).unwrap(); } - let expected = vec![(2, 3, 2), (1, 0, 0), (1, 0, 0)]; + let expected = vec![(2, 3, 1), (1, 0, 0), (1, 0, 0)]; let actual = (1..=3) .map(|i| { let v = g.node(i).unwrap(); diff --git a/raphtory/src/db/internal/graph_ops.rs b/raphtory/src/db/internal/graph_ops.rs index 1fd7cfb939..cb3e87fcb6 100644 --- a/raphtory/src/db/internal/graph_ops.rs +++ b/raphtory/src/db/internal/graph_ops.rs @@ -173,6 +173,7 @@ impl<'graph, const N: usize> GraphOps<'graph> for InnerTemporalGraph { } Direction::BOTH => Box::new( self.node_edges(v, Direction::IN, layers.clone(), filter) + .filter(|e| e.src() != e.dst()) .merge(self.node_edges(v, Direction::OUT, layers, filter)), ), }