Package org.graphstream.graph

Examples of org.graphstream.graph.Edge


  protected void testBasic(Graph graph) {
    Node A = graph.addNode("A");
    Node B = graph.addNode("B");
    Node C = graph.addNode("C");

    Edge AB = graph.addEdge("AB", "A", "B");
    Edge BC = graph.addEdge("BC", "B", "C");
    Edge CA = graph.addEdge("CA", "C", "A");

    assertEquals(3, graph.getNodeCount());
    assertEquals(3, graph.getEdgeCount());

    assertNotNull(A);
    assertNotNull(B);
    assertNotNull(C);
    assertNotNull(AB);
    assertNotNull(BC);
    assertNotNull(CA);

    assertEquals("A", A.getId());
    assertEquals("B", B.getId());
    assertEquals("C", C.getId());
    assertEquals("AB", AB.getId());
    assertEquals("BC", BC.getId());
    assertEquals("CA", CA.getId());

    assertEquals(A, graph.getNode("A"));
    assertEquals(B, graph.getNode("B"));
    assertEquals(C, graph.getNode("C"));
    assertEquals(AB, graph.getEdge("AB"));
    assertEquals(BC, graph.getEdge("BC"));
    assertEquals(CA, graph.getEdge("CA"));

    assertFalse(AB.isDirected());
    assertFalse(BC.isDirected());
    assertFalse(CA.isDirected());

    assertEquals(A, AB.getNode0());
    assertEquals(B, AB.getNode1());
    assertEquals(A, AB.getSourceNode());
    assertEquals(B, AB.getTargetNode());
    assertEquals(B, BC.getNode0());
    assertEquals(C, BC.getNode1());
    assertEquals(B, BC.getSourceNode());
    assertEquals(C, BC.getTargetNode());
    assertEquals(C, CA.getNode0());
    assertEquals(A, CA.getNode1());
    assertEquals(C, CA.getSourceNode());
    assertEquals(A, CA.getTargetNode());

    assertEquals(B, AB.getOpposite(A));
    assertEquals(A, AB.getOpposite(B));
    assertEquals(C, BC.getOpposite(B));
    assertEquals(B, BC.getOpposite(C));
    assertEquals(A, CA.getOpposite(C));
    assertEquals(C, CA.getOpposite(A));

    assertEquals(2, A.getDegree());
    assertEquals(2, B.getDegree());
    assertEquals(2, C.getDegree());

    assertEquals(2, A.getInDegree());
    assertEquals(2, A.getOutDegree());
    assertEquals(2, B.getInDegree());
    assertEquals(2, B.getOutDegree());
    assertEquals(2, C.getInDegree());
    assertEquals(2, C.getOutDegree());

    assertTrue(A.hasEdgeFrom("B"));
    assertTrue(A.hasEdgeFrom("C"));
    assertTrue(B.hasEdgeFrom("A"));
    assertTrue(B.hasEdgeFrom("C"));
    assertTrue(C.hasEdgeFrom("A"));
    assertTrue(C.hasEdgeFrom("B"));

    assertEquals(AB, A.getEdgeFrom("B"));
    assertEquals(CA, A.getEdgeFrom("C"));
    assertEquals(AB, B.getEdgeFrom("A"));
    assertEquals(BC, B.getEdgeFrom("C"));
    assertEquals(CA, C.getEdgeFrom("A"));
    assertEquals(BC, C.getEdgeFrom("B"));

    assertTrue(A.hasEdgeToward("B"));
    assertTrue(A.hasEdgeToward("C"));
    assertTrue(B.hasEdgeToward("A"));
    assertTrue(B.hasEdgeToward("C"));
    assertTrue(C.hasEdgeToward("A"));
    assertTrue(C.hasEdgeToward("B"));

    assertEquals(AB, A.getEdgeToward("B"));
    assertEquals(CA, A.getEdgeToward("C"));
    assertEquals(AB, B.getEdgeToward("A"));
    assertEquals(BC, B.getEdgeToward("C"));
    assertEquals(CA, C.getEdgeToward("A"));
    assertEquals(BC, C.getEdgeToward("B"));

    assertNull(A.getEdgeFrom("Z"));
    assertNull(B.getEdgeFrom("Z"));
    assertNull(C.getEdgeFrom("Z"));
    assertNull(A.getEdgeToward("Z"));
    assertNull(B.getEdgeToward("Z"));
    assertNull(C.getEdgeToward("Z"));
   
    // Loop edges
    assertFalse(A.hasEdgeBetween(A));
    assertFalse(A.hasEdgeToward(A));
    assertFalse(A.hasEdgeFrom(A));
    assertNull(A.getEdgeBetween(A));
    assertNull(A.getEdgeToward(A));
    assertNull(A.getEdgeFrom(A));   
    Edge AA = graph.addEdge("AA", "A", "A");
    assertEquals(4, graph.getEdgeCount());
    assertEquals(3, A.getDegree());
    assertEquals(3, A.getInDegree());
    assertEquals(3, A.getOutDegree());
    assertTrue(A.hasEdgeBetween(A));
    assertTrue(A.hasEdgeToward(A));
    assertTrue(A.hasEdgeFrom(A));
    assertEquals(AA, A.getEdgeBetween(A));
    assertEquals(AA, A.getEdgeToward(A));
    assertEquals(AA, A.getEdgeFrom(A));
    assertEquals(A, AA.getSourceNode());
    assertEquals(A, AA.getTargetNode());   
  }
View Full Code Here


    assertFalse(B.hasEdgeToward("A"));
    assertTrue(B.hasEdgeToward("C"));
    assertFalse(C.hasEdgeToward("A"));
    assertTrue(C.hasEdgeToward("B"));

    Edge AB = A.getEdgeToward("B");
    Edge BC = B.getEdgeToward("C");
    Edge CA = A.getEdgeToward("C");

    assertTrue(AB.isDirected());
    assertFalse(BC.isDirected());
    assertTrue(CA.isDirected());
  }
View Full Code Here

    assertNotNull(A);
    assertNotNull(B);
    assertNotNull(C);

    if (testEdgeIds) {
      Edge AB = graph.getEdge("AB");
      Edge BC = graph.getEdge("BC");
      Edge CA = graph.getEdge("CA");

      assertNotNull(AB);
      assertNotNull(BC);
      assertNotNull(CA);

      assertTrue(AB.isDirected());
      assertFalse(BC.isDirected());
      assertTrue(CA.isDirected());

      assertEquals("A", AB.getNode0().getId());
      assertEquals("B", AB.getNode1().getId());
      assertEquals("B", BC.getNode0().getId());
      assertEquals("C", BC.getNode1().getId());
      assertEquals("A", CA.getNode0().getId());
      assertEquals("C", CA.getNode1().getId());
    }

    assertTrue(A.hasEdgeToward("B"));
    assertTrue(A.hasEdgeToward("C"));
    assertTrue(B.hasEdgeToward("C"));
    assertFalse(B.hasEdgeToward("A"));
    assertFalse(C.hasEdgeToward("A"));
    assertTrue(C.hasEdgeToward("B"));

    Edge AB = A.getEdgeToward("B");
    Edge BC = B.getEdgeToward("C");
    Edge CA = A.getEdgeToward("C");

    assertNotNull(AB);
    assertNotNull(BC);
    assertNotNull(CA);

    assertTrue(AB.isDirected());
    assertFalse(BC.isDirected());
    assertTrue(CA.isDirected());
    assertEquals("B", AB.getNode1().getId());
    assertEquals("C", BC.getNode1().getId());
    assertEquals("C", CA.getNode1().getId());
  }
View Full Code Here

    measureValues.put(Measures.NODE_BY_ID, end - start);

    // access each edge by id
    start = System.currentTimeMillis();
    for (String id : edgeIds) {
      Edge e = g.getEdge(id);
      if (e.hasAttribute("foo"))
        foo++;
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.EDGE_BY_ID, end - start);
    return foo;
View Full Code Here

    // iterating on all edges
    start = System.currentTimeMillis();
    Iterator<Edge> edgeIt = g.getEdgeIterator();
    while (edgeIt.hasNext()) {
      Edge e = edgeIt.next();
      if (e.hasAttribute("foo"))
        foo++;
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.GRAPH_EDGE_IT, end - start);
View Full Code Here

    Iterator<Node> nodeIt = g.getNodeIterator();
    while (nodeIt.hasNext()) {
      Node n = nodeIt.next();
      Iterator<Edge> edgeIt = n.getEdgeIterator();
      while (edgeIt.hasNext()) {
        Edge e = edgeIt.next();
        if (e.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.NODE_EDGE_IT, end - start);

    // For each node n, iterating on all entering edges of n
    start = System.currentTimeMillis();
    nodeIt = g.getNodeIterator();
    while (nodeIt.hasNext()) {
      Node n = nodeIt.next();
      Iterator<Edge> edgeIt = n.getEnteringEdgeIterator();
      while (edgeIt.hasNext()) {
        Edge e = edgeIt.next();
        if (e.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.NODE_ENTERING_EDGE_IT, end - start);

    // For each node n, iterating on all leaving edges of n
    start = System.currentTimeMillis();
    nodeIt = g.getNodeIterator();
    while (nodeIt.hasNext()) {
      Node n = nodeIt.next();
      Iterator<Edge> edgeIt = n.getLeavingEdgeIterator();
      while (edgeIt.hasNext()) {
        Edge e = edgeIt.next();
        if (e.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.NODE_LEAVING_EDGE_IT, end - start);

    // For each node n, iterating on all neighbors of n
    start = System.currentTimeMillis();
    nodeIt = g.getNodeIterator();
    while (nodeIt.hasNext()) {
      Node n = nodeIt.next();
      Iterator<Node> neighborIt = n.getNeighborNodeIterator();
      while (neighborIt.hasNext()) {
        Node neighbor = neighborIt.next();
        if (neighbor.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.NODE_NEIGHBOR_IT, end - start);

    // For each node n, iterating on all edges of n using n.getEdge(i)
    start = System.currentTimeMillis();
    nodeIt = g.getNodeIterator();
    while (nodeIt.hasNext()) {
      Node n = nodeIt.next();
      for (int i = 0; i < n.getDegree(); i++) {
        Edge e = n.getEdge(i);
        if (e.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.NODE_GET_EDGE, end - start);
View Full Code Here

    // for each pair of nodes (n1, n2) find the edge between n1 and n2
    long start = System.currentTimeMillis();
    for (String id1 : nodeIds) {
      Node n1 = g.getNode(id1);
      for (String id2 : nodeIds) {
        Edge e = n1.getEdgeBetween(id2);
        if (e != null && e.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.EDGE_BETWEEN, end - start);

    // for each pair of nodes (n1, n2) find the edge from n1 to n2
    start = System.currentTimeMillis();
    for (String id1 : nodeIds) {
      Node n1 = g.getNode(id1);
      for (String id2 : nodeIds) {
        Edge e = n1.getEdgeToward(id2);
        if (e != null && e.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.EDGE_TOWARD, end - start);

    // for each pair of nodes (n1, n2) find the edge from n2 to n1
    start = System.currentTimeMillis();
    for (String id1 : nodeIds) {
      Node n1 = g.getNode(id1);
      for (String id2 : nodeIds) {
        Edge e = n1.getEdgeFrom(id2);
        if (e != null && e.hasAttribute("foo"))
          foo++;
      }
    }
    end = System.currentTimeMillis();
    measureValues.put(Measures.EDGE_FROM, end - start);
View Full Code Here

    Node A = g1.addNode("A");
    Node B = g1.addNode("B");
    Node C = g1.addNode("C");

    Edge AB = g1.addEdge("AB", "A", "B", false);
    Edge AC = g1.addEdge("AC", "A", "C", true);
    Edge BC = g1.addEdge("BC", "B", "C", false);

    A.addAttribute("int", 1);
    B.addAttribute("string", "test");
    C.addAttribute("double", 2.0);

    AB.addAttribute("points",
        (Object) (new double[][] { { 1, 1 }, { 2, 2 } }));
    LinkedList<Integer> list = new LinkedList<Integer>();
    list.add(1);
    list.add(2);
    AC.addAttribute("list", list);
    BC.addAttribute("boolean", true);

    // -----

    A = g2.getNode("A");
    B = g2.getNode("B");
    C = g2.getNode("C");

    assertNotNull(A);
    assertNotNull(B);
    assertNotNull(C);
    assertEquals(g2.getNodeCount(), 3);

    AB = g2.getEdge("AB");
    AC = g2.getEdge("AC");
    BC = g2.getEdge("BC");

    assertNotNull(AB);
    assertNotNull(AC);
    assertNotNull(BC);
    assertEquals(g2.getEdgeCount(), 3);

    assertEquals("A", AB.getNode0().getId());
    assertEquals("B", AB.getNode1().getId());
    assertEquals("A", AC.getNode0().getId());
    assertEquals("C", AC.getNode1().getId());
    assertEquals("B", BC.getNode0().getId());
    assertEquals("C", BC.getNode1().getId());
   
    assertTrue(!AB.isDirected());
    assertTrue(AC.isDirected());
    assertTrue(!BC.isDirected());
   
    assertEquals(A.getAttribute("int"), 1);
    assertEquals(B.getAttribute("string"), "test");
    assertEquals(C.getAttribute("double"), 2.0);

    try {
      double[][] points = AB.getAttribute("points");

      assertEquals(points.length, 2);
      assertEquals(points[0].length, 2);
      assertEquals(points[1].length, 2);
      assertEquals(points[0][0], 1.0);
      assertEquals(points[0][1], 1.0);
      assertEquals(points[1][0], 2.0);
      assertEquals(points[1][1], 2.0);
    } catch (ClassCastException e) {
      fail();
    } catch (NullPointerException e) {
      fail();
    }

    assertEquals(list, AC.getAttribute("list"));
    assertTrue((Boolean) BC.getAttribute("boolean"));
  }
View Full Code Here

      do {
        b = g.getNode((int) (Math.random() * size));
      } while (a == b);

      Edge e = g.addEdge(String.format("edge%d", i), a, b);

      for (int j = 0; j < 3; j++)
        e.setAttribute(attributes[ri(attributes.length)], rv());
    }
  }
View Full Code Here

  @Test
  public void testElements() throws IOException {
    Graph g = getGraph("data/elements.dgs");

    Node A, B, C;
    Edge AB, AC, BC;

    A = g.getNode("A");
    B = g.getNode("B");
    C = g.getNode("C");

    assertEquals(g.getNodeCount(), 3);

    assertNotNull(A);
    assertNotNull(B);
    assertNotNull(C);

    AB = g.getEdge("AB");
    AC = g.getEdge("AC");
    BC = g.getEdge("BC");

    assertEquals(g.getEdgeCount(), 3);

    assertNotNull(AB);
    assertNotNull(AC);
    assertNotNull(BC);

    assertFalse(AB.isDirected());
    assertTrue(AC.isDirected());
    assertTrue(BC.isDirected());

    assertEquals(A, AB.getNode0());
    assertEquals(B, AB.getNode1());
    assertEquals(A, AC.getSourceNode());
    assertEquals(C, AC.getTargetNode());
    assertEquals(B, BC.getSourceNode());
    assertEquals(C, BC.getTargetNode());
  }
View Full Code Here

TOP

Related Classes of org.graphstream.graph.Edge

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.