[jboss-svn-commits] JBL Code SVN: r31863 - in labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark: statistic and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Feb 27 14:04:44 EST 2010


Author: ge0ffrey
Date: 2010-02-27 14:04:44 -0500 (Sat, 27 Feb 2010)
New Revision: 31863

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/statistic/BestScoreStatistic.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/SolverStatistic.java
Log:
JBRULES-2440 index file

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-02-27 17:46:23 UTC (rev 31862)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java	2010-02-27 19:04:44 UTC (rev 31863)
@@ -9,6 +9,7 @@
 import java.io.Reader;
 import java.io.Writer;
 import java.text.NumberFormat;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
@@ -26,6 +27,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.solution.Solution;
 import org.drools.planner.benchmark.statistic.BestScoreStatistic;
 import org.drools.planner.benchmark.statistic.SolverStatistic;
@@ -203,16 +205,44 @@
             }
         }
         if (solverStatisticType != SolverStatisticType.NONE) {
+            List<CharSequence> htmlFragments = new ArrayList<CharSequence>(unsolvedSolutionFileToStatisticMap.size());
             for (Map.Entry<File, SolverStatistic> entry : unsolvedSolutionFileToStatisticMap.entrySet()) {
                 File unsolvedSolutionFile = entry.getKey();
                 SolverStatistic statistic = entry.getValue();
                 String baseName = FilenameUtils.getBaseName(unsolvedSolutionFile.getName());
-                statistic.writeStatistic(solverStatisticFilesDirectory, baseName);
+                StringBuilder htmlFragment = new StringBuilder();
+                htmlFragment.append("  <h2>").append(baseName).append("</h2>");
+                htmlFragment.append(statistic.writeStatistic(solverStatisticFilesDirectory, baseName));
+                htmlFragments.add(htmlFragment);
             }
+            writeHtmlOverview(htmlFragments);
         }
         benchmarkingEnded();
     }
 
+    private void writeHtmlOverview(List<CharSequence> htmlFragments) {
+        File htmlOverviewFile = new File(solverStatisticFilesDirectory, "index.html");
+        Writer writer = null;
+        try {
+            writer = new OutputStreamWriter(new FileOutputStream(htmlOverviewFile), "utf-8");
+            writer.append("<html>\n");
+            writer.append("<head>\n");
+            writer.append("  <title>Statistic</title>\n");
+            writer.append("</head>\n");
+            writer.append("<body>\n");
+            writer.append("  <h1>Statistic ").append(solverStatisticType.toString()).append("</h1>\n");
+            for (CharSequence htmlFragment : htmlFragments) {
+                writer.append(htmlFragment);
+            }
+            writer.append("</body>\n");
+            writer.append("</html>\n");
+        } catch (IOException e) {
+            throw new IllegalArgumentException("Problem writing htmlOverviewFile: " + htmlOverviewFile, e);
+        } finally {
+            IOUtils.closeQuietly(writer);
+        }
+    }
+
     private Solution readUnsolvedSolution(XStream xStream, File unsolvedSolutionFile) {
         Solution unsolvedSolution;
         Reader reader = null;

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/BestScoreStatistic.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/BestScoreStatistic.java	2010-02-27 17:46:23 UTC (rev 31862)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/BestScoreStatistic.java	2010-02-27 19:04:44 UTC (rev 31863)
@@ -57,9 +57,11 @@
         solver.removeEventListener(bestScoreStatisticListener);
     }
 
-    public void writeStatistic(File solverStatisticFilesDirectory, String baseName) {
-        writeCsvStatistic(solverStatisticFilesDirectory, baseName);
-        writeGraphStatistic(solverStatisticFilesDirectory, baseName);
+    public CharSequence writeStatistic(File solverStatisticFilesDirectory, String baseName) {
+        StringBuilder htmlFragment = new StringBuilder();
+        htmlFragment.append(writeCsvStatistic(solverStatisticFilesDirectory, baseName));
+        htmlFragment.append(writeGraphStatistic(solverStatisticFilesDirectory, baseName));
+        return htmlFragment;
     }
 
     private List<TimeToBestScoresLine> extractTimeToBestScoresLineList() {
@@ -108,7 +110,7 @@
 
     }
 
-    private void writeCsvStatistic(File solverStatisticFilesDirectory, String baseName) {
+    private CharSequence writeCsvStatistic(File solverStatisticFilesDirectory, String baseName) {
         List<TimeToBestScoresLine> timeToBestScoresLineList = extractTimeToBestScoresLineList();
         File csvStatisticFile = new File(solverStatisticFilesDirectory, baseName + "Statistic.csv");
         Writer writer = null;
@@ -138,9 +140,10 @@
         } finally {
             IOUtils.closeQuietly(writer);
         }
+        return "  <p><a href=\"" + csvStatisticFile.getName() + "\">CVS file</a></p>";
     }
 
-    private void writeGraphStatistic(File solverStatisticFilesDirectory, String baseName) {
+    private CharSequence writeGraphStatistic(File solverStatisticFilesDirectory, String baseName) {
         XYSeriesCollection seriesCollection = new XYSeriesCollection();
         for (Map.Entry<String, BestScoreStatisticListener> listenerEntry : bestScoreStatisticListenerMap.entrySet()) {
             String configName = listenerEntry.getKey();
@@ -177,6 +180,7 @@
         } finally {
             IOUtils.closeQuietly(out);
         }
+        return "  <img src=\"" + graphStatisticFile.getName() + "\"/>";
     }
 
     private Integer extractScoreAlias(Score score) {

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/SolverStatistic.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/SolverStatistic.java	2010-02-27 17:46:23 UTC (rev 31862)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/SolverStatistic.java	2010-02-27 19:04:44 UTC (rev 31863)
@@ -14,6 +14,6 @@
 
     void removeListener(Solver solver, String configName);
 
-    void writeStatistic(File solverStatisticFilesDirectory, String baseName);
+    CharSequence writeStatistic(File solverStatisticFilesDirectory, String baseName);
 
 }



More information about the jboss-svn-commits mailing list