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/02/04 16:04:29 UTC
svn commit: r1240515 - in /commons/sandbox/graph/trunk/src:
changes/changes.xml
test/java/org/apache/commons/graph/flow/FordFulkersonTestCase.java
Author: simonetripodi
Date: Sat Feb 4 15:04:29 2012
New Revision: 1240515
URL: http://svn.apache.org/viewvc?rev=1240515&view=rev
Log:
[SANDBOX-384] Add test for Flow Algorithms - patch provided by Marco Speranza
Modified:
commons/sandbox/graph/trunk/src/changes/changes.xml
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/flow/FordFulkersonTestCase.java
Modified: commons/sandbox/graph/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/changes/changes.xml?rev=1240515&r1=1240514&r2=1240515&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/changes/changes.xml (original)
+++ commons/sandbox/graph/trunk/src/changes/changes.xml Sat Feb 4 15:04:29 2012
@@ -23,6 +23,9 @@
</properties>
<body>
<release version="0.1" date="201?-??-??" description="First release.">
+ <action dev="simonetripodi" type="fix" issue="SANDBOX-384" due-to="Marco Speranza">
+ Add test for Flow Algorithms
+ </action>
<action dev="simonetripodi" type="fix" issue="SANDBOX-383" due-to="Marco Speranza">
Add test for Connectivity
</action>
Modified: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/flow/FordFulkersonTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/flow/FordFulkersonTestCase.java?rev=1240515&r1=1240514&r2=1240515&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/flow/FordFulkersonTestCase.java (original)
+++ commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/flow/FordFulkersonTestCase.java Sat Feb 4 15:04:29 2012
@@ -23,6 +23,9 @@ import static org.apache.commons.graph.C
import static org.apache.commons.graph.CommonsGraph.newDirectedMutableWeightedGraph;
import static org.junit.Assert.assertEquals;
+import org.apache.commons.graph.DirectedGraph;
+import org.apache.commons.graph.Vertex;
+import org.apache.commons.graph.WeightedEdge;
import org.apache.commons.graph.builder.AbstractGraphConnection;
import org.apache.commons.graph.model.BaseLabeledVertex;
import org.apache.commons.graph.model.BaseLabeledWeightedEdge;
@@ -37,6 +40,111 @@ import org.junit.Test;
*/
public final class FordFulkersonTestCase
{
+ @Test(expected=NullPointerException.class)
+ public void testNullGraph()
+ {
+ final BaseLabeledVertex a = new BaseLabeledVertex( "A" );
+ final BaseLabeledVertex d = new BaseLabeledVertex( "D" );
+
+ findMaxFlow( (DirectedGraph<Vertex, WeightedEdge<Integer>>) null ).from( a ).to( d ).applyingFordFulkerson( new IntegerWeight() );
+ }
+
+ @Test(expected=NullPointerException.class)
+ public void testNullGraphAndVertices()
+ {
+ findMaxFlow( (DirectedGraph<Vertex, WeightedEdge<Integer>>) null ).from( null ).to( null ).applyingFordFulkerson( new IntegerWeight() );
+ }
+
+ @Test
+ public void testNotConnected()
+ {
+ final BaseLabeledVertex a = new BaseLabeledVertex( "A" );
+ final BaseLabeledVertex d = new BaseLabeledVertex( "D" );
+
+ DirectedMutableWeightedGraph<BaseLabeledVertex, BaseLabeledWeightedEdge<Integer>, Integer> graph =
+ newDirectedMutableWeightedGraph( new AbstractGraphConnection<BaseLabeledVertex, BaseLabeledWeightedEdge<Integer>>()
+ {
+
+ @Override
+ public void connect()
+ {
+ addVertex( a );
+ addVertex( new BaseLabeledVertex( "B" ) );
+ addVertex( new BaseLabeledVertex( "C" ) );
+ addVertex( d );
+
+ }
+
+ } );
+
+ // expected max flow
+ final Integer expected = 0;
+
+ // actual max flow
+ Integer actual = findMaxFlow( graph ).from( a ).to( d ).applyingFordFulkerson( new IntegerWeight() );
+
+ assertEquals( actual, expected );
+ }
+
+ @Test
+ public void testNotConnected_2()
+ {
+ final BaseLabeledVertex a = new BaseLabeledVertex( "A" );
+ final BaseLabeledVertex d = new BaseLabeledVertex( "D" );
+
+ DirectedMutableWeightedGraph<BaseLabeledVertex, BaseLabeledWeightedEdge<Integer>, Integer> graph =
+ newDirectedMutableWeightedGraph( new AbstractGraphConnection<BaseLabeledVertex, BaseLabeledWeightedEdge<Integer>>()
+ {
+
+ @Override
+ public void connect()
+ {
+ addVertex( a );
+ BaseLabeledVertex b = addVertex( new BaseLabeledVertex( "B" ) );
+ addVertex( new BaseLabeledVertex( "C" ) );
+ addVertex( d );
+ addEdge( new BaseLabeledWeightedEdge<Integer>( "A -> B", 1000 ) ).from( a ).to( b );
+
+ }
+
+ } );
+
+ // expected max flow
+ final Integer expected = 0;
+
+ // actual max flow
+ Integer actual = findMaxFlow( graph ).from( a ).to( d ).applyingFordFulkerson( new IntegerWeight() );
+
+ assertEquals( actual, expected );
+ }
+
+ @Test(expected=NullPointerException.class)
+ public void testNullVertices()
+ {
+ DirectedMutableWeightedGraph<BaseLabeledVertex, BaseLabeledWeightedEdge<Integer>, Integer> graph =
+ newDirectedMutableWeightedGraph( new AbstractGraphConnection<BaseLabeledVertex, BaseLabeledWeightedEdge<Integer>>()
+ {
+
+ @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" ) );
+
+ addEdge( new BaseLabeledWeightedEdge<Integer>( "A -> B", 1000 ) ).from( a ).to( b );
+ addEdge( new BaseLabeledWeightedEdge<Integer>( "A -> C", 1000 ) ).from( a ).to( c );
+ addEdge( new BaseLabeledWeightedEdge<Integer>( "B -> C", 1 ) ).from( b ).to( c );
+ addEdge( new BaseLabeledWeightedEdge<Integer>( "B -> D", 1000 ) ).from( b ).to( d );
+ addEdge( new BaseLabeledWeightedEdge<Integer>( "C -> D", 1000 ) ).from( c ).to( d );
+ }
+
+ } );
+
+ // actual max flow
+ findMaxFlow( graph ).from( null ).to( null ).applyingFordFulkerson( new IntegerWeight() );
+ }
@Test
public void findMaxFlowAndVerify()