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);
    }
  }
Ejemplo n.º 2
0
  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();
  }
Ejemplo n.º 3
0
  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();
  }
Ejemplo n.º 4
0
  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 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));
    }
  }