Skip to content
This repository was archived by the owner on Apr 22, 2020. It is now read-only.

Commit 87df54f

Browse files
committed
more tests
1 parent 4dcc706 commit 87df54f

File tree

1 file changed

+57
-12
lines changed

1 file changed

+57
-12
lines changed

tests/src/test/java/org/neo4j/graphalgo/similarity/SequentialSimilarityExporterTest.java renamed to tests/src/test/java/org/neo4j/graphalgo/similarity/SimilarityExporterTest.java

+57-12
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
import org.junit.Rule;
44
import org.junit.Test;
5-
import org.neo4j.graphdb.Direction;
6-
import org.neo4j.graphdb.Relationship;
7-
import org.neo4j.graphdb.RelationshipType;
85
import org.neo4j.graphdb.Transaction;
96
import org.neo4j.kernel.internal.GraphDatabaseAPI;
107
import org.neo4j.logging.NullLog;
@@ -20,12 +17,30 @@
2017
import static org.junit.Assert.assertEquals;
2118
import static org.junit.Assert.assertThat;
2219

23-
public class SequentialSimilarityExporterTest {
20+
public class SimilarityExporterTest {
2421
@Rule
2522
public final ImpermanentDatabaseRule DB = new ImpermanentDatabaseRule();
2623

27-
public static final String RELATIONSHIP_TYPE = "SIMILAR";
28-
public static final String PROPERTY_NAME = "score";
24+
private static final String RELATIONSHIP_TYPE = "SIMILAR";
25+
private static final String PROPERTY_NAME = "score";
26+
27+
@Test
28+
public void createNothing() {
29+
GraphDatabaseAPI api = DB.getGraphDatabaseAPI();
30+
createNodes(api, 2);
31+
32+
SequentialSimilarityExporter exporter = new SequentialSimilarityExporter(api, NullLog.getInstance(), RELATIONSHIP_TYPE, PROPERTY_NAME);
33+
34+
Stream<SimilarityResult> similarityPairs = Stream.empty();
35+
36+
int batches = exporter.export(similarityPairs, 1);
37+
assertEquals(0, batches);
38+
39+
try (Transaction tx = api.beginTx()) {
40+
List<SimilarityRelationship> allRelationships = getSimilarityRelationships(api);
41+
assertThat(allRelationships, hasSize(0));
42+
}
43+
}
2944

3045
@Test
3146
public void createOneRelationship() {
@@ -40,9 +55,9 @@ public void createOneRelationship() {
4055
assertEquals(1, batches);
4156

4257
try (Transaction tx = api.beginTx()) {
43-
Relationship relationship = api.getNodeById(0).getSingleRelationship(RelationshipType.withName(RELATIONSHIP_TYPE), Direction.OUTGOING);
44-
assertEquals(1, relationship.getEndNodeId());
45-
assertEquals(0.5, (Double) relationship.getProperty(PROPERTY_NAME), 0.01);
58+
List<SimilarityRelationship> allRelationships = getSimilarityRelationships(api);
59+
assertThat(allRelationships, hasSize(1));
60+
assertThat(allRelationships, hasItems(new SimilarityRelationship(0, 1, 0.5)));
4661
}
4762
}
4863

@@ -62,16 +77,46 @@ public void multipleBatches() {
6277
assertEquals(2, batches);
6378

6479
try (Transaction tx = api.beginTx()) {
65-
List<SimilarityRelationship> allRelationships = api.getAllRelationships().stream()
66-
.map(relationship -> new SimilarityRelationship(relationship.getStartNodeId(), relationship.getEndNodeId(), (double)relationship.getProperty(PROPERTY_NAME)))
67-
.collect(Collectors.toList());
80+
List<SimilarityRelationship> allRelationships = getSimilarityRelationships(api);
6881

6982
assertThat(allRelationships, hasSize(2));
7083
assertThat(allRelationships, hasItems(new SimilarityRelationship(0, 1, 0.5)));
7184
assertThat(allRelationships, hasItems(new SimilarityRelationship(2, 3, 0.7)));
7285
}
7386
}
7487

88+
@Test
89+
public void smallerThanBatchSize() {
90+
GraphDatabaseAPI api = DB.getGraphDatabaseAPI();
91+
createNodes(api, 5);
92+
93+
SequentialSimilarityExporter exporter = new SequentialSimilarityExporter(api, NullLog.getInstance(), RELATIONSHIP_TYPE, PROPERTY_NAME);
94+
95+
Stream<SimilarityResult> similarityPairs = Stream.of(
96+
new SimilarityResult(0, 1, -1, -1, -1, 0.5),
97+
new SimilarityResult(2, 3, -1, -1, -1, 0.7),
98+
new SimilarityResult(3, 4, -1, -1, -1, 0.7)
99+
);
100+
101+
int batches = exporter.export(similarityPairs, 10);
102+
assertEquals(1, batches);
103+
104+
try (Transaction tx = api.beginTx()) {
105+
List<SimilarityRelationship> allRelationships = getSimilarityRelationships(api);
106+
107+
assertThat(allRelationships, hasSize(3));
108+
assertThat(allRelationships, hasItems(new SimilarityRelationship(0, 1, 0.5)));
109+
assertThat(allRelationships, hasItems(new SimilarityRelationship(2, 3, 0.7)));
110+
assertThat(allRelationships, hasItems(new SimilarityRelationship(3, 4, 0.7)));
111+
}
112+
}
113+
114+
private List<SimilarityRelationship> getSimilarityRelationships(GraphDatabaseAPI api) {
115+
return api.getAllRelationships().stream()
116+
.map(relationship -> new SimilarityRelationship(relationship.getStartNodeId(), relationship.getEndNodeId(), (double)relationship.getProperty(PROPERTY_NAME)))
117+
.collect(Collectors.toList());
118+
}
119+
75120
static class SimilarityRelationship {
76121
private final long startNodeId;
77122
private final long endNodeId;

0 commit comments

Comments
 (0)