Author: marcosperanza
Date: Sun Feb 19 21:26:12 2012
New Revision: 1291064

URL: http://svn.apache.org/viewvc?rev=1291064&view=rev
Log:
[SANDBOX-394] Check arguments

Modified:
    commons/sandbox/graph/trunk/src/changes/changes.xml
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/connectivity/DefaultConnectivityAlgorithmsSelector.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseGraph.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseMutableGraph.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryPath.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/RevertedGraph.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/scc/DefaultSccAlgorithmSelector.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/DefaultVisitSourceSelector.java
    
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/model/BaseMutableGraphTestCase.java
    
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/BoruvkaTestCase.java
    
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/KruskalTestCase.java
    
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/PrimTestCase.java
    
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/visit/VisitTestCase.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=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/changes/changes.xml (original)
+++ commons/sandbox/graph/trunk/src/changes/changes.xml Sun Feb 19 21:26:12 2012
@@ -23,6 +23,9 @@
   </properties>
   <body>
   <release version="0.1" date="201?-??-??" description="First release.">
+    <action dev="marcosperanza" type="fix" issue="SANDBOX-394">
+      Add containsEdge ad containsVertex into Graph interface
+    </action>
     <action dev="marcosperanza" type="fix" issue="SANDBOX-393">
       Add test for Spanning tree
     </action>

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java 
(original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java 
Sun Feb 19 21:26:12 2012
@@ -116,5 +116,26 @@ public interface Graph<V extends Vertex,
      * @return the set of {@link Vertex} on this Edge.
      */
     VertexPair<V> getVertices( E e );
+    
+    
+    /**
+     * Returns true if the vertex is contained into the graph
+     *
+     * <b>NOTE</b>: implementors have to take in consideration throwing a 
{@link GraphException}
+     * if an error occurs while performing that operation.
+     *
+     * @return Returns true if the vertex is contained into the graph, false 
otherwise
+     */
+    boolean containsVertex( V v );
+    
+    /**
+     * Returns true if the edge is contained into the graph
+     *
+     * <b>NOTE</b>: implementors have to take in consideration throwing a 
{@link GraphException}
+     * if an error occurs while performing that operation.
+     *
+     * @return Returns true if the edge is contained into the graph, false 
otherwise
+     */
+    boolean containsEdge( E e );
 
 }

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/connectivity/DefaultConnectivityAlgorithmsSelector.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/connectivity/DefaultConnectivityAlgorithmsSelector.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/connectivity/DefaultConnectivityAlgorithmsSelector.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/connectivity/DefaultConnectivityAlgorithmsSelector.java
 Sun Feb 19 21:26:12 2012
@@ -20,6 +20,7 @@ package org.apache.commons.graph.connect
  */
 
 import static org.apache.commons.graph.CommonsGraph.visit;
+import static org.apache.commons.graph.utils.Assertions.checkState;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -56,6 +57,7 @@ final class DefaultConnectivityAlgorithm
 
         for ( V v : includedVertices )
         {
+            checkState( graph.containsVertex( v ), "Vertex %s does not exist 
in the Graph", v );
             untouchedVertices.add( v );
         }
 

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseGraph.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseGraph.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseGraph.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseGraph.java
 Sun Feb 19 21:26:12 2012
@@ -92,10 +92,8 @@ public abstract class BaseGraph<V extend
      */
     public final Iterable<V> getConnectedVertices( V v )
     {
+        checkGraphCondition( containsVertex( v ), "Vertex %s does not exist in 
the Graph", v );
         final Set<V> adj = adjacencyList.get( v );
-
-        checkGraphCondition( adj != null, "Vertex %s does not exist in the 
Graph", v );
-
         return unmodifiableSet( adj );
     }
 
@@ -104,8 +102,8 @@ public abstract class BaseGraph<V extend
      */
     public final E getEdge( V source, V target )
     {
-        checkGraphCondition( adjacencyList.containsKey( source ), "Vertex %s 
does not exist in the Graph", source );
-        checkGraphCondition( adjacencyList.containsKey( target ), "Vertex %s 
does not exist in the Graph", target );
+        checkGraphCondition( containsVertex( source ), "Vertex %s does not 
exist in the Graph", source );
+        checkGraphCondition( containsVertex( target ), "Vertex %s does not 
exist in the Graph", target );
 
         return indexedEdges.get( new VertexPair<Vertex>( source, target ) );
     }
@@ -119,6 +117,22 @@ public abstract class BaseGraph<V extend
     }
 
     /**
+     * {@inheritDoc}
+     */
+    public boolean containsVertex( V v )
+    {
+        return adjacencyList.containsKey( v );
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public boolean containsEdge( E e )
+    {
+        return indexedVertices.containsKey( e );
+    }
+    
+    /**
      * Returns the adjacency list where stored vertex/edges.
      *
      * @return the adjacency list where stored vertex/edges.
@@ -199,5 +213,4 @@ public abstract class BaseGraph<V extend
             throw new GraphException( format( errorMessageTemplate, 
errorMessageArgs ) );
         }
     }
-
 }

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseMutableGraph.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseMutableGraph.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseMutableGraph.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/BaseMutableGraph.java
 Sun Feb 19 21:26:12 2012
@@ -46,7 +46,7 @@ public abstract class BaseMutableGraph<V
     public final void addVertex( V v )
     {
         checkGraphCondition( v != null, "Impossible to add a null Vertex to 
the Graph" );
-        checkGraphCondition( !getAdjacencyList().containsKey( v ), "Vertex 
'%s' already present in the Graph", v );
+        checkGraphCondition( !containsVertex( v ), "Vertex '%s' already 
present in the Graph", v );
 
         getAdjacencyList().put( v, new LinkedHashSet<V>() );
 
@@ -64,7 +64,7 @@ public abstract class BaseMutableGraph<V
     public final void removeVertex( V v )
     {
         checkGraphCondition( v != null, "Impossible to remove a null Vertex 
from the Graph" );
-        checkGraphCondition( getAdjacencyList().containsKey( v ), "Vertex '%s' 
not present in the Graph", v );
+        checkGraphCondition( containsVertex( v ), "Vertex '%s' not present in 
the Graph", v );
 
         for ( V tail : getAdjacencyList().get( v ) )
         {
@@ -90,8 +90,8 @@ public abstract class BaseMutableGraph<V
         checkGraphCondition( head != null, "Null head Vertex not admitted" );
         checkGraphCondition( e != null, "Impossible to add a null Edge in the 
Graph" );
         checkGraphCondition( tail != null, "Null tail Vertex not admitted" );
-        checkGraphCondition( getAdjacencyList().containsKey( head ), "Head 
Vertex '%s' not present in the Graph", head );
-        checkGraphCondition( getAdjacencyList().containsKey( tail ), "Head 
Vertex '%s' not present in the Graph", tail );
+        checkGraphCondition( containsVertex( head ), "Head Vertex '%s' not 
present in the Graph", head );
+        checkGraphCondition( containsVertex( tail ), "Head Vertex '%s' not 
present in the Graph", tail );
         checkGraphCondition( getEdge( head, tail ) == null, "Edge %s is 
already present in the Graph", e );
 
         getAllEdges().add( e );
@@ -133,10 +133,8 @@ public abstract class BaseMutableGraph<V
     public final void removeEdge( E e )
     {
         checkGraphCondition( e != null, "Impossible to remove a null Edge from 
the Graph" );
-        
+        checkGraphCondition( containsEdge( e ), "Edge '%s' not present in the 
Graph", e );
         final VertexPair<V> vertexPair = getVertices( e );
-        checkGraphCondition( vertexPair != null, "Edge '%s' not present in the 
Graph", e );
-
         decorateRemoveEdge( e );
         internalRemoveEdge( vertexPair.getHead(), e, vertexPair.getTail() );
         getAllEdges().remove( e );

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryPath.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryPath.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryPath.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/InMemoryPath.java
 Sun Feb 19 21:26:12 2012
@@ -207,6 +207,22 @@ public class InMemoryPath<V extends Vert
     /**
      * {@inheritDoc}
      */
+    public boolean containsVertex( V v )
+    {
+        return vertices.contains( v );
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public boolean containsEdge( E e )
+    {
+        return edges.contains( e );
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public int hashCode()
     {

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/RevertedGraph.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/RevertedGraph.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/RevertedGraph.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/RevertedGraph.java
 Sun Feb 19 21:26:12 2012
@@ -154,4 +154,20 @@ public final class RevertedGraph<V exten
         return directedGraph.getInbound( v );
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    public boolean containsVertex( V v )
+    {
+        return directedGraph.containsVertex( v );
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public boolean containsEdge( E e )
+    {
+        return directedGraph.containsEdge( e );
+    }
+
 }
\ No newline at end of file

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/scc/DefaultSccAlgorithmSelector.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/scc/DefaultSccAlgorithmSelector.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/scc/DefaultSccAlgorithmSelector.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/scc/DefaultSccAlgorithmSelector.java
 Sun Feb 19 21:26:12 2012
@@ -22,6 +22,7 @@ package org.apache.commons.graph.scc;
 import static java.lang.Math.min;
 import static org.apache.commons.graph.CommonsGraph.visit;
 import static org.apache.commons.graph.utils.Assertions.checkNotNull;
+import static org.apache.commons.graph.utils.Assertions.checkState;
 
 import java.util.HashMap;
 import java.util.HashSet;
@@ -60,6 +61,7 @@ public final class DefaultSccAlgorithmSe
     public Set<V> applyingKosarajuSharir( V source )
     {
         source = checkNotNull( source, "KosarajuSharir algorithm requires a 
non-null source vertex" );
+        checkState( graph.containsVertex( source ), "Vertex %s does not exist 
in the Graph", source );
 
         visit( graph ).from( source ).applyingDepthFirstSearch( new 
KosarajuSharirVisitHandler<V, E, G>( source ) );
 

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
 Sun Feb 19 21:26:12 2012
@@ -73,6 +73,7 @@ public final class DefaultSpanningTreeSo
     public SpanningTreeAlgorithmSelector<V, W, WE, G> fromSource( V source )
     {
         source = checkNotNull( source, "Spanning tree cannot be calculated 
without expressing the source vertex" );
+        checkState( graph.containsVertex( source ), "Vertex %s does not exist 
in the Graph", source );
         return new DefaultSpanningTreeAlgorithmSelector<V, W, WE, G>( graph, 
source );
     }
 
@@ -81,6 +82,9 @@ public final class DefaultSpanningTreeSo
      */
     public <OM extends OrderedMonoid<W>> SpanningTree<V, WE, W> 
applyingReverseDeleteAlgorithm( OM orderedMonoid )
     {
+        
+        checkNotNull( orderedMonoid, "The Reverse-Delete algorithm can't be 
calulated with a null monoid" );
+        
         final List<WE> sortedEdge = new ArrayList<WE>();
         final List<WE> visitedEdge = new ArrayList<WE>();
 

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java
 Sun Feb 19 21:26:12 2012
@@ -30,7 +30,6 @@ import org.apache.commons.graph.Weighted
 import org.apache.commons.graph.WeightedGraph;
 
 /**
- *
  * @param <V>
  * @param <WE>
  * @param <W>
@@ -135,4 +134,14 @@ final class ReverseDeleteGraph<V extends
         return null;
     }
 
+    public boolean containsVertex( V v )
+    {
+        return graph.containsVertex( v );
+    }
+    
+    public boolean containsEdge( WE e )
+    {
+        return graph.containsEdge( e );
+    }
+
 }

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/DefaultVisitSourceSelector.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/DefaultVisitSourceSelector.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/DefaultVisitSourceSelector.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/visit/DefaultVisitSourceSelector.java
 Sun Feb 19 21:26:12 2012
@@ -20,6 +20,7 @@ package org.apache.commons.graph.visit;
  */
 
 import static org.apache.commons.graph.utils.Assertions.checkNotNull;
+import static org.apache.commons.graph.utils.Assertions.checkState;
 
 import org.apache.commons.graph.Edge;
 import org.apache.commons.graph.Graph;
@@ -49,6 +50,7 @@ public final class DefaultVisitSourceSel
     public VisitAlgorithmsSelector<V, E, G> from( V source )
     {
         source = checkNotNull( source, "Impossible to visit input graph %s 
with null source", graph );
+        checkState( graph.containsVertex( source ), "Vertex %s does not exist 
in the Graph", source );
         return new DefaultVisitAlgorithmsSelector<V, E, G>( graph, source );
     }
 

Modified: 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/model/BaseMutableGraphTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/model/BaseMutableGraphTestCase.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/model/BaseMutableGraphTestCase.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/model/BaseMutableGraphTestCase.java
 Sun Feb 19 21:26:12 2012
@@ -89,6 +89,8 @@ public class BaseMutableGraphTestCase
         assertEquals( 1, gSimple.getInDegree( two ) );
         assertEquals( 1, gSimple.getOutDegree( one ) );
         assertEquals( 0, gSimple.getOutDegree( two ) );
+        assertFalse( gSimple.containsEdge( new BaseLabeledEdge( "Not Exist 
Edge" ) ) );
+        assertFalse( gSimple.containsVertex( new BaseLabeledVertex( "Not exist 
vertex" ) ) );
     }
 
     /**

Modified: 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/BoruvkaTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/BoruvkaTestCase.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/BoruvkaTestCase.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/BoruvkaTestCase.java
 Sun Feb 19 21:26:12 2012
@@ -20,6 +20,7 @@ package org.apache.commons.graph.spannin
  */
 
 import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.fail;
 import static org.apache.commons.graph.CommonsGraph.minimumSpanningTree;
 
 import org.apache.commons.graph.SpanningTree;
@@ -53,9 +54,30 @@ public final class BoruvkaTestCase
     @Test( expected = NullPointerException.class )
     public void testNullMonoid()
     {
+        UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double> input = null;
+        BaseLabeledVertex a = null;
+        try
+        {
+            input = new UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double>();
+            a = new BaseLabeledVertex( "A" );
+            input.addVertex( a );
+        }
+        catch ( NullPointerException e )
+        {
+            //try..catch need to avoid a possible test success even if a NPE 
is thorw during graph population
+            fail( e.getMessage() );
+        }
+
+        minimumSpanningTree( input ).fromSource( a ).applyingBoruvkaAlgorithm( 
null );
+    }
+    
+    @Test( expected = IllegalStateException.class )
+    public void testNotExistVertex()
+    {
         UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double> input =
             new UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double>();
-        minimumSpanningTree( input ).fromSource( new BaseLabeledVertex( "A" ) 
).applyingBoruvkaAlgorithm( null );
+
+        minimumSpanningTree( input ).fromSource( new BaseLabeledVertex( "NOT 
EXIST" ) );
     }
     
     @Test( expected = IllegalStateException.class )

Modified: 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/KruskalTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/KruskalTestCase.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/KruskalTestCase.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/KruskalTestCase.java
 Sun Feb 19 21:26:12 2012
@@ -20,6 +20,7 @@ package org.apache.commons.graph.spannin
  */
 
 import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.fail;
 import static org.apache.commons.graph.CommonsGraph.minimumSpanningTree;
 
 import org.apache.commons.graph.SpanningTree;
@@ -53,10 +54,30 @@ public final class KruskalTestCase
     @Test( expected = NullPointerException.class )
     public void testNullMonoid()
     {
+        UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double> input = null;
+        BaseLabeledVertex a = null;
+        try
+        {
+            input = new UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double>();
+            a = new BaseLabeledVertex( "A" );
+            input.addVertex( a );
+        }
+        catch ( NullPointerException e )
+        {
+            //try..catch need to avoid a possible test success even if a NPE 
is thorw during graph population
+            fail( e.getMessage() );
+        }
+
+        minimumSpanningTree( input ).fromSource( a ).applyingKruskalAlgorithm( 
null );
+    }
+    
+    @Test( expected = IllegalStateException.class )
+    public void testNotExistVertex()
+    {
         UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double> input =
             new UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double>();
 
-        minimumSpanningTree( input ).fromSource( new BaseLabeledVertex( "A" ) 
).applyingKruskalAlgorithm( null );
+        minimumSpanningTree( input ).fromSource( new BaseLabeledVertex( "NOT 
EXIST" ) );
     }
     
     @Test( expected = IllegalStateException.class )

Modified: 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/PrimTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/PrimTestCase.java?rev=1291064&r1=1291063&r2=1291064&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/PrimTestCase.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/spanning/PrimTestCase.java
 Sun Feb 19 21:26:12 2012
@@ -20,6 +20,7 @@ package org.apache.commons.graph.spannin
  */
 
 import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.fail;
 import static org.apache.commons.graph.CommonsGraph.minimumSpanningTree;
 
 import org.apache.commons.graph.SpanningTree;
@@ -53,10 +54,30 @@ public final class PrimTestCase
     @Test( expected = NullPointerException.class )
     public void testNullMonoid()
     {
+        UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double> input = null;
+        BaseLabeledVertex a = null;
+        try
+        {
+            input = new UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double>();
+            a = new BaseLabeledVertex( "A" );
+            input.addVertex( a );
+        }
+        catch ( NullPointerException e )
+        {
+            //try..catch need to avoid a possible test success even if a NPE 
is thorw during graph population
+            fail( e.getMessage() );
+        }
+
+        minimumSpanningTree( input ).fromSource( a ).applyingBoruvkaAlgorithm( 
null );
+    }
+    
+    @Test( expected = IllegalStateException.class )
+    public void testNotExistVertex()
+    {
         UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double> input =
             new UndirectedMutableWeightedGraph<BaseLabeledVertex, 
BaseLabeledWeightedEdge<Double>, Double>();
 
-        minimumSpanningTree( input ).fromSource( new BaseLabeledVertex( "A" ) 
).applyingPrimAlgorithm( null );
+        minimumSpanningTree( input ).fromSource( new BaseLabeledVertex( "NOT 
EXIST" ) );
     }
     
     @Test( expected = IllegalStateException.class )

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=1291064&r1=1291063&r2=1291064&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 Feb 19 21:26:12 2012
@@ -36,6 +36,24 @@ import org.junit.Test;
 public final class VisitTestCase
 {
 
+    
+    @Test( expected = IllegalStateException.class )
+    public void testNotExistVertex()
+    {
+        UndirectedMutableGraph<BaseLabeledVertex, BaseLabeledEdge> input =
+            newUndirectedMutableGraph( new 
AbstractGraphConnection<BaseLabeledVertex, BaseLabeledEdge>()
+            {
+
+                @Override
+                public void connect()
+                {
+                }
+
+            } );
+
+        visit( input ).from( new BaseLabeledVertex( "NOT EXIST" ) );
+    }
+    
     /**
      * Graph picture can be see
      * <a 
href="http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/GraphAlgor/breadthSearch.htm";>here</a>


Reply via email to