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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Aug 23 08:08:08 EDT 2009


Author: ge0ffrey
Date: 2009-08-23 08:08:07 -0400 (Sun, 23 Aug 2009)
New Revision: 29026

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/statistic/BestSolutionStatistic.java
Log:
BestSolutionStatistic: output a standard compliant CSV file

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/statistic/BestSolutionStatistic.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/statistic/BestSolutionStatistic.java	2009-08-22 22:51:23 UTC (rev 29025)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/statistic/BestSolutionStatistic.java	2009-08-23 12:08:07 UTC (rev 29026)
@@ -45,25 +45,38 @@
     public void writeStatistic(File solverStatisticFilesDirectory, String baseName) {
         Set<String> configNameSet = bestSolutionStatisticListenerMap.keySet();
         List<TimeMillisSpendDetail> timeMillisSpendDetailList = extractTimeMillisSpendDetailList();
-        File statisticFile = new File(solverStatisticFilesDirectory, baseName + "Statistic.txt");
+        File statisticFile = new File(solverStatisticFilesDirectory, baseName + "Statistic.csv");
         Writer writer = null;
         try {
             writer = new OutputStreamWriter(new FileOutputStream(statisticFile), "utf-8");
+            writer.append("\"TimeMillisSpend\"");
+            for (String configName : configNameSet) {
+                writer.append(",\"").append(configName.replaceAll("\\\"","\\\"")).append("\"");
+            }
+            writer.append("\n");
             for (TimeMillisSpendDetail timeMillisSpendDetail : timeMillisSpendDetailList) {
                 writer.write(Long.toString(timeMillisSpendDetail.getTimeMillisSpend()));
                 for (String configName : configNameSet) {
-                    writer.append(";");
+                    writer.append(",");
                     Score score = timeMillisSpendDetail.getConfigNameToScoreMap().get(configName);
                     if (score != null) {
-                        int scoreAlias;
+                        Integer scoreAlias;
                         if (score instanceof SimpleScore) {
-                            scoreAlias = ((SimpleScore) score).getScore();
+                            SimpleScore simpleScore = (SimpleScore) score;
+                            scoreAlias = simpleScore.getScore();
                         } else if (score instanceof HardAndSoftScore) {
-                            scoreAlias = ((HardAndSoftScore) score).getSoftScore();
+                            HardAndSoftScore hardAndSoftScore = (HardAndSoftScore) score;
+                            if (hardAndSoftScore.getHardScore() == 0) {
+                                scoreAlias = hardAndSoftScore.getSoftScore();
+                            } else {
+                                scoreAlias = null;
+                            }
                         } else {
                             throw new IllegalStateException("Score class (" + score.getClass() + ") not supported.");
                         }
-                        writer.append(Integer.toString(scoreAlias));
+                        if (scoreAlias != null) {
+                            writer.append(scoreAlias.toString());
+                        }
                     }
                 }
                 writer.append("\n");



More information about the jboss-svn-commits mailing list