public void testAddingSelfLoops() { Graph graph = graphTest.getGraphInstance(); if (graphTest.allowsSelfLoops) { List<String> ids = generateIds(3); Vertex v1 = graph.addVertex(convertId(ids.get(0))); Vertex v2 = graph.addVertex(convertId(ids.get(1))); Vertex v3 = graph.addVertex(convertId(ids.get(2))); graph.addEdge(null, v1, v1, convertId("is_self")); graph.addEdge(null, v2, v2, convertId("is_self")); graph.addEdge(null, v3, v3, convertId("is_self")); if (graphTest.supportsVertexIteration) assertEquals(3, count(graph.getVertices())); if (graphTest.supportsEdgeIteration) { assertEquals(3, count(graph.getEdges())); int counter = 0; for (Edge edge : graph.getEdges()) { counter++; assertEquals(edge.getInVertex(), edge.getOutVertex()); assertEquals(edge.getInVertex().getId(), edge.getOutVertex().getId()); } assertEquals(counter, 3); } } graph.shutdown(); }
public void testEdgeIterator() { Graph graph = graphTest.getGraphInstance(); if (graphTest.supportsEdgeIteration) { List<String> ids = generateIds(3); Vertex v1 = graph.addVertex(convertId(ids.get(0))); Vertex v2 = graph.addVertex(convertId(ids.get(1))); Vertex v3 = graph.addVertex(convertId(ids.get(2))); Edge e1 = graph.addEdge(null, v1, v2, convertId("test")); Edge e2 = graph.addEdge(null, v2, v3, convertId("test")); Edge e3 = graph.addEdge(null, v3, v1, convertId("test")); if (graphTest.supportsVertexIteration) assertEquals(3, count(graph.getVertices())); if (graphTest.supportsEdgeIteration) assertEquals(3, count(graph.getEdges())); Set<String> edgeIds = new HashSet<String>(); int count = 0; for (Edge e : graph.getEdges()) { count++; edgeIds.add(e.getId().toString()); assertEquals(convertId("test"), e.getLabel()); if (e.getId().toString().equals(e1.getId().toString())) { assertEquals(v1, e.getOutVertex()); assertEquals(v2, e.getInVertex()); } else if (e.getId().toString().equals(e2.getId().toString())) { assertEquals(v2, e.getOutVertex()); assertEquals(v3, e.getInVertex()); } else if (e.getId().toString().equals(e3.getId().toString())) { assertEquals(v3, e.getOutVertex()); assertEquals(v1, e.getInVertex()); } else { assertTrue(false); } // System.out.println(e); } assertEquals(3, count); assertEquals(3, edgeIds.size()); assertTrue(edgeIds.contains(e1.getId().toString())); assertTrue(edgeIds.contains(e2.getId().toString())); assertTrue(edgeIds.contains(e3.getId().toString())); } graph.shutdown(); }
public void testRemoveSelfLoops() { Graph graph = graphTest.getGraphInstance(); if (graphTest.allowsSelfLoops) { List<String> ids = generateIds(3); Vertex v1 = graph.addVertex(convertId(ids.get(0))); Vertex v2 = graph.addVertex(convertId(ids.get(1))); Vertex v3 = graph.addVertex(convertId(ids.get(2))); Edge e1 = graph.addEdge(null, v1, v1, convertId("is_self")); Edge e2 = graph.addEdge(null, v2, v2, convertId("is_self")); Edge e3 = graph.addEdge(null, v3, v3, convertId("is_self")); if (graphTest.supportsVertexIteration) assertEquals(3, count(graph.getVertices())); if (graphTest.supportsEdgeIteration) { assertEquals(3, count(graph.getEdges())); for (Edge edge : graph.getEdges()) { assertEquals(edge.getInVertex(), edge.getOutVertex()); assertEquals(edge.getInVertex().getId(), edge.getOutVertex().getId()); } } graph.removeVertex(v1); if (graphTest.supportsEdgeIteration) { assertEquals(2, count(graph.getEdges())); for (Edge edge : graph.getEdges()) { assertEquals(edge.getInVertex(), edge.getOutVertex()); assertEquals(edge.getInVertex().getId(), edge.getOutVertex().getId()); } } assertEquals(1, count(v2.getOutEdges())); assertEquals(1, count(v2.getInEdges())); graph.removeEdge(e2); assertEquals(0, count(v2.getOutEdges())); assertEquals(0, count(v2.getInEdges())); if (graphTest.supportsEdgeIteration) { assertEquals(count(graph.getEdges()), 1); for (Edge edge : graph.getEdges()) { assertEquals(edge.getInVertex(), edge.getOutVertex()); assertEquals(edge.getInVertex().getId(), edge.getOutVertex().getId()); } } } graph.shutdown(); }
public void testTinkerGraphVertexAndEdges(Graph graph) throws Exception { if (config.supportsVertexIteration) { this.stopWatch(); GraphMLReader.inputGraph( graph, GraphMLReader.class.getResourceAsStream("graph-example-1.xml")); BaseTest.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); // test marko Set<Vertex> vertices = new HashSet<Vertex>(); assertEquals(marko.getProperty("name"), "marko"); assertEquals(marko.getProperty("age"), 29); assertEquals(marko.getPropertyKeys().size(), 2); assertEquals(count(marko.getOutEdges()), 3); assertEquals(count(marko.getInEdges()), 0); for (Edge e : marko.getOutEdges()) { vertices.add(e.getInVertex()); } assertEquals(vertices.size(), 3); assertTrue(vertices.contains(lop)); assertTrue(vertices.contains(josh)); assertTrue(vertices.contains(vadas)); // test peter vertices = new HashSet<Vertex>(); assertEquals(peter.getProperty("name"), "peter"); assertEquals(peter.getProperty("age"), 35); assertEquals(peter.getPropertyKeys().size(), 2); assertEquals(count(peter.getOutEdges()), 1); assertEquals(count(peter.getInEdges()), 0); for (Edge e : peter.getOutEdges()) { vertices.add(e.getInVertex()); } assertEquals(vertices.size(), 1); assertTrue(vertices.contains(lop)); // test josh vertices = new HashSet<Vertex>(); assertEquals(josh.getProperty("name"), "josh"); assertEquals(josh.getProperty("age"), 32); assertEquals(josh.getPropertyKeys().size(), 2); assertEquals(count(josh.getOutEdges()), 2); assertEquals(count(josh.getInEdges()), 1); for (Edge e : josh.getOutEdges()) { vertices.add(e.getInVertex()); } assertEquals(vertices.size(), 2); assertTrue(vertices.contains(lop)); assertTrue(vertices.contains(ripple)); vertices = new HashSet<Vertex>(); for (Edge e : josh.getInEdges()) { vertices.add(e.getOutVertex()); } assertEquals(vertices.size(), 1); assertTrue(vertices.contains(marko)); // test vadas vertices = new HashSet<Vertex>(); assertEquals(vadas.getProperty("name"), "vadas"); assertEquals(vadas.getProperty("age"), 27); assertEquals(vadas.getPropertyKeys().size(), 2); assertEquals(count(vadas.getOutEdges()), 0); assertEquals(count(vadas.getInEdges()), 1); for (Edge e : vadas.getInEdges()) { vertices.add(e.getOutVertex()); } assertEquals(vertices.size(), 1); assertTrue(vertices.contains(marko)); // test lop vertices = new HashSet<Vertex>(); assertEquals(lop.getProperty("name"), "lop"); assertEquals(lop.getProperty("lang"), "java"); assertEquals(lop.getPropertyKeys().size(), 2); assertEquals(count(lop.getOutEdges()), 0); assertEquals(count(lop.getInEdges()), 3); for (Edge e : lop.getInEdges()) { vertices.add(e.getOutVertex()); } assertEquals(vertices.size(), 3); assertTrue(vertices.contains(marko)); assertTrue(vertices.contains(josh)); assertTrue(vertices.contains(peter)); // test ripple vertices = new HashSet<Vertex>(); assertEquals(ripple.getProperty("name"), "ripple"); assertEquals(ripple.getProperty("lang"), "java"); assertEquals(ripple.getPropertyKeys().size(), 2); assertEquals(count(ripple.getOutEdges()), 0); assertEquals(count(ripple.getInEdges()), 1); for (Edge e : ripple.getInEdges()) { vertices.add(e.getOutVertex()); } assertEquals(vertices.size(), 1); assertTrue(vertices.contains(josh)); } }