
com.tinkerpop.blueprints.util.io.graphml.GraphMLReaderTestSuite Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of blueprints-test Show documentation
Show all versions of blueprints-test Show documentation
Reusable test suites for Blueprints
The newest version!
package com.tinkerpop.blueprints.util.io.graphml;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Graph;
import com.tinkerpop.blueprints.TestSuite;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.impls.GraphTest;
import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
import java.util.HashSet;
import java.util.Set;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class GraphMLReaderTestSuite extends TestSuite {
public GraphMLReaderTestSuite() {
}
public GraphMLReaderTestSuite(GraphTest graphTest) {
super(graphTest);
}
public void testReadingTinkerGraph() throws Exception {
Graph graph = graphTest.generateGraph();
if (!graph.getFeatures().ignoresSuppliedIds) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-1.xml"));
printPerformance(graph.toString(), null, "graph-example-1 loaded", this.stopWatch());
assertEquals(count(graph.getVertex("1").getEdges(Direction.OUT)), 3);
assertEquals(count(graph.getVertex("1").getEdges(Direction.IN)), 0);
Vertex marko = graph.getVertex("1");
assertEquals(marko.getProperty("name"), "marko");
assertEquals(marko.getProperty("age"), 29);
int counter = 0;
for (Edge e : graph.getVertex("1").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("2")) {
// assertEquals(e.getProperty("weight"), 0.5);
assertEquals(e.getLabel(), "knows");
assertEquals(e.getId(), "7");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "9");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("4")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 1);
assertEquals(e.getLabel(), "knows");
assertEquals(e.getId(), "8");
counter++;
}
}
assertEquals(count(graph.getVertex("4").getEdges(Direction.OUT)), 2);
assertEquals(count(graph.getVertex("4").getEdges(Direction.IN)), 1);
Vertex josh = graph.getVertex("4");
assertEquals(josh.getProperty("name"), "josh");
assertEquals(josh.getProperty("age"), 32);
for (Edge e : graph.getVertex("4").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "11");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("5")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 1);
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "10");
counter++;
}
}
assertEquals(counter, 5);
}
graph.shutdown();
}
public void testTinkerGraphEdges() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (graph.getFeatures().supportsEdgeIteration) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-1.xml"));
printPerformance(graph.toString(), null, "graph-example-1 loaded", this.stopWatch());
Set edgeIds = new HashSet();
Set edgeKeys = new HashSet();
Set edgeValues = new HashSet();
int count = 0;
for (Edge e : graph.getEdges()) {
count++;
edgeIds.add(e.getId().toString());
for (String key : e.getPropertyKeys()) {
edgeKeys.add(key);
edgeValues.add(e.getProperty(key).toString());
}
}
assertEquals(count, 6);
assertEquals(edgeIds.size(), 6);
assertEquals(edgeKeys.size(), 1);
assertEquals(edgeValues.size(), 4);
}
graph.shutdown();
}
public void testTinkerGraphVertices() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-1.xml"));
printPerformance(graph.toString(), null, "graph-example-1 loaded", this.stopWatch());
Set vertexNames = new HashSet();
int count = 0;
for (Vertex v : graph.getVertices()) {
count++;
vertexNames.add(v.getProperty("name").toString());
// System.out.println(v);
}
assertEquals(count, 6);
assertEquals(vertexNames.size(), 6);
assertTrue(vertexNames.contains("marko"));
assertTrue(vertexNames.contains("josh"));
assertTrue(vertexNames.contains("peter"));
assertTrue(vertexNames.contains("vadas"));
assertTrue(vertexNames.contains("ripple"));
assertTrue(vertexNames.contains("lop"));
}
graph.shutdown();
}
public void testTinkerGraphSoftwareVertices() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-1.xml"));
printPerformance(graph.toString(), null, "graph-example-1 loaded", this.stopWatch());
Set softwareVertices = new HashSet();
int count = 0;
for (Vertex v : graph.getVertices()) {
count++;
String name = v.getProperty("name").toString();
if (name.equals("lop") || name.equals("ripple")) {
softwareVertices.add(v);
}
}
assertEquals(count, 6);
assertEquals(softwareVertices.size(), 2);
for (Vertex v : softwareVertices) {
assertEquals(v.getProperty("lang"), "java");
}
}
graph.shutdown();
}
public void testTinkerGraphVertexAndEdges() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-1.xml"));
printPerformance(graph.toString(), null, "graph-example-1 loaded", this.stopWatch());
Vertex marko = null;
Vertex peter = null;
Vertex josh = null;
Vertex vadas = null;
Vertex lop = null;
Vertex ripple = null;
int count = 0;
for (Vertex v : graph.getVertices()) {
count++;
String name = v.getProperty("name").toString();
if (name.equals("marko")) {
marko = v;
} else if (name.equals("peter")) {
peter = v;
} else if (name.equals("josh")) {
josh = v;
} else if (name.equals("vadas")) {
vadas = v;
} else if (name.equals("lop")) {
lop = v;
} else if (name.equals("ripple")) {
ripple = v;
} else {
assertTrue(false);
}
}
assertEquals(count, 6);
assertTrue(null != marko);
assertTrue(null != peter);
assertTrue(null != josh);
assertTrue(null != vadas);
assertTrue(null != lop);
assertTrue(null != ripple);
if (graph.getFeatures().supportsEdgeIteration) {
assertEquals(count(graph.getEdges()), 6);
}
// test marko
Set vertices = new HashSet();
assertEquals(marko.getProperty("name"), "marko");
assertEquals(((Number) marko.getProperty("age")).intValue(), 29);
assertEquals(marko.getPropertyKeys().size(), 2);
assertEquals(count(marko.getEdges(Direction.OUT)), 3);
assertEquals(count(marko.getEdges(Direction.IN)), 0);
for (Edge e : marko.getEdges(Direction.OUT)) {
vertices.add(e.getVertex(Direction.IN));
}
assertEquals(vertices.size(), 3);
assertTrue(vertices.contains(lop));
assertTrue(vertices.contains(josh));
assertTrue(vertices.contains(vadas));
// test peter
vertices = new HashSet();
assertEquals(peter.getProperty("name"), "peter");
assertEquals(((Number) peter.getProperty("age")).intValue(), 35);
assertEquals(peter.getPropertyKeys().size(), 2);
assertEquals(count(peter.getEdges(Direction.OUT)), 1);
assertEquals(count(peter.getEdges(Direction.IN)), 0);
for (Edge e : peter.getEdges(Direction.OUT)) {
vertices.add(e.getVertex(Direction.IN));
}
assertEquals(vertices.size(), 1);
assertTrue(vertices.contains(lop));
// test josh
vertices = new HashSet();
assertEquals(josh.getProperty("name"), "josh");
assertEquals(((Number) josh.getProperty("age")).intValue(), 32);
assertEquals(josh.getPropertyKeys().size(), 2);
assertEquals(count(josh.getEdges(Direction.OUT)), 2);
assertEquals(count(josh.getEdges(Direction.IN)), 1);
for (Edge e : josh.getEdges(Direction.OUT)) {
vertices.add(e.getVertex(Direction.IN));
}
assertEquals(vertices.size(), 2);
assertTrue(vertices.contains(lop));
assertTrue(vertices.contains(ripple));
vertices = new HashSet();
for (Edge e : josh.getEdges(Direction.IN)) {
vertices.add(e.getVertex(Direction.OUT));
}
assertEquals(vertices.size(), 1);
assertTrue(vertices.contains(marko));
// test vadas
vertices = new HashSet();
assertEquals(vadas.getProperty("name"), "vadas");
assertEquals(((Number) vadas.getProperty("age")).intValue(), 27);
assertEquals(vadas.getPropertyKeys().size(), 2);
assertEquals(count(vadas.getEdges(Direction.OUT)), 0);
assertEquals(count(vadas.getEdges(Direction.IN)), 1);
for (Edge e : vadas.getEdges(Direction.IN)) {
vertices.add(e.getVertex(Direction.OUT));
}
assertEquals(vertices.size(), 1);
assertTrue(vertices.contains(marko));
// test lop
vertices = new HashSet();
assertEquals(lop.getProperty("name"), "lop");
assertEquals(lop.getProperty("lang"), "java");
assertEquals(lop.getPropertyKeys().size(), 2);
assertEquals(count(lop.getEdges(Direction.OUT)), 0);
assertEquals(count(lop.getEdges(Direction.IN)), 3);
for (Edge e : lop.getEdges(Direction.IN)) {
vertices.add(e.getVertex(Direction.OUT));
}
assertEquals(vertices.size(), 3);
assertTrue(vertices.contains(marko));
assertTrue(vertices.contains(josh));
assertTrue(vertices.contains(peter));
// test ripple
vertices = new HashSet();
assertEquals(ripple.getProperty("name"), "ripple");
assertEquals(ripple.getProperty("lang"), "java");
assertEquals(ripple.getPropertyKeys().size(), 2);
assertEquals(count(ripple.getEdges(Direction.OUT)), 0);
assertEquals(count(ripple.getEdges(Direction.IN)), 1);
for (Edge e : ripple.getEdges(Direction.IN)) {
vertices.add(e.getVertex(Direction.OUT));
}
assertEquals(vertices.size(), 1);
assertTrue(vertices.contains(josh));
}
graph.shutdown();
}
public void testReadingTinkerGraphExample3() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (!graph.getFeatures().ignoresSuppliedIds && graph.getFeatures().supportsEdgeIteration && graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-3.xml"), 1000);
printPerformance(graph.toString(), null, "graph-example-3 loaded", this.stopWatch());
// Specific Graph Characteristics
assertEquals(count(graph.getVertex("1").getEdges(Direction.OUT)), 3);
assertEquals(count(graph.getVertex("1").getEdges(Direction.IN)), 0);
Vertex marko = graph.getVertex("1");
assertEquals(marko.getProperty("name"), "marko");
assertEquals(marko.getProperty("age"), 29);
assertEquals(marko.getProperty("_id"), 2);
int counter = 0;
for (Edge e : graph.getVertex("1").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("2")) {
// assertEquals(e.getProperty("weight"), 0.5);
assertEquals(e.getProperty("_id"), 8);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "knows");
assertEquals(e.getId(), "7");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getProperty("_id"), 10);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "9");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("4")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 1);
assertEquals(e.getProperty("_id"), 9);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "knows");
assertEquals(e.getId(), "8");
counter++;
}
}
assertEquals(count(graph.getVertex("2").getEdges(Direction.OUT)), 0);
assertEquals(count(graph.getVertex("2").getEdges(Direction.IN)), 1);
Vertex vadas = graph.getVertex("2");
assertEquals(vadas.getProperty("name"), "vadas");
assertEquals(vadas.getProperty("age"), 27);
assertEquals(vadas.getProperty("_id"), 3);
assertEquals(count(graph.getVertex("3").getEdges(Direction.OUT)), 0);
assertEquals(count(graph.getVertex("3").getEdges(Direction.IN)), 3);
Vertex lop = graph.getVertex("3");
assertEquals(lop.getProperty("name"), "lop");
assertEquals(lop.getProperty("lang"), "java");
assertEquals(lop.getProperty("_id"), 4);
assertEquals(count(graph.getVertex("4").getEdges(Direction.OUT)), 2);
assertEquals(count(graph.getVertex("4").getEdges(Direction.IN)), 1);
Vertex josh = graph.getVertex("4");
assertEquals(josh.getProperty("name"), "josh");
assertEquals(josh.getProperty("age"), 32);
for (Edge e : graph.getVertex("4").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getProperty("_id"), 13);
assertEquals(e.getProperty("_label"), null);
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "11");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("5")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 1);
assertEquals(e.getProperty("_id"), 11);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "10");
counter++;
}
}
assertEquals(count(graph.getVertex("5").getEdges(Direction.OUT)), 0);
assertEquals(count(graph.getVertex("5").getEdges(Direction.IN)), 1);
Vertex ripple = graph.getVertex("5");
assertEquals(ripple.getProperty("name"), "ripple");
assertEquals(ripple.getProperty("lang"), "java");
assertEquals(ripple.getProperty("_id"), 7);
assertEquals(count(graph.getVertex("6").getEdges(Direction.OUT)), 1);
assertEquals(count(graph.getVertex("6").getEdges(Direction.IN)), 0);
Vertex peter = graph.getVertex("6");
assertEquals(peter.getProperty("name"), "peter");
assertEquals(peter.getProperty("age"), 35);
for (Edge e : graph.getVertex("6").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getProperty("_id"), null);
assertEquals(e.getProperty("_label"), null);
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "12");
counter++;
}
}
assertEquals(counter, 6);
// General Graph Characteristics
Set vertexIds = new HashSet();
Set vertexKeys = new HashSet();
Set vertexNames = new HashSet();
int vertexCount = 0;
for (Vertex v : graph.getVertices()) {
vertexCount++;
vertexIds.add(v.getId().toString());
vertexNames.add(v.getProperty("name").toString());
for (String key : v.getPropertyKeys())
vertexKeys.add(key);
}
Set edgeIds = new HashSet();
Set edgeKeys = new HashSet();
int edgeCount = 0;
for (Edge e : graph.getEdges()) {
edgeCount++;
edgeIds.add(e.getId().toString());
for (String key : e.getPropertyKeys())
edgeKeys.add(key);
}
assertEquals(vertexCount, 6);
assertEquals(vertexIds.size(), 6);
assertEquals(vertexKeys.contains("name"), true);
assertEquals(vertexKeys.contains("age"), true);
assertEquals(vertexKeys.contains("lang"), true);
assertEquals(vertexKeys.contains("_id"), true);
assertEquals(vertexKeys.size(), 4);
assertEquals(edgeCount, 6);
assertEquals(edgeIds.size(), 6);
assertEquals(edgeKeys.contains("weight"), true);
assertEquals(edgeKeys.contains("_id"), true);
assertEquals(edgeKeys.contains("_label"), true);
assertEquals(edgeKeys.size(), 3);
}
graph.shutdown();
}
public void testReadingTinkerGraphExample3MappingLabels() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (graph.getFeatures().supportsEdgeIteration && graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
GraphMLReader r = new GraphMLReader(graph);
r.setEdgeLabelKey("_label");
r.inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-3.xml"), 1000);
printPerformance(graph.toString(), null, "graph-example-3 loaded", this.stopWatch());
Set vertexIds = new HashSet();
Set vertexKeys = new HashSet();
Set vertexNames = new HashSet();
int vertexCount = 0;
for (Vertex v : graph.getVertices()) {
vertexCount++;
vertexIds.add(v.getId().toString());
vertexNames.add(v.getProperty("name").toString());
for (String key : v.getPropertyKeys())
vertexKeys.add(key);
}
Set edgeIds = new HashSet();
Set edgeKeys = new HashSet();
Set edgeLabels = new HashSet();
int edgeCount = 0;
for (Edge e : graph.getEdges()) {
edgeCount++;
edgeIds.add(e.getId().toString());
edgeLabels.add(e.getLabel());
for (String key : e.getPropertyKeys())
edgeKeys.add(key);
}
assertEquals(vertexCount, 6);
assertEquals(vertexIds.size(), 6);
assertEquals(vertexKeys.contains("name"), true);
assertEquals(vertexKeys.contains("age"), true);
assertEquals(vertexKeys.contains("lang"), true);
assertEquals(vertexKeys.contains("_id"), true);
assertEquals(vertexKeys.size(), 4);
assertTrue(vertexNames.contains("marko"));
assertTrue(vertexNames.contains("josh"));
assertTrue(vertexNames.contains("peter"));
assertTrue(vertexNames.contains("vadas"));
assertTrue(vertexNames.contains("ripple"));
assertTrue(vertexNames.contains("lop"));
assertEquals(edgeCount, 6);
assertEquals(edgeIds.size(), 6);
assertEquals(edgeKeys.contains("weight"), true);
assertEquals(edgeKeys.contains("_id"), true);
assertEquals(edgeKeys.contains("_label"), false);
assertEquals(edgeKeys.size(), 2);
assertEquals(edgeLabels.size(), 2);
assertEquals(edgeLabels.contains("has high fived"), true);
assertEquals(edgeLabels.contains("knows"), false);
assertEquals(edgeLabels.contains("created"), true);
}
graph.shutdown();
}
public void testReadingTinkerGraphExample3MappingIDs() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (graph.getFeatures().supportsEdgeIteration && graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
GraphMLReader r = new GraphMLReader(graph);
r.setVertexIdKey("_id");
r.setEdgeIdKey("_id");
r.inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-3.xml"), 1000);
printPerformance(graph.toString(), null, "graph-example-3 loaded", this.stopWatch());
Set vertexIds = new HashSet();
Set vertexKeys = new HashSet();
Set vertexNames = new HashSet();
int vertexCount = 0;
for (Vertex v : graph.getVertices()) {
vertexCount++;
vertexIds.add(v.getId().toString());
vertexNames.add(v.getProperty("name").toString());
for (String key : v.getPropertyKeys())
vertexKeys.add(key);
}
Set edgeIds = new HashSet();
Set edgeKeys = new HashSet();
Set edgeLabels = new HashSet();
int edgeCount = 0;
for (Edge e : graph.getEdges()) {
edgeCount++;
edgeIds.add(e.getId().toString());
edgeLabels.add(e.getLabel());
for (String key : e.getPropertyKeys())
edgeKeys.add(key);
}
assertEquals(vertexCount, 6);
assertEquals(vertexIds.size(), 6);
assertEquals(vertexKeys.contains("name"), true);
assertEquals(vertexKeys.contains("age"), true);
assertEquals(vertexKeys.contains("lang"), true);
assertEquals(vertexKeys.contains("_id"), false);
assertEquals(vertexKeys.size(), 3);
assertTrue(vertexNames.contains("marko"));
assertTrue(vertexNames.contains("josh"));
assertTrue(vertexNames.contains("peter"));
assertTrue(vertexNames.contains("vadas"));
assertTrue(vertexNames.contains("ripple"));
assertTrue(vertexNames.contains("lop"));
assertEquals(edgeCount, 6);
assertEquals(edgeIds.size(), 6);
assertEquals(edgeKeys.contains("weight"), true);
assertEquals(edgeKeys.contains("_id"), false);
assertEquals(edgeKeys.contains("_label"), true);
assertEquals(edgeKeys.size(), 2);
assertEquals(edgeLabels.size(), 2);
assertEquals(edgeLabels.contains("has high fived"), false);
assertEquals(edgeLabels.contains("knows"), true);
assertEquals(edgeLabels.contains("created"), true);
}
graph.shutdown();
}
public void testReadingTinkerGraphExample3MappingAll() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (graph.getFeatures().supportsEdgeIteration && graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
GraphMLReader r = new GraphMLReader(graph);
r.setVertexIdKey("_id");
r.setEdgeIdKey("_id");
r.setEdgeLabelKey("_label");
r.inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-3.xml"), 1000);
printPerformance(graph.toString(), null, "graph-example-3 loaded", this.stopWatch());
Set vertexIds = new HashSet();
Set vertexKeys = new HashSet();
Set vertexNames = new HashSet();
int vertexCount = 0;
for (Vertex v : graph.getVertices()) {
vertexCount++;
vertexIds.add(v.getId().toString());
vertexNames.add(v.getProperty("name").toString());
for (String key : v.getPropertyKeys())
vertexKeys.add(key);
}
Set edgeIds = new HashSet();
Set edgeKeys = new HashSet();
Set edgeLabels = new HashSet();
int edgeCount = 0;
for (Edge e : graph.getEdges()) {
edgeCount++;
edgeIds.add(e.getId().toString());
edgeLabels.add(e.getLabel());
for (String key : e.getPropertyKeys())
edgeKeys.add(key);
}
assertEquals(vertexCount, 6);
assertEquals(vertexIds.size(), 6);
assertEquals(vertexKeys.contains("name"), true);
assertEquals(vertexKeys.contains("age"), true);
assertEquals(vertexKeys.contains("lang"), true);
assertEquals(vertexKeys.contains("_id"), false);
assertEquals(vertexKeys.size(), 3);
assertTrue(vertexNames.contains("marko"));
assertTrue(vertexNames.contains("josh"));
assertTrue(vertexNames.contains("peter"));
assertTrue(vertexNames.contains("vadas"));
assertTrue(vertexNames.contains("ripple"));
assertTrue(vertexNames.contains("lop"));
assertEquals(edgeCount, 6);
assertEquals(edgeIds.size(), 6);
assertEquals(edgeKeys.contains("weight"), true);
assertEquals(edgeKeys.contains("_id"), false);
assertEquals(edgeKeys.contains("_label"), false);
assertEquals(edgeKeys.size(), 1);
assertEquals(edgeLabels.size(), 2);
assertEquals(edgeLabels.contains("has high fived"), true);
assertEquals(edgeLabels.contains("knows"), false);
assertEquals(edgeLabels.contains("created"), true);
}
graph.shutdown();
}
public void testMigratingTinkerGraphExample3() throws Exception {
Graph graph = this.graphTest.generateGraph();
if (!graph.getFeatures().ignoresSuppliedIds && graph.getFeatures().supportsEdgeIteration && graph.getFeatures().supportsVertexIteration) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-3.xml"), 1000);
printPerformance(graph.toString(), null, "graph-example-3 loaded", this.stopWatch());
this.stopWatch();
// FIXME Should not explicitly define the Graph type (TinkerGraph)
// here. Need to accept 2 graphs as input params?
Graph toGraph = new TinkerGraph();
GraphMigrator.migrateGraph(graph, toGraph);
printPerformance(toGraph.toString(), null, "graph-example-3 migrated", this.stopWatch());
// Specific Graph Characteristics
assertEquals(count(toGraph.getVertex("1").getEdges(Direction.OUT)), 3);
assertEquals(count(toGraph.getVertex("1").getEdges(Direction.IN)), 0);
Vertex marko = toGraph.getVertex("1");
assertEquals(marko.getProperty("name"), "marko");
assertEquals(marko.getProperty("age"), 29);
assertEquals(marko.getProperty("_id"), 2);
int counter = 0;
for (Edge e : toGraph.getVertex("1").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("2")) {
// assertEquals(e.getProperty("weight"), 0.5);
assertEquals(e.getProperty("_id"), 8);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "knows");
assertEquals(e.getId(), "7");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getProperty("_id"), 10);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "9");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("4")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 1);
assertEquals(e.getProperty("_id"), 9);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "knows");
assertEquals(e.getId(), "8");
counter++;
}
}
assertEquals(count(toGraph.getVertex("2").getEdges(Direction.OUT)), 0);
assertEquals(count(toGraph.getVertex("2").getEdges(Direction.IN)), 1);
Vertex vadas = toGraph.getVertex("2");
assertEquals(vadas.getProperty("name"), "vadas");
assertEquals(vadas.getProperty("age"), 27);
assertEquals(vadas.getProperty("_id"), 3);
assertEquals(count(toGraph.getVertex("3").getEdges(Direction.OUT)), 0);
assertEquals(count(toGraph.getVertex("3").getEdges(Direction.IN)), 3);
Vertex lop = toGraph.getVertex("3");
assertEquals(lop.getProperty("name"), "lop");
assertEquals(lop.getProperty("lang"), "java");
assertEquals(lop.getProperty("_id"), 4);
assertEquals(count(toGraph.getVertex("4").getEdges(Direction.OUT)), 2);
assertEquals(count(toGraph.getVertex("4").getEdges(Direction.IN)), 1);
Vertex josh = toGraph.getVertex("4");
assertEquals(josh.getProperty("name"), "josh");
assertEquals(josh.getProperty("age"), 32);
for (Edge e : toGraph.getVertex("4").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getProperty("_id"), 13);
assertEquals(e.getProperty("_label"), null);
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "11");
counter++;
} else if (e.getVertex(Direction.IN).getId().equals("5")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 1);
assertEquals(e.getProperty("_id"), 11);
assertEquals(e.getProperty("_label"), "has high fived");
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "10");
counter++;
}
}
assertEquals(count(toGraph.getVertex("5").getEdges(Direction.OUT)), 0);
assertEquals(count(toGraph.getVertex("5").getEdges(Direction.IN)), 1);
Vertex ripple = toGraph.getVertex("5");
assertEquals(ripple.getProperty("name"), "ripple");
assertEquals(ripple.getProperty("lang"), "java");
assertEquals(ripple.getProperty("_id"), 7);
assertEquals(count(toGraph.getVertex("6").getEdges(Direction.OUT)), 1);
assertEquals(count(toGraph.getVertex("6").getEdges(Direction.IN)), 0);
Vertex peter = toGraph.getVertex("6");
assertEquals(peter.getProperty("name"), "peter");
assertEquals(peter.getProperty("age"), 35);
for (Edge e : toGraph.getVertex("6").getEdges(Direction.OUT)) {
if (e.getVertex(Direction.IN).getId().equals("3")) {
assertEquals(Math.round((Float) e.getProperty("weight")), 0);
assertEquals(e.getProperty("_id"), null);
assertEquals(e.getProperty("_label"), null);
assertEquals(e.getLabel(), "created");
assertEquals(e.getId(), "12");
counter++;
}
}
assertEquals(counter, 6);
// General Graph Characteristics
Set vertexIds = new HashSet();
Set vertexKeys = new HashSet();
int vertexCount = 0;
for (Vertex v : toGraph.getVertices()) {
vertexCount++;
vertexIds.add(v.getId().toString());
for (String key : v.getPropertyKeys())
vertexKeys.add(key);
}
Set edgeIds = new HashSet();
Set edgeKeys = new HashSet();
int edgeCount = 0;
for (Edge e : toGraph.getEdges()) {
edgeCount++;
edgeIds.add(e.getId().toString());
for (String key : e.getPropertyKeys())
edgeKeys.add(key);
}
assertEquals(vertexCount, 6);
assertEquals(vertexIds.size(), 6);
assertEquals(vertexKeys.contains("name"), true);
assertEquals(vertexKeys.contains("age"), true);
assertEquals(vertexKeys.contains("lang"), true);
assertEquals(vertexKeys.contains("_id"), true);
assertEquals(vertexKeys.size(), 4);
assertEquals(edgeCount, 6);
assertEquals(edgeIds.size(), 6);
assertEquals(edgeKeys.contains("weight"), true);
assertEquals(edgeKeys.contains("_id"), true);
assertEquals(edgeKeys.contains("_label"), true);
assertEquals(edgeKeys.size(), 3);
}
graph.shutdown();
}
public void testAllGraphMLTypeCastsAndDataMappings() throws Exception {
// the "key" in the element should map back to the "id" in the "key" element
Graph graph = graphTest.generateGraph();
if (!graph.getFeatures().ignoresSuppliedIds) {
this.stopWatch();
new GraphMLReader(graph).inputGraph(GraphMLReader.class.getResourceAsStream("graph-example-4.xml"));
printPerformance(graph.toString(), null, "graph-example-4 loaded", this.stopWatch());
Vertex onlyOne = graph.getVertex("1");
assertNotNull(onlyOne);
assertEquals(123.45d, onlyOne.getProperty("d"));
assertEquals("some-string", onlyOne.getProperty("s"));
assertEquals(29, onlyOne.getProperty("i"));
assertEquals(true, onlyOne.getProperty("b"));
assertEquals(10000000l, onlyOne.getProperty("l"));
assertEquals(123.54f, onlyOne.getProperty("f"));
assertEquals("junk", onlyOne.getProperty("n"));
}
graph.shutdown();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy