Skip to content

Commit aa9666f

Browse files
Fix bug for unweighted graphs
1 parent f7e851c commit aa9666f

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

algo/src/main/java/org/neo4j/gds/spanningtree/Prim.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public SpanningTree compute() {
8383
}
8484
effectiveNodeCount++;
8585
visited.set(node);
86-
graph.forEachRelationship(node, 0.0D, (s, t, w) -> {
86+
graph.forEachRelationship(node, 1.0D, (s, t, w) -> {
8787
if (visited.get(t)) {
8888
return true;
8989
}

algo/src/test/java/org/neo4j/gds/spanningtree/PrimTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.junit.jupiter.params.ParameterizedTest;
2626
import org.junit.jupiter.params.provider.Arguments;
2727
import org.junit.jupiter.params.provider.MethodSource;
28+
import org.neo4j.gds.GdlBuilder;
2829
import org.neo4j.gds.Orientation;
2930
import org.neo4j.gds.applications.algorithms.machinery.ProgressTrackerCreator;
3031
import org.neo4j.gds.applications.algorithms.machinery.RequestScopedDependencies;
@@ -210,4 +211,24 @@ long getExpectedParent(String expectedParent) {
210211
return idFunction.of(expectedParent);
211212
}
212213
}
214+
215+
@Test
216+
void shouldWorkWithUnweightedGraphs(){
217+
var unweightedGraph = new GdlBuilder()
218+
.gdl("(a)-[:R]->(b)")
219+
.orientation(Orientation.UNDIRECTED)
220+
.build();
221+
222+
var prim =new Prim(
223+
unweightedGraph,
224+
PrimOperators.MIN_OPERATOR,
225+
0,
226+
ProgressTracker.NULL_TRACKER,
227+
TerminationFlag.RUNNING_TRUE
228+
);
229+
var tree= prim.compute();
230+
231+
assertThat(tree.totalWeight()).isEqualTo(1L);
232+
assertThat(tree.costToParent(1)).isEqualTo(1L);
233+
}
213234
}

0 commit comments

Comments
 (0)