in src/benchmarks/java/org/apache/commons/graph/shortestpath/UniVsBiDijkstraBenchmarkTestCase.java [78:155]
public static void setUp()
{
weightOperations = new DoubleWeightBaseOperations();
weightedEdges = new Mapper<BaseLabeledWeightedEdge<Double>, Double>()
{
public Double map( BaseLabeledWeightedEdge<Double> input )
{
return input.getWeight();
}
};
graph = newDirectedMutableGraph( new AbstractGraphConnection<BaseLabeledVertex, BaseLabeledWeightedEdge<Double>>()
{
Random r = new Random();
private boolean addEdge( BaseLabeledVertex src, BaseLabeledVertex dst )
{
try {
addEdge( new BaseLabeledWeightedEdge<Double>( format( "%s -> %s", src, dst ),
10.0 * r.nextDouble() + 1.0 ) ).from( src ).to( dst );
return true;
} catch (GraphException e) {
// ignore duplicate edge exceptions
return false;
}
}
public void connect()
{
vertices = new ArrayList<BaseLabeledVertex>();
for ( int i = 0; i < NODES; i++ )
{
BaseLabeledVertex v = new BaseLabeledVertex( valueOf( i ) );
addVertex( v );
vertices.add( v );
}
// form a connected graph
for ( int i = 0; i < NODES - 1; i++ )
{
addEdge( vertices.get( i ), vertices.get( i + 1 ) );
}
addEdge( vertices.get( NODES - 1 ) , vertices.get( 0 ) );
// we have already created #NODES edges
int maxEdges = Math.max(0, EDGES - NODES);
for ( int i = 0; i < maxEdges; i++)
{
while ( ! addEdge( vertices.get( r.nextInt(NODES) ), vertices.get( r.nextInt(NODES) ) ) ) {
// do nothing
}
}
}
} );
sourceListUni = new LinkedList<BaseLabeledVertex>();
targetListUni = new LinkedList<BaseLabeledVertex>();
sourceListBi = new LinkedList<BaseLabeledVertex>();
targetListBi = new LinkedList<BaseLabeledVertex>();
Random r = new Random();
for ( int i = 0; i < 15; i++ )
{
BaseLabeledVertex s = vertices.get( r.nextInt( vertices.size() ) );
sourceListUni.add( s );
sourceListBi.add( s );
BaseLabeledVertex t = vertices.get( r.nextInt( vertices.size() ) );
targetListUni.add( t );
targetListBi.add( t );
}
}