sw.println("double " + setupTimingName + " = 0;");
sw.println("double " + testTimingName + " = 0;");
Statements setupBench = genBenchTarget(beginMethod, endMethod, paramNames,
new Statement(new MethodCall(EMPTY_FUNC, null)));
Statements testBench = genBenchTarget(beginMethod, endMethod, paramNames,
new Statement(new MethodCall(method.getName(), paramNames)));
StringBuffer recordResultsCode = new StringBuffer(
"com.google.gwt.junit.client.TestResults results = getTestResults();\n" +
"com.google.gwt.junit.client.Trial trial = new com.google.gwt.junit.client.Trial();\n" +
"trial.setRunTimeMillis( " + testTimingName + " - " + setupTimingName + " );\n" +
"java.util.Map variables = trial.getVariables();\n");
for (int i = 0; i < paramNames.size(); ++i) {
String paramName = (String) paramNames.get(i);
recordResultsCode.append("variables.put( \"")
.append(paramName)
.append("\", ")
.append(paramName)
.append(".toString() );\n");
}
recordResultsCode.append("results.getTrials().add( trial )");
Statements recordCode = new Statement(recordResultsCode.toString());
Statements breakCode = new Statement( " permutationIt.skipCurrentRange()" );
setupBench = benchmark(setupBench, setupTimingName, false, null, breakCode);
testBench = benchmark(testBench, testTimingName, isBounded.value, recordCode, breakCode);
Statements testAndSetup = new StatementsList();
testAndSetup.getStatements().addAll(setupBench.getStatements());