KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jgrapht > traverse > ClosestFirstIteratorTest


1 /* ==========================================
2  * JGraphT : a free Java graph-theory library
3  * ==========================================
4  *
5  * Project Info: http://jgrapht.sourceforge.net/
6  * Project Creator: Barak Naveh (http://sourceforge.net/users/barak_naveh)
7  *
8  * (C) Copyright 2003-2006, by Barak Naveh and Contributors.
9  *
10  * This library is free software; you can redistribute it and/or modify it
11  * under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation; either version 2.1 of the License, or
13  * (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful, but
16  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
18  * License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this library; if not, write to the Free Software Foundation,
22  * Inc.,
23  * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
24  */

25 /* -----------------------------
26  * ClosestFirstIteratorTest.java
27  * -----------------------------
28  * (C) Copyright 2003-2006, by John V. Sichi and Contributors.
29  *
30  * Original Author: John V. Sichi
31  * Contributor(s): -
32  *
33  * $Id: ClosestFirstIteratorTest.java 504 2006-07-03 02:37:26Z perfecthash $
34  *
35  * Changes
36  * -------
37  * 03-Sep-2003 : Initial revision (JVS);
38  * 29-May-2005 : Test radius support (JVS);
39  *
40  */

41 package org.jgrapht.traverse;
42
43 import org.jgrapht.*;
44 import org.jgrapht.graph.*;
45
46
47 /**
48  * Tests for ClosestFirstIterator.
49  *
50  * @author John V. Sichi
51  * @since Sep 3, 2003
52  */

53 public class ClosestFirstIteratorTest
54     extends AbstractGraphIteratorTest
55 {
56
57     //~ Methods ---------------------------------------------------------------
58

59     /**
60      * .
61      */

62     public void testRadius()
63     {
64         result = new StringBuffer JavaDoc();
65
66         DirectedGraph<String JavaDoc, DefaultEdge> graph = createDirectedGraph();
67
68         // NOTE: pick 301 as the radius because it discriminates
69
// the boundary case edge between v7 and v9
70
AbstractGraphIterator<String JavaDoc, ?> iterator =
71             new ClosestFirstIterator<String JavaDoc, DefaultEdge>(graph, "1", 301);
72
73         while (iterator.hasNext()) {
74             result.append(iterator.next());
75
76             if (iterator.hasNext()) {
77                 result.append(',');
78             }
79         }
80
81         assertEquals("1,2,3,5,6,7", result.toString());
82     }
83
84     // NOTE: the edge weights make the result deterministic
85
String JavaDoc getExpectedStr1()
86     {
87         return "1,2,3,5,6,7,9,4,8";
88     }
89
90     String JavaDoc getExpectedStr2()
91     {
92         return getExpectedStr1() + ",orphan";
93     }
94
95     AbstractGraphIterator<String JavaDoc, DefaultEdge> createIterator(
96         DirectedGraph<String JavaDoc, DefaultEdge> g,
97         String JavaDoc vertex)
98     {
99         AbstractGraphIterator<String JavaDoc, DefaultEdge> i =
100             new ClosestFirstIterator<String JavaDoc, DefaultEdge>(g, vertex);
101         i.setCrossComponentTraversal(true);
102
103         return i;
104     }
105 }
106
Popular Tags