/*
* @(#)GraphBenchmarkRunner.java 1.0 Oct 12, 2011
*
* Copyright 2011-2011 ETH Zurich. All Rights Reserved.
*
* This software is the proprietary information of ETH Zurich.
* Use is subject to license terms.
*
* @(#) $Id: GraphBenchmarkRunner.java 1988 2011-10-12 19:32:08Z D\michagro $
*/
package org.zoodb.test.jdo.sna;
import java.io.IOException;
/**
* Runs the graph benchmark.
*
* @author Michael Grossniklaus <grossniklaus@cs.pdx.edu>
* @version 1.0
*/
public class GraphBenchmarkRunner {
private final VersantGraphBenchmark benchmark;
public GraphBenchmarkRunner(final VersantGraphBenchmark benchmark) {
this.benchmark = benchmark;
}
public void run() throws IOException {
System.out.println("Running Graph Benchmark on database: " + this.benchmark.getName()
+ ".");
// Data Loading.
System.out.println("Data loading...");
this.benchmark.load();
// Query 1: Transitive Closure.
System.out.println("Query 1: Transitive closure...");
this.benchmark.queryOne();
// Query 2: Node Degrees.
System.out.println("Query 2: Node degrees...");
this.benchmark.queryTwo();
// Query 3: Connectedness.
System.out.println("Query 3: Connectedness...");
this.benchmark.queryThree();
// Query 4: Shortest paths.
System.out.println("Query 4: All shortest paths...");
this.benchmark.queryFour();
// Query 5: Degree Centrality.
System.out.println("Query 5: All degree centralities...");
this.benchmark.queryFive();
// Query 6: Closeness Centrality.
System.out.println("Query 6: All closeness centralities...");
this.benchmark.querySix();
// Query 7: Betweenness Centrality.
System.out.println("Query 7: All betweenness centralities...");
this.benchmark.querySeven();
// Query 8: Bridges.
System.out.println("Query 8: Find all bridges...");
this.benchmark.queryEight();
// Query 9: Average Path Length.
System.out.println("Query 9: Graph diameter and average path length...");
this.benchmark.queryNine();
// Printing Statistics.
for (final BenchmarkRun run : this.benchmark.getRuns()) {
System.out.println(run);
}
}
}