Package org.geotools.graph.structure

Examples of org.geotools.graph.structure.Node


   *           3. The cost of each node should be equal to its depth.
   */
  public void test_3() {
    int k = 4;
    Object[] obj = GraphTestUtil.buildPerfectBinaryTree(builder(), k);
    final Node root = (Node)obj[0];
   
    CountingWalker walker = new CountingWalker();
    final DijkstraIterator iterator = createIterator();
    iterator.setSource((Node)obj[0]);
   
View Full Code Here


  public void test_4() {
    int k = 4;
    Object[] obj = GraphTestUtil.buildPerfectBinaryTree(builder(), k);
    Map id2node = (Map)obj[1];
   
    final Node root = (Node)obj[0];
    final Node lc = (Node)id2node.get(root.getObject().toString() + ".0");
    final Node rc = (Node)id2node.get(root.getObject().toString() + ".1");
   
    CountingWalker walker = new CountingWalker() {
      private int m_mode = 0;
     
      public int visit(Graphable element, GraphTraversal traversal) {
View Full Code Here

  public void test_5() {
    int k = 4;
    Object[] obj = GraphTestUtil.buildPerfectBinaryTree(builder(), k);
    Map id2node = (Map)obj[1];
   
    final Node root = (Node)obj[0];
    final Node lc = (Node)id2node.get(root.getObject().toString() + ".0");
    final Node rc = (Node)id2node.get(root.getObject().toString() + ".1");
   
    CountingWalker walker = new CountingWalker() {
      private int m_mode = 0;
     
      public int visit(Graphable element, GraphTraversal traversal) {
View Full Code Here

        ArrayList gotArray = new ArrayList(4);

        Iterator it = graph.getNodes().iterator();

        Node source = (Node) it.next();

        // create the path finder
        DijkstraShortestPathFinder pf = new DijkstraShortestPathFinder(
                graph, (Graphable) source, costFunction(), tcostFunction());

        pf.calculate();

        Iterator it1 = graph.getNodes().iterator();

        while (it1.hasNext()) {
            Node d = (Node) it1.next();

            Path path = pf.getPath((Graphable) d);

            gotArray.add(pf.getCost(d));
View Full Code Here

   *
   */
  public void test_1() {
    final int k = 5;
    Object[] obj = GraphTestUtil.buildPerfectBinaryTree(builder(), k);
    final Node root = (Node)obj[0];
    final Map obj2node = (Map)obj[1];   
   
    try {
    File victim = File.createTempFile( "graph", null );
      victim.deleteOnExit();

      serializer().setProperty(SerializedReaderWriter.FILENAME, victim.getAbsolutePath());
     
      serializer().write(builder().getGraph());
     
      Graph before = builder().getGraph();
      Graph after = serializer().read();
     
      //ensure same number of nodes and edges
      assertTrue(before.getNodes().size() == after.getNodes().size());
      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(
             parent.equals(parentid) && c0.equals(id+".0") && c1.equals(id+".1")
          || parent.equals(parentid) && c1.equals(id+".0") && c0.equals(id+".1")
            );
         
         
          return(0);
        }
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) {
          Node n = (Node)component;
          if (n.getID() == 0 || n.getID() == nnodes-1)
            assertTrue(n.getDegree() == 0);
          else if (n.getID() == 1 || n.getID() == nnodes-2)
            assertTrue(n.getDegree() == 1);
          else assertTrue(n.getDegree() == 2);
          
          return(0);
        }
      };
      after.visitNodes(visitor);
View Full Code Here

    assertTrue(dn != null);
    assertTrue(dn instanceof OptDirectedNode);
  }
 
  public void test_buildEdge() {
    Node n1 = m_builder.buildNode();
    Node n2 = m_builder.buildNode();
   
    DirectedEdge de = (DirectedEdge)m_builder.buildEdge(n1,n2);
   
    assertTrue(de != null);
    assertTrue(de instanceof OptDirectedEdge);
View Full Code Here

        m_visited = true;
        return(GraphTraversal.CONTINUE)
      }
    };
   
    Node n = new BasicNode();
    n.setVisited(false);
   
    SimpleGraphWalker walker = new SimpleGraphWalker(visitor);
   
    assertTrue(walker.visit(n, null) == GraphTraversal.CONTINUE);
    assertTrue(m_visited);
View Full Code Here

    pfinder.calculate();
    Path p = pfinder.getPath(ends[1]);
   
    int count = 99;
    for (Iterator itr = p.iterator(); itr.hasNext();) {
      Node n = (Node)itr.next();
      assertTrue(n.getID() == count--);
    }
  }
View Full Code Here

   * Expected 1. Path should be links from leaf to root.
   */
  public void test_2() {
    int k = 4;
    Object[] obj = GraphTestUtil.buildPerfectBinaryTree(builder(), k);
    Node root = (Node)obj[0];
    Map id2node = (Map)obj[1];
   
    DijkstraShortestPathFinder pfinder = new DijkstraShortestPathFinder(
      builder().getGraph(), root, costFunction()
    );
    pfinder.calculate();
   
    for (Iterator itr = builder().getGraph().getNodes().iterator(); itr.hasNext();) {
      Node node = (Node)itr.next();
      String id = node.getObject().toString();
     
      if (id2node.get(id + ".0") == null) {
        Path p = pfinder.getPath(node);
        assertTrue(p.size() == k+1)
    
        for (Iterator pitr = p.iterator(); pitr.hasNext();) {
          Node n = (Node)pitr.next();
          assertTrue(n.getObject().toString().equals(id));
          if (id.length() > 2) id = id.substring(0, id.length()-2);
        }   
      } 
    }
  }
View Full Code Here

TOP

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