Package org.geotools.graph.structure

Examples of org.geotools.graph.structure.Edge


   */
  public void test_0() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    Graph built = generator().getGraph();
   
    //ensure correct graph structure
    assertTrue(built.getEdges().size() == n);
    assertTrue(built.getNodes().size() == n+1);
   
    GraphVisitor visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        DirectedNode node = (DirectedNode)component;
        Coordinate c = (Coordinate)node.getObject();
       
        if (node.getDegree() == 1) {
          assertTrue(
            (node.getID()==0&&node.getInDegree()==0&&node.getOutDegree()==1)||
            (node.getID()==n&&node.getInDegree()==1&&node.getOutDegree()==0)
          );
        }
        else {
          assertTrue(node.getInDegree() == 1 && node.getOutDegree() == 1);
        }
       
        assertTrue(
          c.x == base.x + node.getID() && c.y == base.y + node.getID()
        );
        return(0);
      }
    };
    built.visitNodes(visitor);
   
    //ensure correct edge direction
    visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        DirectedEdge e = (DirectedEdge)component;
        Coordinate c0 = (Coordinate)e.getInNode().getObject();
        Coordinate c1 = (Coordinate)e.getOutNode().getObject();
        LineSegment ls = (LineSegment)e.getObject();
       
        assertTrue(ls.p0.equals(c0) && ls.p1.equals(c1));
       
        return(0);
      }
View Full Code Here


   */
  public void test_1() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    //complete the circle
    generator().add(
      new LineSegment(new Coordinate(base.x + n, base.y + n), base)
View Full Code Here

    };
    generator().getGraph().visitNodes(visitor);
   
    visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Edge e = (Edge)component;
        String id0 = (String)e.getNodeA().getObject();
        String id1 = (String)e.getNodeB().getObject();
       
        assertTrue(
          (id0.equals("0") && id1.equals(String.valueOf(nnodes-1)))||
          (id0.equals(String.valueOf(nnodes-1)) && id1.equals("0"))
        );
View Full Code Here

    };
    generator().getGraph().visitNodes(visitor);
   
    visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Edge e = (Edge)component;
        String id0 = (String)e.getNodeA().getObject();
        String id1 = (String)e.getNodeB().getObject();
       
        assertTrue(
          (id0.equals("0") && id1.equals(String.valueOf(cyc)))||
          (id0.equals(String.valueOf(cyc)) && id1.equals("0"))||
          (id0.equals(String.valueOf(cyc)) && id1.equals(String.valueOf(cyc+1)))||
View Full Code Here

   */
  public void test_0() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    Graph built = generator().getGraph();
   
    //ensure correct graph structure
    assertTrue(built.getEdges().size() == n);
    assertTrue(built.getNodes().size() == n+1);
   
    GraphVisitor visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Node node = (Node)component;
        Coordinate c = (Coordinate)node.getObject();
       
        if (node.getDegree() == 1) {
          assertTrue(node.getID() == 0 || node.getID() == n);
        }
        else {
          assertTrue(node.getDegree() == 2);
        }
       
        assertTrue(
          c.x == base.x + node.getID() && c.y == base.y + node.getID()
        );
        return(0);
      }
    };
    built.visitNodes(visitor);
   
    visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Edge edge = (Edge)component;
        LineSegment line = (LineSegment)edge.getObject();
       
        assertTrue(line.p1.x == line.p0.x + 1 && line.p1.y == line.p0.y+1);
       
        return(0);
      }
View Full Code Here

   */
  public void test_1() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
      e.setID(i-1);
      e.getNodeA().setID(i-1);
      e.getNodeB().setID(i);
    }
   
    //complete the circle
    generator().add(
      new LineSegment(new Coordinate(base.x + n, base.y + n), base)
View Full Code Here

    };
    generator().getGraph().visitNodes(visitor);
   
    visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Edge e = (Edge)component;
        String id0 = (String)e.getNodeA().getObject();
        String id1 = (String)e.getNodeB().getObject();
       
        assertTrue(
          (id0.equals("0") && id1.equals(String.valueOf(cyc)))||
          (id0.equals(String.valueOf(cyc)) && id1.equals("0"))||
          (id0.equals(String.valueOf(cyc)) && id1.equals(String.valueOf(cyc+2)))||
View Full Code Here

    return (
      new GraphFuser.EdgeMerger() {
        public Object merge(List edges) {
          ArrayList ends = new ArrayList();
          for (Iterator itr = edges.iterator(); itr.hasNext();) {
            Edge edge = (Edge)itr.next();
            if (
              edge.getNodeA().getDegree()!=2 || edge.getNodeB().getDegree()!=2
            ) ends.add(edge)
         
         
          Object[] obj = new Object[2];
         
          if (ends.size() == 2) {
            Edge end0 = (Edge)ends.get(0);
            Edge end1 = (Edge)ends.get(1);
         
            obj[0] = end0.getNodeA().getDegree() == 2
                      ? end0.getNodeB().getObject() : end0.getNodeA()
                          .getObject();
            obj[1] = end1.getNodeA().getDegree() == 2
                      ? end1.getNodeB().getObject() : end1.getNodeA()
                          .getObject()
          }
          else if (ends.size() == 0) {
            obj[0] = ((Edge)edges.get(0)).getNodeA().getObject();
            obj[1] = ((Edge)edges.get(0)).getNodeA().getObject();   
View Full Code Here

   */
  public void test_0() {
    final Coordinate base = new Coordinate(0d,0d);
    final int n = 100;
    for (int i = 1; i <= n; i++) {
      Edge e = (Edge)generator().add(
        new LineSegment(
          new Coordinate(base.x + (i-1), base.y + (i-1)),
          new Coordinate(base.x + i, base.y + i)
        )
      )
    }
    generator().generate();
    Graph built = generator().getGraph();
   
    //ensure correct graph structure
    assertTrue(built.getEdges().size() == n);
    assertTrue(built.getNodes().size() == n+1);
   
    assertTrue(built.getNodesOfDegree(1).size() == 2);
    assertTrue(built.getNodesOfDegree(2).size() == n-1);
   
    //ensure coordinates
    GraphVisitor visitor = new GraphVisitor() {
      public int visit(Graphable component) {
        Edge e = (Edge)component;
        XYNode a = (XYNode)e.getNodeA();
        XYNode b = (XYNode)e.getNodeB();
       
        //coordinats should be a distance of sqrt(2)
        assertTrue(
          Math.abs(a.getCoordinate().x - b.getCoordinate().x) == 1 &&
          Math.abs(a.getCoordinate().y - b.getCoordinate().y) == 1
View Full Code Here

TOP

Related Classes of org.geotools.graph.structure.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.