Package org.geotools.graph.structure

Examples of org.geotools.graph.structure.DirectedNode


   
    m_builder = new BasicDirectedGraphBuilder();
  }
 
  public void test_buildNode() {
    DirectedNode dn = (DirectedNode)m_builder.buildNode()
    assertTrue(dn != null);
  }
View Full Code Here


    assertTrue(de.getInNode() == n1);
    assertTrue(de.getOutNode() == n2);
  }
 
  public void test_addEdge_0() {
    DirectedNode n1 = (DirectedNode)m_builder.buildNode();
    DirectedNode n2 = (DirectedNode)m_builder.buildNode();
   
    DirectedEdge e = (DirectedEdge)m_builder.buildEdge(n1,n2);
   
    m_builder.addEdge(e);
   
    assertTrue(m_builder.getEdges().contains(e));
    assertTrue(n1.getOutEdges().contains(e));
    assertTrue(n2.getInEdges().contains(e));
  }
View Full Code Here

    assertTrue(n2.getInEdges().contains(e));
  }
 
  public void test_addEdge_1() {
    //add a loop edge, in degree == 1, out degree = 1, degree == 2
    DirectedNode n1 = (DirectedNode)m_builder.buildNode();
    DirectedEdge e = (DirectedEdge)m_builder.buildEdge(n1,n1);
   
    m_builder.addNode(n1);
    m_builder.addEdge(e);
   
    assertTrue(n1.getInEdges().size() == 1);
    assertTrue(n1.getOutEdges().size() == 1);
    assertTrue(n1.getEdges().size() == 2);
   
    assertTrue(n1.getInDegree() == 1);
    assertTrue(n1.getOutDegree() == 1);
    assertTrue(n1.getDegree() == 2);
  }
View Full Code Here

      };
      after.visitEdges(visitor);
     
      visitor = new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode n = (DirectedNode)component;
         
          if (n.getDegree() == 1) {
            assertTrue(n.getID() == 0 || n.getID() == nnodes-1)
          }
          else {
            assertTrue(n.getDegree() == 2);
           
            Edge in = (Edge)n.getInEdges().get(0);
            Edge out = (Edge)n.getOutEdges().get(0);
           
            assertTrue(
              (in.getID() == n.getID()-1 && out.getID() == n.getID())
            );
           
          }
         
          return(0);
View Full Code Here

      assertTrue(before.getEdges().size() == after.getEdges().size());
     
      //ensure same structure
      GraphVisitor visitor = new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode n = (DirectedNode)component;
          String id = (String)n.getObject();
         
          assertTrue(obj2node.get(id) != null);
         
          StringTokenizer st = new StringTokenizer(id, ".");
         
          if (st.countTokens() == 1) {
            //root
            assertTrue(n.getDegree() == 2);
           
            Node n0 = ((Edge)n.getEdges().get(0)).getOtherNode(n);
            Node n1 = ((Edge)n.getEdges().get(1)).getOtherNode(n);
           
            assertTrue(
              n0.getObject().equals("0.0") && n1.getObject().equals("0.1")
           || n0.getObject().equals("0.1") && n1.getObject().equals("0.0")
            );
          }
          else if (st.countTokens() == k+1) {
            //leaf
            assertTrue(n.getDegree() == 1);
           
            Node parent = ((DirectedEdge)n.getInEdges().get(0)).getInNode();
            String parentid = (String)parent.getObject();
           
            assertTrue(parentid.equals(id.substring(0, id.length()-2)));  
          }
          else {
            //internal
            assertTrue(n.getDegree() == 3);
           
            String parent = ((DirectedEdge)n.getInEdges().get(0)).getInNode()
                              .getObject().toString();
            String c0 = ((DirectedEdge)n.getOutEdges().get(0)).getOutNode()
                              .getObject().toString();                     
            String c1 = ((DirectedEdge)n.getOutEdges().get(1)).getOutNode()
                              .getObject().toString();                     
                                             
            String parentid = id.substring(0, id.length()-2);
           
            assertTrue(
View Full Code Here

   
    m_builder = new OptDirectedGraphBuilder();
  }
 
  public void test_buildNode() {
    DirectedNode dn = (DirectedNode)m_builder.buildNode()
   
    assertTrue(dn != null);
    assertTrue(dn instanceof OptDirectedNode);
  }
View Full Code Here

      assertTrue(before.getEdges().size() == after.getEdges().size());

      //ensure two nodes of degree 1, and nnodes-2 nodes of degree 2
      GraphVisitor visitor = new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode node = (DirectedNode)component;
          if (node.getInDegree() == 0 || node.getOutDegree() == 0)
            return(Graph.PASS_AND_CONTINUE);
          return(Graph.FAIL_QUERY);
        }
      };
      assertTrue(after.queryNodes(visitor).size() == 2);
     
      visitor = new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode node = (DirectedNode)component;
          if (node.getInDegree() == 1 || node.getOutDegree() == 1)
            return(Graph.PASS_AND_CONTINUE);
          return(Graph.FAIL_QUERY);
        }
      };
     
View Full Code Here

      assertTrue(before.getNodes().size() == after.getNodes().size());
      assertTrue(before.getEdges().size() == after.getEdges().size());

      GraphVisitor visitor = new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode node = (DirectedNode)component;
          if (node.getInDegree() == 0 && node.getOutDegree() == 2)
            return(Graph.PASS_AND_CONTINUE);
          return(Graph.FAIL_QUERY);
        }
      };
      assertTrue(after.queryNodes(visitor).size() == 1); //root
     
      visitor = new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode node = (DirectedNode)component;
          if (node.getInDegree() == 1 && node.getOutDegree() == 2)
            return(Graph.PASS_AND_CONTINUE);
          return(Graph.FAIL_QUERY);
        }
      };
      assertTrue(after.queryNodes(visitor).size() == Math.pow(2,k)-2); //internal
     
      visitor = new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode node = (DirectedNode)component;
          if (node.getInDegree() == 1 && node.getOutDegree() == 0)
            return(Graph.PASS_AND_CONTINUE);
          return(Graph.FAIL_QUERY);
        }
      };
      assertTrue(after.queryNodes(visitor).size() == Math.pow(2,k)); //leaves
View Full Code Here

   
    //initialize nodes
    graph.visitNodes(
      new GraphVisitor() {
        public int visit(Graphable component) {
          DirectedNode node = (DirectedNode)component;
         
          node.setVisited(false);
          node.setCount(0);
         
          if (node.getInDegree() == 0) m_queue.enq(node);
         
          return(0)
        }
      }
    );
View Full Code Here

  public void cont(Graphable current, GraphTraversal traversal) {
    //increment the count of all adjacent nodes by one
    // if the result count equal to the degree, place it into the queue
    DirectedGraphable directed = (DirectedGraphable)current;
    for (Iterator itr = directed.getOutRelated(); itr.hasNext();) {
      DirectedNode related = (DirectedNode)itr.next();
      if (!traversal.isVisited(related)) {
        related.setCount(related.getCount()+1)
        if (related.getInDegree() == related.getCount()) m_queue.enq(related);
     
    }
  }
View Full Code Here

TOP

Related Classes of org.geotools.graph.structure.DirectedNode

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.