You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2012/01/22 21:39:24 UTC

svn commit: r1234600 - /commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/visit/VisitTestCase.java

Author: simonetripodi
Date: Sun Jan 22 20:39:23 2012
New Revision: 1234600

URL: http://svn.apache.org/viewvc?rev=1234600&view=rev
Log:
VisitTestCase uses fluent APIs only

Modified:
    commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/visit/VisitTestCase.java

Modified: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/visit/VisitTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/visit/VisitTestCase.java?rev=1234600&r1=1234599&r2=1234600&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/visit/VisitTestCase.java (original)
+++ commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/visit/VisitTestCase.java Sun Jan 22 20:39:23 2012
@@ -19,6 +19,7 @@ package org.apache.commons.graph.visit;
  * under the License.
  */
 
+import static org.apache.commons.graph.CommonsGraph.newUndirectedMutableGraph;
 import static org.apache.commons.graph.CommonsGraph.on;
 import static org.junit.Assert.assertEquals;
 
@@ -26,6 +27,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.graph.Graph;
+import org.apache.commons.graph.builder.AbstractGraphConnection;
 import org.apache.commons.graph.model.BaseLabeledEdge;
 import org.apache.commons.graph.model.BaseLabeledVertex;
 import org.apache.commons.graph.model.UndirectedMutableGraph;
@@ -41,66 +43,77 @@ public final class VisitTestCase
     @Test
     public void verifyBreadthFirstSearch()
     {
-        // vertices
-
-        BaseLabeledVertex r = new BaseLabeledVertex( "r" );
-        BaseLabeledVertex s = new BaseLabeledVertex( "s" );
-        BaseLabeledVertex t = new BaseLabeledVertex( "t" );
-        BaseLabeledVertex u = new BaseLabeledVertex( "u" );
-        BaseLabeledVertex v = new BaseLabeledVertex( "v" );
-        BaseLabeledVertex w = new BaseLabeledVertex( "w" );
-        BaseLabeledVertex x = new BaseLabeledVertex( "x" );
-        BaseLabeledVertex y = new BaseLabeledVertex( "y" );
-
         // input graph
 
         UndirectedMutableGraph<BaseLabeledVertex, BaseLabeledEdge> input =
-            new UndirectedMutableGraph<BaseLabeledVertex, BaseLabeledEdge>();
-
-        input.addVertex( r );
-        input.addVertex( s );
-        input.addVertex( t );
-        input.addVertex( u );
-        input.addVertex( v );
-        input.addVertex( w );
-        input.addVertex( x );
-        input.addVertex( y );
-
-        input.addEdge( s, new BaseLabeledEdge( "s <-> r" ), r );
-        input.addEdge( s, new BaseLabeledEdge( "s <-> w" ), w );
-
-        input.addEdge( r, new BaseLabeledEdge( "r <-> v" ), v );
-
-        input.addEdge( w, new BaseLabeledEdge( "w <-> t" ), t );
-        input.addEdge( w, new BaseLabeledEdge( "w <-> x" ), x );
+        newUndirectedMutableGraph( new AbstractGraphConnection<BaseLabeledVertex, BaseLabeledEdge>()
+        {
 
-        input.addEdge( t, new BaseLabeledEdge( "t <-> u" ), u );
-        input.addEdge( t, new BaseLabeledEdge( "t <-> x" ), x );
+            @Override
+            public void connect()
+            {
+                BaseLabeledVertex r = addVertex( new BaseLabeledVertex( "r" ) );
+                BaseLabeledVertex s = addVertex( new BaseLabeledVertex( "s" ) );
+                BaseLabeledVertex t = addVertex( new BaseLabeledVertex( "t" ) );
+                BaseLabeledVertex u = addVertex( new BaseLabeledVertex( "u" ) );
+                BaseLabeledVertex v = addVertex( new BaseLabeledVertex( "v" ) );
+                BaseLabeledVertex w = addVertex( new BaseLabeledVertex( "w" ) );
+                BaseLabeledVertex x = addVertex( new BaseLabeledVertex( "x" ) );
+                BaseLabeledVertex y = addVertex( new BaseLabeledVertex( "y" ) );
+
+                addEdge( new BaseLabeledEdge( "s <-> r" ) ).from( s ).to( r );
+                addEdge( new BaseLabeledEdge( "s <-> w" ) ).from( s ).to( w );
+
+                addEdge( new BaseLabeledEdge( "r <-> v" ) ).from( r ).to( v );
+
+                addEdge( new BaseLabeledEdge( "w <-> t" ) ).from( w ).to( t );
+                addEdge( new BaseLabeledEdge( "w <-> x" ) ).from( w ).to( x );
+
+                addEdge( new BaseLabeledEdge( "t <-> u" ) ).from( t ).to( u );
+                addEdge( new BaseLabeledEdge( "t <-> x" ) ).from( t ).to( x );
+
+                addEdge( new BaseLabeledEdge( "y <-> u" ) ).from( y ).to( u );
+                addEdge( new BaseLabeledEdge( "x <-> y" ) ).from( x ).to( y );
+            }
 
-        input.addEdge( y, new BaseLabeledEdge( "y <-> u" ), u );
-        input.addEdge( x, new BaseLabeledEdge( "x <-> y" ), y );
+        } );
 
         // expected graph
 
         UndirectedMutableGraph<BaseLabeledVertex, BaseLabeledEdge> expected =
-            new UndirectedMutableGraph<BaseLabeledVertex, BaseLabeledEdge>();
-
-        for ( BaseLabeledVertex vertex : input.getVertices() )
+        newUndirectedMutableGraph( new AbstractGraphConnection<BaseLabeledVertex, BaseLabeledEdge>()
         {
-            expected.addVertex( vertex );
-        }
 
-        expected.addEdge( s, new BaseLabeledEdge( "s <-> r" ), r );
-        expected.addEdge( s, new BaseLabeledEdge( "s <-> w" ), w );
-        expected.addEdge( r, new BaseLabeledEdge( "r <-> v" ), v );
-        expected.addEdge( w, new BaseLabeledEdge( "w <-> t" ), t );
-        expected.addEdge( w, new BaseLabeledEdge( "w <-> x" ), x );
-        expected.addEdge( t, new BaseLabeledEdge( "t <-> u" ), u );
-        expected.addEdge( y, new BaseLabeledEdge( "y <-> x" ), x );
+            @Override
+            public void connect()
+            {
+                BaseLabeledVertex r = addVertex( new BaseLabeledVertex( "r" ) );
+                BaseLabeledVertex s = addVertex( new BaseLabeledVertex( "s" ) );
+                BaseLabeledVertex t = addVertex( new BaseLabeledVertex( "t" ) );
+                BaseLabeledVertex u = addVertex( new BaseLabeledVertex( "u" ) );
+                BaseLabeledVertex v = addVertex( new BaseLabeledVertex( "v" ) );
+                BaseLabeledVertex w = addVertex( new BaseLabeledVertex( "w" ) );
+                BaseLabeledVertex x = addVertex( new BaseLabeledVertex( "x" ) );
+                BaseLabeledVertex y = addVertex( new BaseLabeledVertex( "y" ) );
+
+                addEdge( new BaseLabeledEdge( "s <-> r" ) ).from( s ).to( r );
+                addEdge( new BaseLabeledEdge( "s <-> w" ) ).from( s ).to( w );
+
+                addEdge( new BaseLabeledEdge( "r <-> v" ) ).from( r ).to( v );
+
+                addEdge( new BaseLabeledEdge( "w <-> t" ) ).from( w ).to( t );
+                addEdge( new BaseLabeledEdge( "w <-> x" ) ).from( w ).to( x );
+
+                addEdge( new BaseLabeledEdge( "t <-> u" ) ).from( t ).to( u );
+
+                addEdge( new BaseLabeledEdge( "x <-> y" ) ).from( x ).to( y );
+            }
+
+        } );
 
         // actual graph
 
-        Graph<BaseLabeledVertex, BaseLabeledEdge> actual = on( input ).visit().from( s ).applyingBreadthFirstSearch();
+        Graph<BaseLabeledVertex, BaseLabeledEdge> actual = on( input ).visit().from( new BaseLabeledVertex( "s" ) ).applyingBreadthFirstSearch();
 
         // Graph<BaseLabeledVertex, BaseLabeledEdge> actual = breadthFirstSearch( input, s );
 
@@ -116,65 +129,60 @@ public final class VisitTestCase
     @Test
     public void verifyDepthFirstSearch()
     {
-        // vertices
-
-        BaseLabeledVertex a = new BaseLabeledVertex( "A" );
-        BaseLabeledVertex b = new BaseLabeledVertex( "B" );
-        BaseLabeledVertex c = new BaseLabeledVertex( "C" );
-        BaseLabeledVertex d = new BaseLabeledVertex( "D" );
-        BaseLabeledVertex e = new BaseLabeledVertex( "E" );
-        BaseLabeledVertex f = new BaseLabeledVertex( "F" );
-        BaseLabeledVertex g = new BaseLabeledVertex( "G" );
-        BaseLabeledVertex h = new BaseLabeledVertex( "H" );
-        BaseLabeledVertex s = new BaseLabeledVertex( "S" );
+        // expected node set
+        final List<BaseLabeledVertex> expected = new ArrayList<BaseLabeledVertex>();
 
         // input graph
 
         UndirectedMutableGraph<BaseLabeledVertex, BaseLabeledEdge> input =
-            new UndirectedMutableGraph<BaseLabeledVertex, BaseLabeledEdge>();
-
-        input.addVertex( a );
-        input.addVertex( b );
-        input.addVertex( c );
-        input.addVertex( d );
-        input.addVertex( e );
-        input.addVertex( f );
-        input.addVertex( g );
-        input.addVertex( h );
-        input.addVertex( s );
-
-        input.addEdge( s, new BaseLabeledEdge( "S <-> A" ), a );
-        input.addEdge( s, new BaseLabeledEdge( "S <-> B" ), b );
-
-        input.addEdge( a, new BaseLabeledEdge( "A <-> C" ), c );
-        input.addEdge( a, new BaseLabeledEdge( "A <-> D" ), d );
-
-        input.addEdge( b, new BaseLabeledEdge( "B <-> E" ), e );
-        input.addEdge( b, new BaseLabeledEdge( "B <-> F" ), f );
-
-        input.addEdge( e, new BaseLabeledEdge( "E <-> H" ), h );
-        input.addEdge( e, new BaseLabeledEdge( "E <-> G" ), g );
+        newUndirectedMutableGraph( new AbstractGraphConnection<BaseLabeledVertex, BaseLabeledEdge>()
+        {
 
-        // expected node set
+            @Override
+            public void connect()
+            {
+                BaseLabeledVertex a = addVertex( new BaseLabeledVertex( "A" ) );
+                BaseLabeledVertex b = addVertex( new BaseLabeledVertex( "B" ) );
+                BaseLabeledVertex c = addVertex( new BaseLabeledVertex( "C" ) );
+                BaseLabeledVertex d = addVertex( new BaseLabeledVertex( "D" ) );
+                BaseLabeledVertex e = addVertex( new BaseLabeledVertex( "E" ) );
+                BaseLabeledVertex f = addVertex( new BaseLabeledVertex( "F" ) );
+                BaseLabeledVertex g = addVertex( new BaseLabeledVertex( "G" ) );
+                BaseLabeledVertex h = addVertex( new BaseLabeledVertex( "H" ) );
+                BaseLabeledVertex s = addVertex( new BaseLabeledVertex( "S" ) );
+
+                addEdge( new BaseLabeledEdge( "S <-> A" ) ).from( s ).to( a );
+                addEdge( new BaseLabeledEdge( "S <-> B" ) ).from( s ).to( b );
+
+                addEdge( new BaseLabeledEdge( "A <-> C" ) ).from( a ).to( c );
+                addEdge( new BaseLabeledEdge( "A <-> D" ) ).from( a ).to( d );
+
+                addEdge( new BaseLabeledEdge( "B <-> E" ) ).from( b ).to( e );
+                addEdge( new BaseLabeledEdge( "B <-> F" ) ).from( b ).to( f );
+
+                addEdge( new BaseLabeledEdge( "E <-> H" ) ).from( e ).to( h );
+                addEdge( new BaseLabeledEdge( "E <-> G" ) ).from( e ).to( g );
+
+                // populate the expected list, order is not the same in the pic, due to Stack use
+                expected.add( s );
+                expected.add( b );
+                expected.add( f );
+                expected.add( e );
+                expected.add( g );
+                expected.add( h );
+                expected.add( a );
+                expected.add( d );
+                expected.add( c );
+            }
 
-        // order is not the same in the pic, due to Stack use
-        final List<BaseLabeledVertex> expected = new ArrayList<BaseLabeledVertex>();
-        expected.add( s );
-        expected.add( b );
-        expected.add( f );
-        expected.add( e );
-        expected.add( g );
-        expected.add( h );
-        expected.add( a );
-        expected.add( d );
-        expected.add( c );
+        } );
 
         // actual node set
 
         NodeSequenceVisitor<BaseLabeledVertex, BaseLabeledEdge> visitor =
             new NodeSequenceVisitor<BaseLabeledVertex, BaseLabeledEdge>();
 
-        on( input ).visit().from( s ).applyingDepthFirstSearch( visitor );
+        on( input ).visit().from( new BaseLabeledVertex( "S" ) ).applyingDepthFirstSearch( visitor );
 
         final List<BaseLabeledVertex> actual = visitor.getVertices();