Package org.graphstream.graph

Examples of org.graphstream.graph.Node


    for (String key : e2.getAttributeKeySet())
      assertTrue(e1.hasAttribute(key));
  }

  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));
View Full Code Here


    testDirected(new SingleGraph("S")); // XXX
    testDirected(new MultiGraph("M")); // XXX
  }

  protected void testDirected(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", true);
    Edge CA = graph.addEdge("CA", "C", "A", false);

    // A
    // |\
    // | \
    // | \
    // | \
    // B--->C

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

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

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

    assertEquals(AB, A.getEdgeFrom("B"));
    assertEquals(CA, A.getEdgeFrom("C"));
    assertEquals(AB, B.getEdgeFrom("A"));
    assertNull(B.getEdgeFrom("C"));
    assertEquals(CA, C.getEdgeFrom("A"));
    assertEquals(BC, C.getEdgeFrom("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"));
    assertNull(C.getEdgeToward("B"));

    // Now change things a little :
    //
    // A
    // |\
    // | \
    // | \
    // v \
    // B<---C
    //
    // BC changes its direction, and AB becomes directed.

    graph.removeEdge("BC");
    BC = graph.addEdge("BC", "C", "B", true);
    graph.removeEdge("AB");
    AB = graph.addEdge("AB", "A", "B", true);

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

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

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

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

    assertEquals(AB, A.getEdgeToward("B"));
    assertEquals(CA, A.getEdgeToward("C"));
    assertNull(B.getEdgeToward("A"));
    assertNull(B.getEdgeToward("C"));
    assertEquals(CA, C.getEdgeToward("A"));
    assertEquals(BC, C.getEdgeToward("B"));
   
    // Directed loop edges
    assertFalse(A.hasEdgeBetween(A));
    assertFalse(A.hasEdgeToward(A));
    assertFalse(A.hasEdgeFrom(A));
View Full Code Here

    // graph.addAttribute( "ui.quality" );
    graph.addAttribute("ui.antialias");

    pipe.addViewerListener(this);

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

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

    A.addAttribute("xyz", 0, 1, 0);
    B.addAttribute("xyz", 1, 0, 0);
    C.addAttribute("xyz", -1, 0, 0);

    graph.addAttribute("ui.stylesheet", styleSheet);

    float color = 0;
    float dir = 0.01f;
View Full Code Here

  }

  @Test
  public void testSingle() {
    SingleGraph graph = new SingleGraph("g");
    Node A = graph.addNode("A");
    Node B = graph.addNode("B");

    graph.addEdge("AB1", "A", "B");

    try {
      graph.addEdge("AB2", "A", "B");
      fail();
    } catch (Exception e) {
      // Ok !
    }

    assertEquals(1, A.getDegree());
    assertEquals(1, B.getDegree());
  }
View Full Code Here

    testIterables(new SingleGraph("S")); // XXX
    testIterables(new MultiGraph("M")); // XXX
  }

  protected void testIterables(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");

    // Test graph iterables.

    HashSet<Node> nodes = new HashSet<Node>();
    HashSet<Edge> edges = new HashSet<Edge>();

    for (Node node : graph)
      nodes.add(node);

    assertEquals(3, nodes.size());
    assertTrue(nodes.contains(A));
    assertTrue(nodes.contains(B));
    assertTrue(nodes.contains(C));
    nodes.clear();

    for (Node node : graph.getEachNode())
      nodes.add(node);

    assertEquals(3, nodes.size());
    assertTrue(nodes.contains(A));
    assertTrue(nodes.contains(B));
    assertTrue(nodes.contains(C));
    nodes.clear();

    for (Edge edge : graph.getEachEdge())
      edges.add(edge);

    assertEquals(3, edges.size());
    assertTrue(edges.contains(AB));
    assertTrue(edges.contains(BC));
    assertTrue(edges.contains(CA));
    edges.clear();

    // Test node iterables.

    for (Edge edge : A)
      edges.add(edge);

    assertEquals(2, edges.size());
    assertTrue(edges.contains(AB));
    assertTrue(edges.contains(CA));
    edges.clear();

    for (Edge edge : A.getEdgeSet())
      edges.add(edge);

    assertEquals(2, edges.size());
    assertTrue(edges.contains(AB));
    assertTrue(edges.contains(CA));
    edges.clear();

    for (Edge edge : B.getEdgeSet())
      edges.add(edge);

    assertEquals(2, edges.size());
    assertTrue(edges.contains(AB));
    assertTrue(edges.contains(BC));
    edges.clear();

    for (Edge edge : C.getEdgeSet())
      edges.add(edge);

    assertEquals(2, edges.size());
    assertTrue(edges.contains(BC));
    assertTrue(edges.contains(CA));
    edges.clear();

    graph.removeEdge("AB");
    AB = graph.addEdge("AB", "A", "B", true);

    graph.removeEdge("BC");
    BC = graph.addEdge("BC", "B", "C", true);

    // A
    // |\
    // | \
    // | \
    // v \
    // B--->C

    for (Edge edge : A.getEnteringEdgeSet())
      edges.add(edge);

    assertEquals(1, edges.size());
    assertTrue(edges.contains(CA));
    edges.clear();

    for (Edge edge : B.getEnteringEdgeSet())
      edges.add(edge);

    assertEquals(1, edges.size());
    assertTrue(edges.contains(AB));
    edges.clear();

    for (Edge edge : C.getEnteringEdgeSet())
      edges.add(edge);

    assertEquals(2, edges.size());
    assertTrue(edges.contains(BC));
    assertTrue(edges.contains(CA));
    edges.clear();

    for (Edge edge : A.getLeavingEdgeSet())
      edges.add(edge);

    assertEquals(2, edges.size());
    assertTrue(edges.contains(AB));
    assertTrue(edges.contains(CA));
    edges.clear();

    for (Edge edge : B.getLeavingEdgeSet())
      edges.add(edge);

    assertEquals(1, edges.size());
    assertTrue(edges.contains(BC));
    edges.clear();

    for (Edge edge : C.getLeavingEdgeSet())
      edges.add(edge);

    assertEquals(1, edges.size());
    assertTrue(edges.contains(CA));
    edges.clear();
View Full Code Here

    testRemoval(new SingleGraph("S")); // XXX
    testRemoval(new MultiGraph("M")); // XXX
  }

  public void testRemoval(Graph graph) {
    Node A = graph.addNode("A");
    graph.addNode("B");
    graph.addNode("C");

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

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

    // Remove a node. This should also remove two edges.

    Node n = graph.removeNode("A");

    assertEquals(2, graph.getNodeCount());
    assertEquals(1, graph.getEdgeCount());

    assertEquals(n, A);
View Full Code Here

    Graph output = new MultiGraph("outout");

    input.addSink(output);

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

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

    A.addAttribute("foo", "bar");
    BC.addAttribute("foo", "bar");

    assertEquals(3, input.getNodeCount());
    assertEquals(3, output.getNodeCount());
    assertEquals(3, input.getEdgeCount());
    assertEquals(3, output.getEdgeCount());

    assertNotNull(output.getNode("A"));
    assertNotNull(output.getNode("B"));
    assertNotNull(output.getNode("C"));
    assertNotNull(output.getEdge("AB"));
    assertNotNull(output.getEdge("BC"));
    assertNotNull(output.getEdge("CA"));

    assertEquals("bar", output.getNode("A").getAttribute("foo"));
    assertEquals("bar", output.getEdge("BC").getAttribute("foo"));

    // Now remove an attribute.

    A.removeAttribute("foo");

    assertFalse(output.hasAttribute("foo"));

    // Now remove a node.
View Full Code Here

    SpriteManager sman = new SpriteManager(graph);

    fromSwing.addAttributeSink(graph);
    viewer.addDefaultView(true);

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

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

    A.addAttribute("xyz", 0, 1, 0);
    B.addAttribute("xyz", 1, 0, 0);
    C.addAttribute("xyz", -1, 0, 0);

    A.addAttribute("ui.label", "Quit");
    B.addAttribute("ui.label", "Editable text");
    C.addAttribute("ui.label", "Click to edit");

    graph.addAttribute("ui.stylesheet", styleSheet);

    Sprite s1 = sman.addSprite("S1");
    Sprite s2 = sman.addSprite("S2");
    Sprite s3 = sman.addSprite("S3");

    s1.attachToNode("B");
    s2.attachToEdge("BC");
    s1.setPosition(StyleConstants.Units.PX, 1, 0, 0);
    s2.setPosition(0.5f);
    s3.setPosition(0, 0.5f, 0);
    s1.addAttribute("ui.label", "1");
    s2.addAttribute("ui.label", "2");
    // s3.addAttribute( "ui.label", "" );

    boolean loop = true;
    // float x = 0;
    // float y = 1;
    // float dir = 0.005f;
    float angle = 0;

    while (loop) {
      try {
        Thread.sleep(30);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }

      fromSwing.pump();

      if (graph.hasAttribute("ui.viewClosed")) {
        loop = false;
      } else {
        if (A.hasAttribute("ui.clicked")) {
          System.err.printf("A clicked (%s)%n",
              A.getLabel("ui.label"));
          A.removeAttribute("ui.clicked");
          loop = false;
        } else if (B.hasAttribute("ui.clicked")) {
          System.err.printf("B clicked (%s)%n",
              B.getLabel("ui.label"));
          B.removeAttribute("ui.clicked");
        } else if (C.hasAttribute("ui.clicked")) {
          System.err.printf("C clicked (%s)%n",
              C.getLabel("ui.label"));
          C.removeAttribute("ui.clicked");
          if (C.hasAttribute("ui.class"))
            C.removeAttribute("ui.class");
          else
            C.addAttribute("ui.class", "editable");
        }

        angle += 0.01;
        if (angle > 360)
          angle = 0;
View Full Code Here

    viewerThread.start();

    // We modify the graph in the main thread.

    Node A = main.addNode("A");
    Node B = main.addNode("B");
    Node C = main.addNode("C");
    main.addEdge("AB", "A", "B");
    main.addEdge("BC", "B", "C");
    main.addEdge("CA", "C", "A");

    SpriteManager sman = new SpriteManager(main);
    Sprite S1 = sman.addSprite("S1");
    Sprite S2 = sman.addSprite("S2");
    Sprite S3 = sman.addSprite("S3");

    S3.setPosition(1, 2, 2);
    S3.setPosition(2, 3, 2);
    S3.setPosition(3, 2, 1);

    A.addAttribute("ui.foo", "bar");
    B.addAttribute("ui.bar", "foo");
    C.addAttribute("truc"); // Not prefixed by UI, will not pass.
    S1.addAttribute("ui.foo", "bar");
    main.stepBegins(1);

    toMain.pump();
View Full Code Here

  @Test
  public void testElementUtilityMethods() {
    Graph graph = new MultiGraph("g1");

    Node A = graph.addNode("A");

    assertEquals("A", A.getId());
    assertEquals(0, A.getAttributeCount());

    // First attribute of.

    A.addAttribute("C", "c");
    A.addAttribute("I", "i");
    A.addAttribute("Z", "z");

    String s = A.getFirstAttributeOf("A", "B", "C", "I", "Z");

    assertNotNull(s);
    assertEquals("c", s);

    // First attribute of 2.

    A.addAttribute("J", 1);
    A.addAttribute("X", 2);

    Number n = A.getFirstAttributeOf(Number.class, "A", "B", "C", "I", "J",
        "X", "Z");

    assertNotNull(n);
    assertEquals(1, n);
  }
View Full Code Here

TOP

Related Classes of org.graphstream.graph.Node

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.