Skip to content

Commit 325b1be

Browse files
committed
Bring back orientation for RelationshipsBuilder
- also fix some tests
1 parent 9ad48cc commit 325b1be

File tree

35 files changed

+92
-90
lines changed

35 files changed

+92
-90
lines changed

algo/src/main/java/org/neo4j/gds/beta/walking/CollapsePath.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
package org.neo4j.gds.beta.walking;
2121

2222
import org.neo4j.gds.Algorithm;
23+
import org.neo4j.gds.Orientation;
2324
import org.neo4j.gds.api.Graph;
2425
import org.neo4j.gds.api.Relationships;
25-
import org.neo4j.gds.api.schema.Direction;
2626
import org.neo4j.gds.core.Aggregation;
2727
import org.neo4j.gds.core.concurrency.ParallelUtil;
2828
import org.neo4j.gds.core.concurrency.RunWithConcurrency;
@@ -64,7 +64,7 @@ public CollapsePath(
6464
public Relationships compute() {
6565
RelationshipsBuilder relImporter = GraphFactory.initRelationshipsBuilder()
6666
.nodes(pathTemplates.get(0)[0]) // just need any arbitrary graph
67-
.direction(Direction.DIRECTED)
67+
.orientation(Orientation.NATURAL)
6868
.aggregation(Aggregation.NONE)
6969
.concurrency(concurrency)
7070
.executorService(executorService)

algo/src/main/java/org/neo4j/gds/leiden/GraphAggregationPhase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ Graph run() {
148148
IdMap idMap = nodesBuilder.build().idMap();
149149
RelationshipsBuilder relationshipsBuilder = GraphFactory.initRelationshipsBuilder()
150150
.nodes(idMap)
151-
.direction(direction)
151+
.orientation(direction.toOrientation())
152152
.addPropertyConfig(Aggregation.SUM, DefaultValue.forDouble())
153153
.executorService(executorService)
154154
.build();

algo/src/main/java/org/neo4j/gds/louvain/Louvain.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ private Graph summarizeGraph(
237237
IdMap idMap = nodesBuilder.build().idMap();
238238
RelationshipsBuilder relationshipsBuilder = GraphFactory.initRelationshipsBuilder()
239239
.nodes(idMap)
240-
.direction(rootGraph.schema().direction())
240+
.orientation(rootGraph.schema().direction().toOrientation())
241241
.addPropertyConfig(Aggregation.SUM, DefaultValue.forDouble())
242242
.executorService(executorService)
243243
.build();

algo/src/main/java/org/neo4j/gds/similarity/SimilarityGraphBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
*/
2020
package org.neo4j.gds.similarity;
2121

22+
import org.neo4j.gds.Orientation;
2223
import org.neo4j.gds.api.DefaultValue;
2324
import org.neo4j.gds.api.Graph;
2425
import org.neo4j.gds.api.IdMap;
25-
import org.neo4j.gds.api.schema.Direction;
2626
import org.neo4j.gds.core.Aggregation;
2727
import org.neo4j.gds.core.compress.AdjacencyListBehavior;
2828
import org.neo4j.gds.core.concurrency.ParallelUtil;
@@ -86,7 +86,7 @@ public SimilarityGraphBuilder(
8686
public Graph build(Stream<SimilarityResult> stream) {
8787
var relationshipsBuilder = GraphFactory.initRelationshipsBuilder()
8888
.nodes(idMap.rootIdMap())
89-
.direction(Direction.DIRECTED)
89+
.orientation(Orientation.NATURAL)
9090
.addPropertyConfig(Aggregation.NONE, DefaultValue.forDouble())
9191
.concurrency(concurrency)
9292
.executorService(executorService)

algo/src/test/java/org/neo4j/gds/beta/k1coloring/K1ColoringTest.java

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,11 @@
3333
import org.neo4j.gds.core.GraphDimensions;
3434
import org.neo4j.gds.core.ImmutableGraphDimensions;
3535
import org.neo4j.gds.core.concurrency.Pools;
36-
import org.neo4j.gds.core.huge.UnionGraph;
3736
import org.neo4j.gds.core.utils.mem.MemoryRange;
3837
import org.neo4j.gds.core.utils.paged.HugeLongArray;
3938
import org.neo4j.gds.core.utils.progress.EmptyTaskRegistryFactory;
4039
import org.neo4j.gds.core.utils.progress.tasks.ProgressTracker;
4140

42-
import java.util.Arrays;
4341
import java.util.HashSet;
4442
import java.util.List;
4543
import java.util.Set;
@@ -92,26 +90,16 @@ void testK1Coloring() {
9290
void testParallelK1Coloring() {
9391
long seed = 42L;
9492

95-
RandomGraphGenerator outGenerator = RandomGraphGenerator.builder()
96-
.nodeCount(100_000)
97-
.averageDegree(5)
98-
.relationshipDistribution(RelationshipDistribution.POWER_LAW)
99-
.seed(seed)
100-
.build();
101-
102-
RandomGraphGenerator inGenerator = RandomGraphGenerator.builder()
103-
.nodeCount(100_000)
104-
.averageDegree(5)
93+
var graph = RandomGraphGenerator.builder()
94+
.nodeCount(200_000)
95+
.averageDegree(10)
10596
.relationshipDistribution(RelationshipDistribution.POWER_LAW)
10697
.seed(seed)
10798
.aggregation(Aggregation.NONE)
108-
.direction(Direction.DIRECTED)
99+
.direction(Direction.UNDIRECTED)
109100
.allowSelfLoops(AllowSelfLoops.NO)
110-
.build();
111-
112-
var naturalGraph = outGenerator.generate();
113-
var reverseGraph = inGenerator.generate();
114-
var graph = UnionGraph.of(Arrays.asList(naturalGraph, reverseGraph));
101+
.build()
102+
.generate();
115103

116104
K1Coloring k1Coloring = new K1Coloring(
117105
graph,

algo/src/test/java/org/neo4j/gds/embeddings/fastrp/FastRPTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@
2525
import org.junit.jupiter.api.Test;
2626
import org.neo4j.gds.BaseTest;
2727
import org.neo4j.gds.NodeLabel;
28+
import org.neo4j.gds.Orientation;
2829
import org.neo4j.gds.PropertyMapping;
2930
import org.neo4j.gds.RelationshipType;
3031
import org.neo4j.gds.StoreLoaderBuilder;
3132
import org.neo4j.gds.api.DefaultValue;
3233
import org.neo4j.gds.api.Graph;
3334
import org.neo4j.gds.api.GraphStore;
34-
import org.neo4j.gds.api.schema.Direction;
3535
import org.neo4j.gds.collections.HugeSparseLongArray;
3636
import org.neo4j.gds.compat.Neo4jProxy;
3737
import org.neo4j.gds.compat.TestLog;
@@ -641,7 +641,7 @@ void shouldBeDeterministicGivenSameOriginalIds() {
641641
);
642642
RelationshipsBuilder firstRelationshipsBuilder = GraphFactory.initRelationshipsBuilder()
643643
.nodes(firstIdMap)
644-
.direction(Direction.UNDIRECTED)
644+
.orientation(Orientation.UNDIRECTED)
645645
.executorService(Pools.DEFAULT)
646646
.build();
647647

@@ -664,7 +664,7 @@ void shouldBeDeterministicGivenSameOriginalIds() {
664664
);
665665
RelationshipsBuilder secondRelationshipsBuilder = GraphFactory.initRelationshipsBuilder()
666666
.nodes(secondIdMap)
667-
.direction(Direction.UNDIRECTED)
667+
.orientation(Orientation.UNDIRECTED)
668668
.executorService(Pools.DEFAULT)
669669
.build();
670670

algo/src/test/java/org/neo4j/gds/embeddings/node2vec/Node2VecTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434
import org.junit.jupiter.params.provider.MethodSource;
3535
import org.neo4j.gds.BaseTest;
3636
import org.neo4j.gds.NodeLabel;
37+
import org.neo4j.gds.Orientation;
3738
import org.neo4j.gds.PropertyMapping;
3839
import org.neo4j.gds.StoreLoaderBuilder;
3940
import org.neo4j.gds.TestProgressTracker;
4041
import org.neo4j.gds.api.Graph;
41-
import org.neo4j.gds.api.schema.Direction;
4242
import org.neo4j.gds.collections.HugeSparseLongArray;
4343
import org.neo4j.gds.compat.Neo4jProxy;
4444
import org.neo4j.gds.compat.TestLog;
@@ -277,7 +277,7 @@ void shouldBeFairlyConsistentUnderOriginalIds(EmbeddingInitializer embeddingInit
277277
);
278278
RelationshipsBuilder firstRelationshipsBuilder = GraphFactory.initRelationshipsBuilder()
279279
.nodes(firstIdMap)
280-
.direction(Direction.UNDIRECTED)
280+
.orientation(Orientation.UNDIRECTED)
281281
.executorService(Pools.DEFAULT)
282282
.build();
283283

@@ -298,7 +298,7 @@ void shouldBeFairlyConsistentUnderOriginalIds(EmbeddingInitializer embeddingInit
298298
);
299299
RelationshipsBuilder secondRelationshipsBuilder = GraphFactory.initRelationshipsBuilder()
300300
.nodes(secondIdMap)
301-
.direction(Direction.UNDIRECTED)
301+
.orientation(Orientation.UNDIRECTED)
302302
.executorService(Pools.DEFAULT)
303303
.build();
304304

core/src/main/java/org/neo4j/gds/beta/generator/RandomGraphGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public HugeGraph generate() {
124124

125125
var relationshipsBuilder = GraphFactory.initRelationshipsBuilder()
126126
.nodes(idMap)
127-
.direction(direction)
127+
.orientation(direction.toOrientation())
128128
.addAllPropertyConfigs(maybeRelationshipPropertyProducer.isPresent()
129129
? List.of(GraphFactory.PropertyConfig.of(aggregation, DefaultValue.forDouble()))
130130
: List.of()

core/src/main/java/org/neo4j/gds/core/loading/CypherRelationshipLoader.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.neo4j.gds.RelationshipType;
3131
import org.neo4j.gds.api.GraphLoaderContext;
3232
import org.neo4j.gds.api.IdMap;
33-
import org.neo4j.gds.api.schema.Direction;
3433
import org.neo4j.gds.config.GraphProjectFromCypherConfig;
3534
import org.neo4j.gds.core.Aggregation;
3635
import org.neo4j.gds.core.loading.construction.GraphFactory;
@@ -178,7 +177,7 @@ private RelationshipsBuilder createRelationshipsBuilder(RelationshipType relatio
178177
.nodes(idMap)
179178
.concurrency(cypherConfig.readConcurrency())
180179
.propertyConfigs(propertyConfigs)
181-
.direction(Direction.DIRECTED)
180+
.orientation(Orientation.NATURAL)
182181
.validateRelationships(cypherConfig.validateRelationships())
183182
.build();
184183
}

core/src/main/java/org/neo4j/gds/core/loading/construction/GraphFactory.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ public static RelationshipsBuilderBuilder initRelationshipsBuilder() {
202202
@Builder.Factory
203203
static RelationshipsBuilder relationshipsBuilder(
204204
PartialIdMap nodes,
205-
Optional<Direction> direction,
205+
Optional<Orientation> orientation,
206206
List<PropertyConfig> propertyConfigs,
207207
Optional<Aggregation> aggregation,
208208
Optional<Boolean> validateRelationships,
@@ -221,11 +221,11 @@ static RelationshipsBuilder relationshipsBuilder(
221221
var relationshipType = RelationshipType.ALL_RELATIONSHIPS;
222222
var isMultiGraph = Arrays.stream(aggregations).allMatch(Aggregation::equivalentToNone);
223223

224-
var actualDirection = direction.orElse(Direction.DIRECTED);
224+
var actualOrientation = orientation.orElse(Orientation.NATURAL);
225225
var projectionBuilder = RelationshipProjection
226226
.builder()
227227
.type(relationshipType.name())
228-
.orientation(actualDirection == Direction.UNDIRECTED ? Orientation.UNDIRECTED : Orientation.NATURAL);
228+
.orientation(actualOrientation);
229229

230230
propertyConfigs.forEach(propertyConfig -> projectionBuilder.addProperty(
231231
GraphFactory.DUMMY_PROPERTY,
@@ -272,7 +272,7 @@ static RelationshipsBuilder relationshipsBuilder(
272272

273273
return new RelationshipsBuilder(
274274
nodes,
275-
actualDirection,
275+
Direction.fromOrientation(actualOrientation),
276276
bufferSize,
277277
propertyKeyIds,
278278
importerFactory,

0 commit comments

Comments
 (0)