public void testAddingRemovingEdgeProperties() { Graph graph = graphTest.generateGraph(); if (graph.getFeatures().supportsEdgeProperties) { Vertex a = graph.addVertex(convertId(graph, "1")); Vertex b = graph.addVertex(convertId(graph, "2")); Edge edge = graph.addEdge(convertId(graph, "3"), a, b, "knows"); assertEquals(edge.getPropertyKeys().size(), 0); assertNull(edge.getProperty("weight")); if (graph.getFeatures().supportsDoubleProperty) { edge.setProperty("weight", 0.5); assertEquals(edge.getPropertyKeys().size(), 1); assertEquals(edge.getProperty("weight"), 0.5); edge.setProperty("weight", 0.6); assertEquals(edge.getPropertyKeys().size(), 1); assertEquals(edge.getProperty("weight"), 0.6); assertEquals(edge.removeProperty("weight"), 0.6); assertNull(edge.getProperty("weight")); assertEquals(edge.getPropertyKeys().size(), 0); } if (graph.getFeatures().supportsStringProperty) { edge.setProperty("blah", "marko"); edge.setProperty("blah2", "josh"); assertEquals(edge.getPropertyKeys().size(), 2); } } graph.shutdown(); }
public void testReadingTinkerGraph(Graph graph) throws Exception { if (!config.ignoresSuppliedIds) { this.stopWatch(); GraphMLReader.inputGraph( graph, GraphMLReader.class.getResourceAsStream("graph-example-1.xml")); BaseTest.printPerformance(graph.toString(), null, "graph-example-1 loaded", this.stopWatch()); assertEquals(count(graph.getVertex("1").getOutEdges()), 3); assertEquals(count(graph.getVertex("1").getInEdges()), 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").getOutEdges()) { if (e.getInVertex().getId().equals("2")) { // assertEquals(e.getProperty("weight"), 0.5); assertEquals(e.getLabel(), "knows"); assertEquals(e.getId(), "7"); counter++; } else if (e.getInVertex().getId().equals("3")) { assertEquals(Math.round((Float) e.getProperty("weight")), 0); assertEquals(e.getLabel(), "created"); assertEquals(e.getId(), "9"); counter++; } else if (e.getInVertex().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").getOutEdges()), 2); assertEquals(count(graph.getVertex("4").getInEdges()), 1); Vertex josh = graph.getVertex("4"); assertEquals(josh.getProperty("name"), "josh"); assertEquals(josh.getProperty("age"), 32); for (Edge e : graph.getVertex("4").getOutEdges()) { if (e.getInVertex().getId().equals("3")) { assertEquals(Math.round((Float) e.getProperty("weight")), 0); assertEquals(e.getLabel(), "created"); assertEquals(e.getId(), "11"); counter++; } else if (e.getInVertex().getId().equals("5")) { assertEquals(Math.round((Float) e.getProperty("weight")), 1); assertEquals(e.getLabel(), "created"); assertEquals(e.getId(), "10"); counter++; } } assertEquals(counter, 5); } }
public void testAddingRemovingEdgeProperties() { if (!graphTest.isRDFModel) { Graph graph = graphTest.getGraphInstance(); Vertex a = graph.addVertex(convertId("1")); Vertex b = graph.addVertex(convertId("2")); Edge edge = graph.addEdge(convertId("3"), a, b, "knows"); assertEquals(edge.getPropertyKeys().size(), 0); assertNull(edge.getProperty("weight")); edge.setProperty("weight", 0.5); assertEquals(edge.getPropertyKeys().size(), 1); assertEquals(edge.getProperty("weight"), 0.5); edge.setProperty("weight", 0.6); assertEquals(edge.getPropertyKeys().size(), 1); assertEquals(edge.getProperty("weight"), 0.6); assertEquals(edge.removeProperty("weight"), 0.6); assertNull(edge.getProperty("weight")); assertEquals(edge.getPropertyKeys().size(), 0); edge.setProperty("blah", "marko"); edge.setProperty("blah2", "josh"); assertEquals(edge.getPropertyKeys().size(), 2); } }
public void testGraphDataPersists() { Graph graph = graphTest.generateGraph(); if (graph.getFeatures().isPersistent) { Vertex v = graph.addVertex(null); Vertex u = graph.addVertex(null); if (graph.getFeatures().supportsVertexProperties) { v.setProperty("name", "marko"); u.setProperty("name", "pavel"); } Edge e = graph.addEdge(null, v, u, convertId(graph, "collaborator")); if (graph.getFeatures().supportsEdgeProperties) e.setProperty("location", "internet"); if (graph.getFeatures().supportsVertexIteration) { assertEquals(count(graph.getVertices()), 2); } if (graph.getFeatures().supportsEdgeIteration) { assertEquals(count(graph.getEdges()), 1); } graph.shutdown(); this.stopWatch(); graph = graphTest.generateGraph(); printPerformance(graph.toString(), 1, "graph loaded", this.stopWatch()); if (graph.getFeatures().supportsVertexIteration) { assertEquals(count(graph.getVertices()), 2); if (graph.getFeatures().supportsVertexProperties) { for (Vertex vertex : graph.getVertices()) { assertTrue( vertex.getProperty("name").equals("marko") || vertex.getProperty("name").equals("pavel")); } } } if (graph.getFeatures().supportsEdgeIteration) { assertEquals(count(graph.getEdges()), 1); for (Edge edge : graph.getEdges()) { assertEquals(edge.getLabel(), convertId(graph, "collaborator")); if (graph.getFeatures().supportsEdgeProperties) assertEquals(edge.getProperty("location"), "internet"); } } } graph.shutdown(); }
public void testTinkerGraphEdges(Graph graph) throws Exception { if (config.supportsEdgeIteration) { this.stopWatch(); GraphMLReader.inputGraph( graph, GraphMLReader.class.getResourceAsStream("graph-example-1.xml")); BaseTest.printPerformance(graph.toString(), null, "graph-example-1 loaded", this.stopWatch()); Set<String> edgeIds = new HashSet<String>(); Set<String> edgeKeys = new HashSet<String>(); Set<String> edgeValues = new HashSet<String>(); 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); } }
public void testPropertyTransactions() { TransactionalGraph graph = (TransactionalGraph) graphTest.generateGraph(); if (graph.getFeatures().supportsElementProperties()) { this.stopWatch(); Vertex v = graph.addVertex(null); Object id = v.getId(); v.setProperty("name", "marko"); graph.stopTransaction(Conclusion.SUCCESS); printPerformance( graph.toString(), 1, "vertex added with string property in a successful transaction", this.stopWatch()); this.stopWatch(); v = graph.getVertex(id); assertNotNull(v); assertEquals(v.getProperty("name"), "marko"); v.setProperty("age", 30); assertEquals(v.getProperty("age"), 30); graph.stopTransaction(Conclusion.FAILURE); printPerformance( graph.toString(), 1, "integer property not added in a failed transaction", this.stopWatch()); this.stopWatch(); v = graph.getVertex(id); assertNotNull(v); assertEquals(v.getProperty("name"), "marko"); assertNull(v.getProperty("age")); printPerformance( graph.toString(), 2, "vertex properties checked in a successful transaction", this.stopWatch()); Edge edge = graph.addEdge(null, v, graph.addVertex(null), "test"); edgeCount(graph, 1); graph.stopTransaction(Conclusion.SUCCESS); edgeCount(graph, 1); edge = getOnlyElement(graph.getVertex(v.getId()).getEdges(Direction.OUT)); assertNotNull(edge); this.stopWatch(); edge.setProperty("transaction-1", "success"); assertEquals(edge.getProperty("transaction-1"), "success"); graph.stopTransaction(Conclusion.SUCCESS); printPerformance( graph.toString(), 1, "edge property added and checked in a successful transaction", this.stopWatch()); edge = getOnlyElement(graph.getVertex(v.getId()).getEdges(Direction.OUT)); assertEquals(edge.getProperty("transaction-1"), "success"); this.stopWatch(); edge.setProperty("transaction-2", "failure"); assertEquals(edge.getProperty("transaction-1"), "success"); assertEquals(edge.getProperty("transaction-2"), "failure"); graph.stopTransaction(Conclusion.FAILURE); printPerformance( graph.toString(), 1, "edge property added and checked in a failed transaction", this.stopWatch()); edge = getOnlyElement(graph.getVertex(v.getId()).getEdges(Direction.OUT)); assertEquals(edge.getProperty("transaction-1"), "success"); assertNull(edge.getProperty("transaction-2")); } graph.shutdown(); }