Skip to content

Commit 492f189

Browse files
committed
Add test for all rels iterator on filtered graph
1 parent 8fe9746 commit 492f189

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

core/src/test/java/org/neo4j/gds/core/huge/AllRelationshipsSpliteratorTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import net.jqwik.api.constraints.LongRange;
2626
import org.jetbrains.annotations.NotNull;
2727
import org.junit.jupiter.api.Test;
28+
import org.neo4j.gds.NodeLabel;
2829
import org.neo4j.gds.RelationshipType;
2930
import org.neo4j.gds.TestSupport;
3031
import org.neo4j.gds.api.Graph;
@@ -34,6 +35,8 @@
3435

3536
import java.util.ArrayList;
3637
import java.util.List;
38+
import java.util.Map;
39+
import java.util.Optional;
3740
import java.util.concurrent.ConcurrentHashMap;
3841
import java.util.stream.StreamSupport;
3942

@@ -110,6 +113,43 @@ void iterator(
110113
assertThat(actual).isEqualTo(expected);
111114
}
112115

116+
@Test
117+
void filteredGraph() {
118+
var graphStore = TestSupport.graphStoreFromGDL("(a:A)-->(b:A)-->(c:B)-->(d:A)-->(e:A)-->(f:B)");
119+
var graph = graphStore.getGraph(
120+
NodeLabel.of("A"),
121+
RelationshipType.ALL_RELATIONSHIPS,
122+
Optional.empty()
123+
);
124+
assertThat(graph.nodeCount()).isEqualTo(4);
125+
assertThat(graph.relationshipCount()).isEqualTo(2);
126+
127+
var actual = new ConcurrentHashMap<Long, List<Relationship>>();
128+
var allRelationshipsIterator = new AllRelationshipsSpliterator(graph, 0.0);
129+
130+
var iterator = StreamSupport.stream(allRelationshipsIterator, true).iterator();
131+
132+
while (iterator.hasNext()) {
133+
var relationshipCursor = iterator.next();
134+
actual.computeIfAbsent(relationshipCursor.sourceId(), __ -> new ArrayList<>())
135+
.add(new Relationship(
136+
relationshipCursor.targetId(),
137+
relationshipCursor.property()
138+
));
139+
}
140+
141+
assertThat(actual).isEqualTo(Map.of(
142+
0L, List.of(new Relationship(1L, 0.0)),
143+
2L, List.of(new Relationship(3L, 0.0))
144+
));
145+
146+
// returned node ids are filtered node ids
147+
assertThat(graph.toOriginalNodeId(0)).isEqualTo(0);
148+
assertThat(graph.toOriginalNodeId(1)).isEqualTo(1);
149+
assertThat(graph.toOriginalNodeId(2)).isEqualTo(3);
150+
assertThat(graph.toOriginalNodeId(3)).isEqualTo(4);
151+
}
152+
113153
private static @NotNull HugeGraph generateGraph(
114154
long nodeCount,
115155
int averageDegree,

0 commit comments

Comments
 (0)