[jboss-svn-commits] JBL Code SVN: r33827 - labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jul 11 10:30:44 EDT 2010


Author: ge0ffrey
Date: 2010-07-11 10:30:43 -0400 (Sun, 11 Jul 2010)
New Revision: 33827

Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java
Log:
benchmarker: output table with results

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java	2010-07-11 13:51:15 UTC (rev 33826)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java	2010-07-11 14:30:43 UTC (rev 33827)
@@ -22,7 +22,6 @@
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Map;
-import java.util.HashMap;
 
 import javax.imageio.ImageIO;
 
@@ -33,6 +32,7 @@
 import org.apache.commons.io.IOUtils;
 import org.drools.planner.config.localsearch.LocalSearchSolverConfig;
 import org.drools.planner.core.Solver;
+import org.drools.planner.core.score.Score;
 import org.drools.planner.core.score.definition.ScoreDefinition;
 import org.drools.planner.core.solution.Solution;
 import org.drools.planner.benchmark.statistic.BestScoreStatistic;
@@ -263,11 +263,12 @@
             Collections.sort(solverBenchmarkList, solverBenchmarkComparator);
             Collections.reverse(solverBenchmarkList); // Best results first, worst results last
         }
-        writeBestScoreSummary();
+        writeBestScoreSummaryChart();
         // 2 lines at 80 chars per line give a max of 160 per entry
         StringBuilder htmlFragment = new StringBuilder(unsolvedSolutionFileToStatisticMap.size() * 160);
         htmlFragment.append("  <h1>Summary</h1>\n");
-        htmlFragment.append(writeBestScoreSummary());
+        htmlFragment.append(writeBestScoreSummaryChart());
+        htmlFragment.append(writeBestScoreSummaryTable());
         htmlFragment.append("  <h1>Statistic ").append(solverStatisticType.toString()).append("</h1>\n");
         for (Map.Entry<File, SolverStatistic> entry : unsolvedSolutionFileToStatisticMap.entrySet()) {
             File unsolvedSolutionFile = entry.getKey();
@@ -280,13 +281,14 @@
         writeBenchmarkResult(xStream);
     }
 
-    private CharSequence writeBestScoreSummary() {
+    private CharSequence writeBestScoreSummaryChart() {
         DefaultCategoryDataset dataset = new DefaultCategoryDataset();
         for (SolverBenchmark solverBenchmark : solverBenchmarkList) {
             ScoreDefinition scoreDefinition = solverBenchmark.getLocalSearchSolverConfig().getScoreDefinitionConfig()
                     .buildScoreDefinition();
             for (SolverBenchmarkResult result : solverBenchmark.getSolverBenchmarkResultList()) {
-                Double scoreGraphValue = scoreDefinition.translateScoreToGraphValue(result.getScore());
+                Score score = result.getScore();
+                Double scoreGraphValue = scoreDefinition.translateScoreToGraphValue(score);
                 dataset.addValue(scoreGraphValue, solverBenchmark.getName(), result.getUnsolvedSolutionFile().getName());
             }
         }
@@ -308,6 +310,27 @@
         return "  <img src=\"" + chartSummaryFile.getName() + "\"/>\n";
     }
 
+    private CharSequence writeBestScoreSummaryTable() {
+        StringBuilder htmlFragment = new StringBuilder(solverBenchmarkList.size() * 160);
+        htmlFragment.append("  <table border=\"1\">\n");
+        htmlFragment.append("    <tr><th/>");
+        for (File unsolvedSolutionFile : inheritedUnsolvedSolutionFileList) {
+            htmlFragment.append("<th>").append(unsolvedSolutionFile.getName()).append("</th>");
+        }
+        htmlFragment.append("<th>Average</th></tr>\n");
+        for (SolverBenchmark solverBenchmark : solverBenchmarkList) {
+            htmlFragment.append("    <tr><th>").append(solverBenchmark.getName()).append("</th>");
+            for (SolverBenchmarkResult result : solverBenchmark.getSolverBenchmarkResultList()) {
+                Score score = result.getScore();
+                htmlFragment.append("<td>").append(score.toString()).append("</td>");
+            }
+            htmlFragment.append("<td>").append(solverBenchmark.getAverageScore().toString()).append("</td>");
+            htmlFragment.append("</tr>\n");
+        }
+        htmlFragment.append("  </table>\n");
+        return htmlFragment.toString();
+    }
+
     private void writeHtmlOverview(CharSequence htmlFragment) {
         File htmlOverviewFile = new File(solverStatisticFilesDirectory, "index.html");
         Writer writer = null;



More information about the jboss-svn-commits mailing list