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>