Copilot commented on code in PR #683:
URL: https://github.com/apache/incubator-graphar/pull/683#discussion_r2104328049
##########
maven-projects/info/src/test/java/org/apache/graphar/info/GraphLoaderTest.java:
##########
@@ -41,21 +45,139 @@ public static void clean() {}
public void testLoad() {
final GraphLoader graphLoader = new LocalYamlGraphLoader();
final String GRAPH_PATH = TestUtil.getLdbcSampleGraphPath();
+ GraphInfo graphInfo = null;
try {
- final GraphInfo graphInfo = graphLoader.load(GRAPH_PATH);
- Assert.assertNotNull(graphInfo);
- Assert.assertNotNull(graphInfo.getEdgeInfos());
- Assert.assertEquals(1, graphInfo.getEdgeInfos().size());
- for (EdgeInfo edgeInfo : graphInfo.getEdgeInfos()) {
- Assert.assertNotNull(edgeInfo.getConcat());
- }
- Assert.assertNotNull(graphInfo.getVertexInfos());
- Assert.assertEquals(1, graphInfo.getVertexInfos().size());
- for (VertexInfo vertexInfo : graphInfo.getVertexInfos()) {
- Assert.assertNotNull(vertexInfo.getType());
- }
+ graphInfo = graphLoader.load(GRAPH_PATH);
} catch (IOException e) {
throw new RuntimeException(e);
}
+ testGraphInfo(graphInfo);
+ testVertexInfo(graphInfo);
+ testEdgeInfo(graphInfo);
+ }
+
+ private void testGraphInfo(GraphInfo graphInfo) {
+ Assert.assertNotNull(graphInfo);
+ Assert.assertEquals("ldbc_sample", graphInfo.getName());
+ Assert.assertEquals("", graphInfo.getPrefix()); // is empty string?
Review Comment:
[nitpick] The inline question comment is unclear; remove `// is empty
string?` or replace it with a clear explanation of why an empty prefix is
expected.
```suggestion
Assert.assertEquals("", graphInfo.getPrefix()); // The prefix is
expected to be empty as the graph data does not define a prefix.
```
##########
maven-projects/info/src/test/java/org/apache/graphar/info/GraphLoaderTest.java:
##########
@@ -41,21 +45,139 @@ public static void clean() {}
public void testLoad() {
final GraphLoader graphLoader = new LocalYamlGraphLoader();
final String GRAPH_PATH = TestUtil.getLdbcSampleGraphPath();
+ GraphInfo graphInfo = null;
try {
- final GraphInfo graphInfo = graphLoader.load(GRAPH_PATH);
- Assert.assertNotNull(graphInfo);
- Assert.assertNotNull(graphInfo.getEdgeInfos());
- Assert.assertEquals(1, graphInfo.getEdgeInfos().size());
- for (EdgeInfo edgeInfo : graphInfo.getEdgeInfos()) {
- Assert.assertNotNull(edgeInfo.getConcat());
- }
- Assert.assertNotNull(graphInfo.getVertexInfos());
- Assert.assertEquals(1, graphInfo.getVertexInfos().size());
- for (VertexInfo vertexInfo : graphInfo.getVertexInfos()) {
- Assert.assertNotNull(vertexInfo.getType());
- }
+ graphInfo = graphLoader.load(GRAPH_PATH);
} catch (IOException e) {
throw new RuntimeException(e);
}
+ testGraphInfo(graphInfo);
+ testVertexInfo(graphInfo);
+ testEdgeInfo(graphInfo);
+ }
+
+ private void testGraphInfo(GraphInfo graphInfo) {
+ Assert.assertNotNull(graphInfo);
+ Assert.assertEquals("ldbc_sample", graphInfo.getName());
+ Assert.assertEquals("", graphInfo.getPrefix()); // is empty string?
+ Assert.assertNotNull(graphInfo.getEdgeInfos());
+ Assert.assertEquals(1, graphInfo.getEdgeInfos().size());
+ Assert.assertNotNull(graphInfo.getVertexInfos());
+ Assert.assertEquals(1, graphInfo.getVertexInfos().size());
+ }
+
+ private void testVertexInfo(GraphInfo graphInfo) {
+ VertexInfo personVertexInfo = graphInfo.getVertexInfos().get(0);
+ Assert.assertEquals("person", personVertexInfo.getType());
+ Assert.assertEquals(100, personVertexInfo.getChunkSize());
+ Assert.assertEquals("vertex/person/", personVertexInfo.getPrefix());
+ Assert.assertEquals("vertex/person//vertex_count",
personVertexInfo.getVerticesNumFilePath()); //one more '/'
+ Assert.assertEquals("vertex/person//person.vertex.yaml",
personVertexInfo.getVertexPath());
+ Assert.assertNotNull(personVertexInfo.getPropertyGroups());
+ Assert.assertEquals(2, personVertexInfo.getPropertyGroups().size());
+
+ //vertex properties
+ //group1 id
+ PropertyGroup idPropertyGroup =
personVertexInfo.getPropertyGroups().get(0);
+ Assert.assertEquals("id/", idPropertyGroup.getPrefix());
+ Assert.assertEquals(FileType.CSV, idPropertyGroup.getFileType());
+ Assert.assertEquals("vertex/person//id/",
personVertexInfo.getPropertyGroupPrefix(idPropertyGroup));
+ Assert.assertEquals("vertex/person//id//chunk0",
personVertexInfo.getPropertyGroupChunkPath(idPropertyGroup, 0));
+ Assert.assertEquals("vertex/person//id//chunk4",
personVertexInfo.getPropertyGroupChunkPath(idPropertyGroup, 4));
+ Assert.assertNotNull(idPropertyGroup.getPropertyList());
+ Assert.assertEquals(1, idPropertyGroup.getPropertyList().size());
+ Property idProperty = idPropertyGroup.getPropertyList().get(0);
+ Assert.assertTrue(personVertexInfo.hasProperty("id"));
+ Assert.assertEquals("id", idProperty.getName());
+ Assert.assertEquals(DataType.INT64, idProperty.getDataType());
+ Assert.assertTrue(idProperty.isPrimary());
+ Assert.assertFalse(idProperty.isNullable());
+ //group2 firstName_lastName_gender
+ PropertyGroup firstName_lastName_gender =
personVertexInfo.getPropertyGroups().get(1);
+ Assert.assertEquals("firstName_lastName_gender/",
firstName_lastName_gender.getPrefix());
+ Assert.assertEquals(FileType.CSV,
firstName_lastName_gender.getFileType());
+ Assert.assertEquals("vertex/person//firstName_lastName_gender/",
personVertexInfo.getPropertyGroupPrefix(firstName_lastName_gender));
+
Assert.assertEquals("vertex/person//firstName_lastName_gender//chunk0",
personVertexInfo.getPropertyGroupChunkPath(firstName_lastName_gender, 0));
+
Assert.assertEquals("vertex/person//firstName_lastName_gender//chunk4",
personVertexInfo.getPropertyGroupChunkPath(firstName_lastName_gender, 4));
+ Assert.assertNotNull(firstName_lastName_gender.getPropertyList());
+ Assert.assertEquals(3,
firstName_lastName_gender.getPropertyList().size());
+ Property firstNameProperty =
firstName_lastName_gender.getPropertyList().get(0);
+ Assert.assertTrue(personVertexInfo.hasProperty("firstName"));
+ Assert.assertEquals("firstName", firstNameProperty.getName());
+ Assert.assertEquals(DataType.STRING, firstNameProperty.getDataType());
+ Assert.assertFalse(firstNameProperty.isPrimary());
+ Assert.assertTrue(firstNameProperty.isNullable());
+ Property lastNameProperty =
firstName_lastName_gender.getPropertyList().get(1);
+ Assert.assertTrue(personVertexInfo.hasProperty("lastName"));
+ Assert.assertEquals("lastName", lastNameProperty.getName());
+ Assert.assertEquals(DataType.STRING, lastNameProperty.getDataType());
+ Assert.assertFalse(lastNameProperty.isPrimary());
+ Assert.assertTrue(lastNameProperty.isNullable());
+ Property genderProperty =
firstName_lastName_gender.getPropertyList().get(2);
+ Assert.assertTrue(personVertexInfo.hasProperty("gender"));
+ Assert.assertEquals("gender", genderProperty.getName());
+ Assert.assertEquals(DataType.STRING, genderProperty.getDataType());
+ Assert.assertFalse(genderProperty.isPrimary());
+ Assert.assertTrue(genderProperty.isNullable());
+ }
+
+ private void testEdgeInfo(GraphInfo graphInfo) {
+ EdgeInfo knowsEdge = graphInfo.getEdgeInfos().get(0);
+ Assert.assertEquals("knows", knowsEdge.getEdgeLabel());
+ Assert.assertEquals(1024, knowsEdge.getChunkSize());
+ Assert.assertEquals("person", knowsEdge.getSrcLabel());
+ Assert.assertEquals(100, knowsEdge.getSrcChunkSize());
+ Assert.assertEquals("person", knowsEdge.getDstLabel());
+ Assert.assertEquals(100, knowsEdge.getDstChunkSize());
+ Assert.assertFalse(knowsEdge.isDirected());
+ Assert.assertEquals("person_knows_person", knowsEdge.getConcat());
+ Assert.assertEquals("edge/person_knows_person/",
knowsEdge.getPrefix());
+
Assert.assertEquals("edge/person_knows_person//person_knows_person.edge.yaml",
knowsEdge.getEdgePath());
+
+ //edge adjacentList
+ Assert.assertEquals(2, knowsEdge.getAdjacentLists().size());
+ AdjacentList adjOrderBySource =
knowsEdge.getAdjacentList(AdjListType.ORDERED_BY_SOURCE);
+ Assert.assertEquals(FileType.CSV, adjOrderBySource.getFileType());
+ Assert.assertEquals(AdjListType.ORDERED_BY_SOURCE,
adjOrderBySource.getType());
+ Assert.assertEquals("ordered_by_source/",
adjOrderBySource.getPrefix());
+
Assert.assertEquals("edge/person_knows_person//ordered_by_source//adj_list/vertex_count",
knowsEdge.getVerticesNumFilePath(AdjListType.ORDERED_BY_SOURCE));
+
Assert.assertEquals("edge/person_knows_person//ordered_by_source//adj_list/edge_count0",
knowsEdge.getEdgesNumFilePath(AdjListType.ORDERED_BY_SOURCE, 0));
+
Assert.assertEquals("edge/person_knows_person//ordered_by_source//adj_list/edge_count4",
knowsEdge.getEdgesNumFilePath(AdjListType.ORDERED_BY_SOURCE, 4));
+
Assert.assertEquals("edge/person_knows_person//ordered_by_source//adj_list",
knowsEdge.getAdjacentListPrefix(AdjListType.ORDERED_BY_SOURCE));
+
Assert.assertEquals("edge/person_knows_person//ordered_by_source//adj_list/chunk0",
knowsEdge.getAdjacentListChunkPath(AdjListType.ORDERED_BY_SOURCE, 0));
+
Assert.assertEquals("edge/person_knows_person//ordered_by_source//adj_list/chunk4",
knowsEdge.getAdjacentListChunkPath(AdjListType.ORDERED_BY_SOURCE, 4));
+
Assert.assertEquals("edge/person_knows_person//ordered_by_source//adj_list/offset",
knowsEdge.getOffsetPrefix(AdjListType.ORDERED_BY_SOURCE));
Review Comment:
[nitpick] The large number of repetitive assertions for each `AdjListType`
could be extracted into a helper or parameterized test to reduce duplication
and improve readability.
```suggestion
assertAdjacentListProperties(
knowsEdge,
AdjListType.ORDERED_BY_SOURCE,
FileType.CSV,
"ordered_by_source/",
"edge/person_knows_person//ordered_by_source//adj_list/vertex_count",
"edge/person_knows_person//ordered_by_source//adj_list/edge_count0",
"edge/person_knows_person//ordered_by_source//adj_list/edge_count4",
"edge/person_knows_person//ordered_by_source//adj_list",
"edge/person_knows_person//ordered_by_source//adj_list/chunk0",
"edge/person_knows_person//ordered_by_source//adj_list/chunk4",
"edge/person_knows_person//ordered_by_source//adj_list/offset"
);
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]