changeset 1080:70019828fe4c

7901236: ResultFormat-ters should use the system locale to print results Summary: Add locale-specific handling in XSV, LaTeX, Text ResultFormatters, tests.
author shade
date Mon, 12 Jan 2015 15:22:58 +0300
parents f1ab355e5f76
children 2053f4bab01b
files jmh-core/src/main/java/org/openjdk/jmh/results/format/LaTeXResultFormat.java jmh-core/src/main/java/org/openjdk/jmh/results/format/ResultFormatFactory.java jmh-core/src/main/java/org/openjdk/jmh/results/format/XSVResultFormat.java jmh-core/src/test/java/org/openjdk/jmh/results/format/ResultFormatTest.java jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv.root jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv.ru jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv.us jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex.root jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex.ru jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex.us jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv.root jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv.ru jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv.us jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.text.root jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.text.ru jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.text.us
diffstat 19 files changed, 317 insertions(+), 126 deletions(-) [+]
line wrap: on
line diff
--- a/jmh-core/src/main/java/org/openjdk/jmh/results/format/LaTeXResultFormat.java	Mon Jan 12 13:29:55 2015 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/results/format/LaTeXResultFormat.java	Mon Jan 12 15:22:58 2015 +0300
@@ -32,7 +32,6 @@
 import java.io.PrintStream;
 import java.util.Collection;
 import java.util.HashSet;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedSet;
@@ -107,8 +106,8 @@
             out.printf("\\texttt{%s}", escape(benchParams.getParam(p)));
             out.print(" & ");
         }
-        out.printf("\\texttt{%s} & ", emit(res.getScore()));
-        out.printf("\\scriptsize $\\pm$ \\texttt{%s}", emit(res.getScoreError()));
+        out.printf("\\texttt{%5.3f} & ", res.getScore());
+        out.printf("\\scriptsize $\\pm$ \\texttt{%5.3f}", res.getScoreError());
         if (!singleUnit) {
             out.printf(" & \\texttt{%s}", res.getScoreUnit());
         }
@@ -117,10 +116,6 @@
         out.print("\n");
     }
 
-    private static String emit(double d) {
-        return String.format(Locale.ROOT, "%5.3f", d);
-    }
-
     private static String escape(String s) {
         return s.replaceAll("_", "\\\\_");
     }
--- a/jmh-core/src/main/java/org/openjdk/jmh/results/format/ResultFormatFactory.java	Mon Jan 12 13:29:55 2015 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/results/format/ResultFormatFactory.java	Mon Jan 12 15:22:58 2015 +0300
@@ -70,9 +70,6 @@
             case TEXT:
                 return new TextResultFormat(out);
             case CSV:
-                /*
-                 * CSV formatter follows the provisions of http://tools.ietf.org/html/rfc4180
-                 */
                 return new XSVResultFormat(out, ",");
             case SCSV:
                 /*
--- a/jmh-core/src/main/java/org/openjdk/jmh/results/format/XSVResultFormat.java	Mon Jan 12 13:29:55 2015 +0300
+++ b/jmh-core/src/main/java/org/openjdk/jmh/results/format/XSVResultFormat.java	Mon Jan 12 15:22:58 2015 +0300
@@ -33,6 +33,9 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 
+/*
+ * CSV formatter follows the provisions of http://tools.ietf.org/html/rfc4180
+ */
 class XSVResultFormat implements ResultFormat {
 
     private final PrintStream out;
@@ -76,7 +79,7 @@
         out.print(delimiter);
         out.print("\"Score\"");
         out.print(delimiter);
-        out.print("\"Score Error (99.9%)\"");
+        out.printf("\"Score Error (%.1f%%)\"", 99.9);
         out.print(delimiter);
         out.print("\"Unit\"");
         for (String k : params) {
@@ -95,13 +98,13 @@
         out.print(benchmarkParams.getMode().shortLabel());
         out.print("\"");
         out.print(delimiter);
-        out.print(String.valueOf(benchmarkParams.getThreads()));
+        out.print(emit(benchmarkParams.getThreads()));
         out.print(delimiter);
-        out.print(String.valueOf(result.getSampleCount()));
+        out.print(emit(result.getSampleCount()));
         out.print(delimiter);
-        out.print(String.valueOf(result.getScore()));
+        out.print(emit(result.getScore()));
         out.print(delimiter);
-        out.print(String.valueOf(result.getScoreError()));
+        out.print(emit(result.getScoreError()));
         out.print(delimiter);
         out.print("\"");
         out.print(result.getScoreUnit());
@@ -109,15 +112,29 @@
 
         for (String p : params) {
             out.print(delimiter);
-            out.print("\"");
             String v = benchmarkParams.getParam(p);
             if (v != null) {
-                out.print(v);
+                out.print(emit(v));
             }
-            out.print("\"");
         }
 
         out.print("\r\n");
     }
 
+    private String emit(String v) {
+        if (v.contains(delimiter) || v.contains(" ") || v.contains("\n") || v.contains("\r") || v.contains("\"")) {
+            return "\"" + v.replaceAll("\"", "\"\"") + "\"";
+        } else {
+            return v;
+        }
+    }
+
+    private String emit(int i) {
+        return emit(String.format("%d", i));
+    }
+
+    private String emit(double d) {
+        return emit(String.format("%f", d));
+    }
+
 }
--- a/jmh-core/src/test/java/org/openjdk/jmh/results/format/ResultFormatTest.java	Mon Jan 12 13:29:55 2015 +0300
+++ b/jmh-core/src/test/java/org/openjdk/jmh/results/format/ResultFormatTest.java	Mon Jan 12 15:22:58 2015 +0300
@@ -45,10 +45,10 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.PrintStream;
-import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Locale;
 import java.util.Random;
 import java.util.TreeSet;
 import java.util.concurrent.TimeUnit;
@@ -113,85 +113,117 @@
         }
     }
 
+    public void test(ResultFormatType type, Locale locale, String suffix) throws IOException {
+        Locale prevLocale = Locale.getDefault();
+        Locale.setDefault(locale);
+
+        String actualFileName = "test." + type.toString().toLowerCase() + suffix;
+        String goldenFileName = "output-golden." + type.toString().toLowerCase() + suffix;
+
+        try {
+            String actualFile = FileUtils.tempFile(actualFileName).getAbsolutePath();
+            ResultFormatFactory.getInstance(type, actualFile).writeOut(getStub());
+            compare(actualFile, goldenFileName);
+
+            PrintStream ps = new PrintStream(actualFile);
+            ResultFormatFactory.getInstance(type, ps).writeOut(getStub());
+            ps.close();
+
+            compare(actualFile, goldenFileName);
+        } finally {
+            Locale.setDefault(prevLocale);
+        }
+    }
+
+    /*
+     * JSON has a strict format for numbers, the results should be Locale-agnostic.
+     */
+
     @Test
-    public void jsonTest() throws IOException {
-        String actualFile = FileUtils.tempFile("test").getAbsolutePath();
-
-        ResultFormatFactory.getInstance(ResultFormatType.JSON, actualFile).writeOut(getStub());
-
-        compare(actualFile, "output-golden.json");
+    public void jsonTest_ROOT() throws IOException {
+        test(ResultFormatType.JSON, Locale.ROOT, "");
     }
 
     @Test
-    public void jsonTest_Stream() throws IOException {
-        String actualFile = FileUtils.tempFile("test").getAbsolutePath();
-
-        PrintStream ps = new PrintStream(actualFile);
-        ResultFormatFactory.getInstance(ResultFormatType.JSON, ps).writeOut(getStub());
-        ps.close();
-
-        compare(actualFile, "output-golden.json");
+    public void jsonTest_US() throws IOException {
+        test(ResultFormatType.JSON, Locale.US, "");
     }
 
     @Test
-    public void csvTest() throws IOException {
-        String actualFile = FileUtils.tempFile("jmh").getAbsolutePath();
+    public void jsonTest_RU() throws IOException {
+        test(ResultFormatType.JSON, Locale.forLanguageTag("RU"), "");
+    }
 
-        ResultFormatFactory.getInstance(ResultFormatType.CSV, actualFile).writeOut(getStub());
+    /*
+     * CSV and SCSV data should conform to the Locale.
+     */
 
-        compare(actualFile, "output-golden.csv");
+    @Test
+    public void csvTest_ROOT() throws IOException {
+        test(ResultFormatType.CSV, Locale.ROOT, ".root");
     }
 
     @Test
-    public void csvTest_Stream() throws IOException {
-        String actualFile = FileUtils.tempFile("test").getAbsolutePath();
-
-        PrintStream ps = new PrintStream(actualFile);
-        ResultFormatFactory.getInstance(ResultFormatType.CSV, ps).writeOut(getStub());
-        ps.close();
-
-        compare(actualFile, "output-golden.csv");
+    public void csvTest_US() throws IOException {
+        test(ResultFormatType.CSV, Locale.US, ".us");
     }
 
     @Test
-    public void scsvTest() throws IOException {
-        String actualFile = FileUtils.tempFile("test").getAbsolutePath();
-
-        ResultFormatFactory.getInstance(ResultFormatType.SCSV, actualFile).writeOut(getStub());
-
-        compare(actualFile, "output-golden.scsv");
+    public void csvTest_RU() throws IOException {
+        test(ResultFormatType.CSV, Locale.forLanguageTag("RU"), ".ru");
     }
 
     @Test
-    public void scsvTest_Stream() throws IOException {
-        String actualFile = FileUtils.tempFile("test").getAbsolutePath();
-
-        PrintStream ps = new PrintStream(actualFile);
-        ResultFormatFactory.getInstance(ResultFormatType.SCSV, ps).writeOut(getStub());
-        ps.close();
-
-        compare(actualFile, "output-golden.scsv");
-    }
-
-
-    @Test
-    public void latexTest() throws IOException {
-        String actualFile = FileUtils.tempFile("test").getAbsolutePath();
-
-        ResultFormatFactory.getInstance(ResultFormatType.LATEX, actualFile).writeOut(getStub());
-
-        compare(actualFile, "output-golden.latex");
+    public void scsvTest_ROOT() throws IOException {
+        test(ResultFormatType.SCSV, Locale.ROOT, ".root");
     }
 
     @Test
-    public void latexTest_Stream() throws IOException {
-        String actualFile = FileUtils.tempFile("test").getAbsolutePath();
+    public void scsvTest_US() throws IOException {
+        test(ResultFormatType.SCSV, Locale.US, ".us");
+    }
 
-        PrintStream ps = new PrintStream(actualFile);
-        ResultFormatFactory.getInstance(ResultFormatType.LATEX, ps).writeOut(getStub());
-        ps.close();
+    @Test
+    public void scsvTest_RU() throws IOException {
+        test(ResultFormatType.SCSV, Locale.forLanguageTag("RU"), ".ru");
+    }
 
-        compare(actualFile, "output-golden.latex");
+    /*
+     * LaTeX output should conform to the Locale.
+     */
+
+    @Test
+    public void latexTest_ROOT() throws IOException {
+        test(ResultFormatType.LATEX, Locale.ROOT, ".root");
+    }
+
+    @Test
+    public void latexTest_US() throws IOException {
+        test(ResultFormatType.LATEX, Locale.US, ".us");
+    }
+
+    @Test
+    public void latexTest_RU() throws IOException {
+        test(ResultFormatType.LATEX, Locale.forLanguageTag("RU"), ".ru");
+    }
+
+    /*
+     * Text output should conform to the Locale.
+     */
+
+    @Test
+    public void textTest_ROOT() throws IOException {
+        test(ResultFormatType.TEXT, Locale.ROOT, ".root");
+    }
+
+    @Test
+    public void textTest_US() throws IOException {
+        test(ResultFormatType.TEXT, Locale.US, ".us");
+    }
+
+    @Test
+    public void textTest_RU() throws IOException {
+        test(ResultFormatType.TEXT, Locale.forLanguageTag("RU"), ".ru");
     }
 
 }
--- a/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv	Mon Jan 12 13:29:55 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: param0","Param: param1","Param: param2","Param: param3","Param: param4"
-"benchmark_0","thrpt",80,14,528.8571428571429,278.1419529743147,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_0:secondary1","thrpt",80,14,549.7142857142857,320.2274881224688,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_0:secondary2","thrpt",80,14,615.5,319.2095847883776,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_1","thrpt",900,1,439.0,NaN,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_1:secondary1","thrpt",900,1,953.0,NaN,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_1:secondary2","thrpt",900,1,367.0,NaN,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_2","thrpt",466,9,545.0,553.3366994253071,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_2:secondary1","thrpt",466,9,434.44444444444446,465.1825044536822,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_2:secondary2","thrpt",466,9,470.3333333333333,502.27304118350804,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_3","thrpt",968,14,417.57142857142856,362.81396705929166,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_3:secondary1","thrpt",968,14,672.2142857142857,287.98221103408406,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_3:secondary2","thrpt",968,14,560.1428571428571,289.79996145153024,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_4","thrpt",739,1,956.0,NaN,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_4:secondary1","thrpt",739,1,688.0,NaN,"ops/ms","value0","value1","value2","value3","value4"
-"benchmark_4:secondary2","thrpt",739,1,237.0,NaN,"ops/ms","value0","value1","value2","value3","value4"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv.root	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: param0","Param: param1","Param: param2","Param: param3","Param: param4"
+"benchmark_0","thrpt",80,14.000000,528.857143,278.141953,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_0:secondary1","thrpt",80,14.000000,549.714286,320.227488,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_0:secondary2","thrpt",80,14.000000,615.500000,319.209585,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1","thrpt",900,1.000000,439.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1:secondary1","thrpt",900,1.000000,953.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1:secondary2","thrpt",900,1.000000,367.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_2","thrpt",466,9.000000,545.000000,553.336699,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_2:secondary1","thrpt",466,9.000000,434.444444,465.182504,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_2:secondary2","thrpt",466,9.000000,470.333333,502.273041,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_3","thrpt",968,14.000000,417.571429,362.813967,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_3:secondary1","thrpt",968,14.000000,672.214286,287.982211,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_3:secondary2","thrpt",968,14.000000,560.142857,289.799961,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4","thrpt",739,1.000000,956.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4:secondary1","thrpt",739,1.000000,688.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4:secondary2","thrpt",739,1.000000,237.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv.ru	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+"Benchmark","Mode","Threads","Samples","Score","Score Error (99,9%)","Unit","Param: param0","Param: param1","Param: param2","Param: param3","Param: param4"
+"benchmark_0","thrpt",80,"14,000000","528,857143","278,141953","ops/ms",value0,value1,value2,value3,value4
+"benchmark_0:secondary1","thrpt",80,"14,000000","549,714286","320,227488","ops/ms",value0,value1,value2,value3,value4
+"benchmark_0:secondary2","thrpt",80,"14,000000","615,500000","319,209585","ops/ms",value0,value1,value2,value3,value4
+"benchmark_1","thrpt",900,"1,000000","439,000000",NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1:secondary1","thrpt",900,"1,000000","953,000000",NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1:secondary2","thrpt",900,"1,000000","367,000000",NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_2","thrpt",466,"9,000000","545,000000","553,336699","ops/ms",value0,value1,value2,value3,value4
+"benchmark_2:secondary1","thrpt",466,"9,000000","434,444444","465,182504","ops/ms",value0,value1,value2,value3,value4
+"benchmark_2:secondary2","thrpt",466,"9,000000","470,333333","502,273041","ops/ms",value0,value1,value2,value3,value4
+"benchmark_3","thrpt",968,"14,000000","417,571429","362,813967","ops/ms",value0,value1,value2,value3,value4
+"benchmark_3:secondary1","thrpt",968,"14,000000","672,214286","287,982211","ops/ms",value0,value1,value2,value3,value4
+"benchmark_3:secondary2","thrpt",968,"14,000000","560,142857","289,799961","ops/ms",value0,value1,value2,value3,value4
+"benchmark_4","thrpt",739,"1,000000","956,000000",NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4:secondary1","thrpt",739,"1,000000","688,000000",NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4:secondary2","thrpt",739,"1,000000","237,000000",NaN,"ops/ms",value0,value1,value2,value3,value4
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.csv.us	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+"Benchmark","Mode","Threads","Samples","Score","Score Error (99.9%)","Unit","Param: param0","Param: param1","Param: param2","Param: param3","Param: param4"
+"benchmark_0","thrpt",80,14.000000,528.857143,278.141953,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_0:secondary1","thrpt",80,14.000000,549.714286,320.227488,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_0:secondary2","thrpt",80,14.000000,615.500000,319.209585,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1","thrpt",900,1.000000,439.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1:secondary1","thrpt",900,1.000000,953.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_1:secondary2","thrpt",900,1.000000,367.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_2","thrpt",466,9.000000,545.000000,553.336699,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_2:secondary1","thrpt",466,9.000000,434.444444,465.182504,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_2:secondary2","thrpt",466,9.000000,470.333333,502.273041,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_3","thrpt",968,14.000000,417.571429,362.813967,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_3:secondary1","thrpt",968,14.000000,672.214286,287.982211,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_3:secondary2","thrpt",968,14.000000,560.142857,289.799961,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4","thrpt",739,1.000000,956.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4:secondary1","thrpt",739,1.000000,688.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
+"benchmark_4:secondary2","thrpt",739,1.000000,237.000000,NaN,"ops/ms",value0,value1,value2,value3,value4
\ No newline at end of file
--- a/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex	Mon Jan 12 13:29:55 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-\begin{tabular}{r|l|l|l|l|l|rl}
- \multicolumn{1}{c|}{\texttt{Benchmark}} & \texttt{param0} & \texttt{param1} & \texttt{param2} & \texttt{param3} & \texttt{param4} &  \multicolumn{2}{c}{\texttt{Score, ops/ms}} \\
-\hline
-\texttt{benchmark\_0} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{528.857} & \scriptsize $\pm$ \texttt{278.142} \\
-\texttt{benchmark\_0:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{549.714} & \scriptsize $\pm$ \texttt{320.227} \\
-\texttt{benchmark\_0:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{615.500} & \scriptsize $\pm$ \texttt{319.210} \\
-\texttt{benchmark\_1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{439.000} & \scriptsize $\pm$ \texttt{  NaN} \\
-\texttt{benchmark\_1:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{953.000} & \scriptsize $\pm$ \texttt{  NaN} \\
-\texttt{benchmark\_1:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{367.000} & \scriptsize $\pm$ \texttt{  NaN} \\
-\texttt{benchmark\_2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{545.000} & \scriptsize $\pm$ \texttt{553.337} \\
-\texttt{benchmark\_2:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{434.444} & \scriptsize $\pm$ \texttt{465.183} \\
-\texttt{benchmark\_2:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{470.333} & \scriptsize $\pm$ \texttt{502.273} \\
-\texttt{benchmark\_3} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{417.571} & \scriptsize $\pm$ \texttt{362.814} \\
-\texttt{benchmark\_3:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{672.214} & \scriptsize $\pm$ \texttt{287.982} \\
-\texttt{benchmark\_3:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{560.143} & \scriptsize $\pm$ \texttt{289.800} \\
-\texttt{benchmark\_4} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{956.000} & \scriptsize $\pm$ \texttt{  NaN} \\
-\texttt{benchmark\_4:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{688.000} & \scriptsize $\pm$ \texttt{  NaN} \\
-\texttt{benchmark\_4:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{237.000} & \scriptsize $\pm$ \texttt{  NaN} \\
-\end{tabular}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex.root	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,19 @@
+\begin{tabular}{r|l|l|l|l|l|rl}
+ \multicolumn{1}{c|}{\texttt{Benchmark}} & \texttt{param0} & \texttt{param1} & \texttt{param2} & \texttt{param3} & \texttt{param4} &  \multicolumn{2}{c}{\texttt{Score, ops/ms}} \\
+\hline
+\texttt{benchmark\_0} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{528.857} & \scriptsize $\pm$ \texttt{278.142} \\
+\texttt{benchmark\_0:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{549.714} & \scriptsize $\pm$ \texttt{320.227} \\
+\texttt{benchmark\_0:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{615.500} & \scriptsize $\pm$ \texttt{319.210} \\
+\texttt{benchmark\_1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{439.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_1:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{953.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_1:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{367.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{545.000} & \scriptsize $\pm$ \texttt{553.337} \\
+\texttt{benchmark\_2:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{434.444} & \scriptsize $\pm$ \texttt{465.183} \\
+\texttt{benchmark\_2:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{470.333} & \scriptsize $\pm$ \texttt{502.273} \\
+\texttt{benchmark\_3} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{417.571} & \scriptsize $\pm$ \texttt{362.814} \\
+\texttt{benchmark\_3:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{672.214} & \scriptsize $\pm$ \texttt{287.982} \\
+\texttt{benchmark\_3:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{560.143} & \scriptsize $\pm$ \texttt{289.800} \\
+\texttt{benchmark\_4} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{956.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_4:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{688.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_4:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{237.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\end{tabular}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex.ru	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,19 @@
+\begin{tabular}{r|l|l|l|l|l|rl}
+ \multicolumn{1}{c|}{\texttt{Benchmark}} & \texttt{param0} & \texttt{param1} & \texttt{param2} & \texttt{param3} & \texttt{param4} &  \multicolumn{2}{c}{\texttt{Score, ops/ms}} \\
+\hline
+\texttt{benchmark\_0} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{528,857} & \scriptsize $\pm$ \texttt{278,142} \\
+\texttt{benchmark\_0:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{549,714} & \scriptsize $\pm$ \texttt{320,227} \\
+\texttt{benchmark\_0:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{615,500} & \scriptsize $\pm$ \texttt{319,210} \\
+\texttt{benchmark\_1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{439,000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_1:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{953,000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_1:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{367,000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{545,000} & \scriptsize $\pm$ \texttt{553,337} \\
+\texttt{benchmark\_2:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{434,444} & \scriptsize $\pm$ \texttt{465,183} \\
+\texttt{benchmark\_2:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{470,333} & \scriptsize $\pm$ \texttt{502,273} \\
+\texttt{benchmark\_3} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{417,571} & \scriptsize $\pm$ \texttt{362,814} \\
+\texttt{benchmark\_3:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{672,214} & \scriptsize $\pm$ \texttt{287,982} \\
+\texttt{benchmark\_3:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{560,143} & \scriptsize $\pm$ \texttt{289,800} \\
+\texttt{benchmark\_4} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{956,000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_4:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{688,000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_4:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{237,000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\end{tabular}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.latex.us	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,19 @@
+\begin{tabular}{r|l|l|l|l|l|rl}
+ \multicolumn{1}{c|}{\texttt{Benchmark}} & \texttt{param0} & \texttt{param1} & \texttt{param2} & \texttt{param3} & \texttt{param4} &  \multicolumn{2}{c}{\texttt{Score, ops/ms}} \\
+\hline
+\texttt{benchmark\_0} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{528.857} & \scriptsize $\pm$ \texttt{278.142} \\
+\texttt{benchmark\_0:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{549.714} & \scriptsize $\pm$ \texttt{320.227} \\
+\texttt{benchmark\_0:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{615.500} & \scriptsize $\pm$ \texttt{319.210} \\
+\texttt{benchmark\_1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{439.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_1:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{953.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_1:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{367.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{545.000} & \scriptsize $\pm$ \texttt{553.337} \\
+\texttt{benchmark\_2:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{434.444} & \scriptsize $\pm$ \texttt{465.183} \\
+\texttt{benchmark\_2:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{470.333} & \scriptsize $\pm$ \texttt{502.273} \\
+\texttt{benchmark\_3} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{417.571} & \scriptsize $\pm$ \texttt{362.814} \\
+\texttt{benchmark\_3:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{672.214} & \scriptsize $\pm$ \texttt{287.982} \\
+\texttt{benchmark\_3:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{560.143} & \scriptsize $\pm$ \texttt{289.800} \\
+\texttt{benchmark\_4} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{956.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_4:secondary1} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{688.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\texttt{benchmark\_4:secondary2} & \texttt{value0} & \texttt{value1} & \texttt{value2} & \texttt{value3} & \texttt{value4} & \texttt{237.000} & \scriptsize $\pm$ \texttt{  NaN} \\
+\end{tabular}
\ No newline at end of file
--- a/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv	Mon Jan 12 13:29:55 2015 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-"Benchmark";"Mode";"Threads";"Samples";"Score";"Score Error (99.9%)";"Unit";"Param: param0";"Param: param1";"Param: param2";"Param: param3";"Param: param4"
-"benchmark_0";"thrpt";80;14;528.8571428571429;278.1419529743147;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_0:secondary1";"thrpt";80;14;549.7142857142857;320.2274881224688;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_0:secondary2";"thrpt";80;14;615.5;319.2095847883776;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_1";"thrpt";900;1;439.0;NaN;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_1:secondary1";"thrpt";900;1;953.0;NaN;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_1:secondary2";"thrpt";900;1;367.0;NaN;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_2";"thrpt";466;9;545.0;553.3366994253071;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_2:secondary1";"thrpt";466;9;434.44444444444446;465.1825044536822;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_2:secondary2";"thrpt";466;9;470.3333333333333;502.27304118350804;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_3";"thrpt";968;14;417.57142857142856;362.81396705929166;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_3:secondary1";"thrpt";968;14;672.2142857142857;287.98221103408406;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_3:secondary2";"thrpt";968;14;560.1428571428571;289.79996145153024;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_4";"thrpt";739;1;956.0;NaN;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_4:secondary1";"thrpt";739;1;688.0;NaN;"ops/ms";"value0";"value1";"value2";"value3";"value4"
-"benchmark_4:secondary2";"thrpt";739;1;237.0;NaN;"ops/ms";"value0";"value1";"value2";"value3";"value4"
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv.root	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+"Benchmark";"Mode";"Threads";"Samples";"Score";"Score Error (99.9%)";"Unit";"Param: param0";"Param: param1";"Param: param2";"Param: param3";"Param: param4"
+"benchmark_0";"thrpt";80;14.000000;528.857143;278.141953;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_0:secondary1";"thrpt";80;14.000000;549.714286;320.227488;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_0:secondary2";"thrpt";80;14.000000;615.500000;319.209585;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1";"thrpt";900;1.000000;439.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1:secondary1";"thrpt";900;1.000000;953.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1:secondary2";"thrpt";900;1.000000;367.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2";"thrpt";466;9.000000;545.000000;553.336699;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2:secondary1";"thrpt";466;9.000000;434.444444;465.182504;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2:secondary2";"thrpt";466;9.000000;470.333333;502.273041;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3";"thrpt";968;14.000000;417.571429;362.813967;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3:secondary1";"thrpt";968;14.000000;672.214286;287.982211;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3:secondary2";"thrpt";968;14.000000;560.142857;289.799961;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4";"thrpt";739;1.000000;956.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4:secondary1";"thrpt";739;1.000000;688.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4:secondary2";"thrpt";739;1.000000;237.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv.ru	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+"Benchmark";"Mode";"Threads";"Samples";"Score";"Score Error (99,9%)";"Unit";"Param: param0";"Param: param1";"Param: param2";"Param: param3";"Param: param4"
+"benchmark_0";"thrpt";80;14,000000;528,857143;278,141953;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_0:secondary1";"thrpt";80;14,000000;549,714286;320,227488;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_0:secondary2";"thrpt";80;14,000000;615,500000;319,209585;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1";"thrpt";900;1,000000;439,000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1:secondary1";"thrpt";900;1,000000;953,000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1:secondary2";"thrpt";900;1,000000;367,000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2";"thrpt";466;9,000000;545,000000;553,336699;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2:secondary1";"thrpt";466;9,000000;434,444444;465,182504;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2:secondary2";"thrpt";466;9,000000;470,333333;502,273041;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3";"thrpt";968;14,000000;417,571429;362,813967;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3:secondary1";"thrpt";968;14,000000;672,214286;287,982211;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3:secondary2";"thrpt";968;14,000000;560,142857;289,799961;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4";"thrpt";739;1,000000;956,000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4:secondary1";"thrpt";739;1,000000;688,000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4:secondary2";"thrpt";739;1,000000;237,000000;NaN;"ops/ms";value0;value1;value2;value3;value4
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.scsv.us	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+"Benchmark";"Mode";"Threads";"Samples";"Score";"Score Error (99.9%)";"Unit";"Param: param0";"Param: param1";"Param: param2";"Param: param3";"Param: param4"
+"benchmark_0";"thrpt";80;14.000000;528.857143;278.141953;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_0:secondary1";"thrpt";80;14.000000;549.714286;320.227488;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_0:secondary2";"thrpt";80;14.000000;615.500000;319.209585;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1";"thrpt";900;1.000000;439.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1:secondary1";"thrpt";900;1.000000;953.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_1:secondary2";"thrpt";900;1.000000;367.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2";"thrpt";466;9.000000;545.000000;553.336699;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2:secondary1";"thrpt";466;9.000000;434.444444;465.182504;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_2:secondary2";"thrpt";466;9.000000;470.333333;502.273041;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3";"thrpt";968;14.000000;417.571429;362.813967;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3:secondary1";"thrpt";968;14.000000;672.214286;287.982211;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_3:secondary2";"thrpt";968;14.000000;560.142857;289.799961;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4";"thrpt";739;1.000000;956.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4:secondary1";"thrpt";739;1.000000;688.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
+"benchmark_4:secondary2";"thrpt";739;1.000000;237.000000;NaN;"ops/ms";value0;value1;value2;value3;value4
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.text.root	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+Benchmark                 (param0)  (param1)  (param2)  (param3)  (param4)   Mode  Samples    Score     Error   Units
+benchmark_0                 value0    value1    value2    value3    value4  thrpt       14  528.857 ± 278.142  ops/ms
+benchmark_0:secondary1      value0    value1    value2    value3    value4  thrpt       14  549.714 ± 320.227  ops/ms
+benchmark_0:secondary2      value0    value1    value2    value3    value4  thrpt       14  615.500 ± 319.210  ops/ms
+benchmark_1                 value0    value1    value2    value3    value4  thrpt        1  439.000 ±     NaN  ops/ms
+benchmark_1:secondary1      value0    value1    value2    value3    value4  thrpt        1  953.000 ±     NaN  ops/ms
+benchmark_1:secondary2      value0    value1    value2    value3    value4  thrpt        1  367.000 ±     NaN  ops/ms
+benchmark_2                 value0    value1    value2    value3    value4  thrpt        9  545.000 ± 553.337  ops/ms
+benchmark_2:secondary1      value0    value1    value2    value3    value4  thrpt        9  434.444 ± 465.183  ops/ms
+benchmark_2:secondary2      value0    value1    value2    value3    value4  thrpt        9  470.333 ± 502.273  ops/ms
+benchmark_3                 value0    value1    value2    value3    value4  thrpt       14  417.571 ± 362.814  ops/ms
+benchmark_3:secondary1      value0    value1    value2    value3    value4  thrpt       14  672.214 ± 287.982  ops/ms
+benchmark_3:secondary2      value0    value1    value2    value3    value4  thrpt       14  560.143 ± 289.800  ops/ms
+benchmark_4                 value0    value1    value2    value3    value4  thrpt        1  956.000 ±     NaN  ops/ms
+benchmark_4:secondary1      value0    value1    value2    value3    value4  thrpt        1  688.000 ±     NaN  ops/ms
+benchmark_4:secondary2      value0    value1    value2    value3    value4  thrpt        1  237.000 ±     NaN  ops/ms
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.text.ru	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+Benchmark                 (param0)  (param1)  (param2)  (param3)  (param4)   Mode  Samples    Score     Error   Units
+benchmark_0                 value0    value1    value2    value3    value4  thrpt       14  528,857 ± 278,142  ops/ms
+benchmark_0:secondary1      value0    value1    value2    value3    value4  thrpt       14  549,714 ± 320,227  ops/ms
+benchmark_0:secondary2      value0    value1    value2    value3    value4  thrpt       14  615,500 ± 319,210  ops/ms
+benchmark_1                 value0    value1    value2    value3    value4  thrpt        1  439,000 ±     NaN  ops/ms
+benchmark_1:secondary1      value0    value1    value2    value3    value4  thrpt        1  953,000 ±     NaN  ops/ms
+benchmark_1:secondary2      value0    value1    value2    value3    value4  thrpt        1  367,000 ±     NaN  ops/ms
+benchmark_2                 value0    value1    value2    value3    value4  thrpt        9  545,000 ± 553,337  ops/ms
+benchmark_2:secondary1      value0    value1    value2    value3    value4  thrpt        9  434,444 ± 465,183  ops/ms
+benchmark_2:secondary2      value0    value1    value2    value3    value4  thrpt        9  470,333 ± 502,273  ops/ms
+benchmark_3                 value0    value1    value2    value3    value4  thrpt       14  417,571 ± 362,814  ops/ms
+benchmark_3:secondary1      value0    value1    value2    value3    value4  thrpt       14  672,214 ± 287,982  ops/ms
+benchmark_3:secondary2      value0    value1    value2    value3    value4  thrpt       14  560,143 ± 289,800  ops/ms
+benchmark_4                 value0    value1    value2    value3    value4  thrpt        1  956,000 ±     NaN  ops/ms
+benchmark_4:secondary1      value0    value1    value2    value3    value4  thrpt        1  688,000 ±     NaN  ops/ms
+benchmark_4:secondary2      value0    value1    value2    value3    value4  thrpt        1  237,000 ±     NaN  ops/ms
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jmh-core/src/test/resources/org/openjdk/jmh/results/format/output-golden.text.us	Mon Jan 12 15:22:58 2015 +0300
@@ -0,0 +1,16 @@
+Benchmark                 (param0)  (param1)  (param2)  (param3)  (param4)   Mode  Samples    Score     Error   Units
+benchmark_0                 value0    value1    value2    value3    value4  thrpt       14  528.857 ± 278.142  ops/ms
+benchmark_0:secondary1      value0    value1    value2    value3    value4  thrpt       14  549.714 ± 320.227  ops/ms
+benchmark_0:secondary2      value0    value1    value2    value3    value4  thrpt       14  615.500 ± 319.210  ops/ms
+benchmark_1                 value0    value1    value2    value3    value4  thrpt        1  439.000 ±     NaN  ops/ms
+benchmark_1:secondary1      value0    value1    value2    value3    value4  thrpt        1  953.000 ±     NaN  ops/ms
+benchmark_1:secondary2      value0    value1    value2    value3    value4  thrpt        1  367.000 ±     NaN  ops/ms
+benchmark_2                 value0    value1    value2    value3    value4  thrpt        9  545.000 ± 553.337  ops/ms
+benchmark_2:secondary1      value0    value1    value2    value3    value4  thrpt        9  434.444 ± 465.183  ops/ms
+benchmark_2:secondary2      value0    value1    value2    value3    value4  thrpt        9  470.333 ± 502.273  ops/ms
+benchmark_3                 value0    value1    value2    value3    value4  thrpt       14  417.571 ± 362.814  ops/ms
+benchmark_3:secondary1      value0    value1    value2    value3    value4  thrpt       14  672.214 ± 287.982  ops/ms
+benchmark_3:secondary2      value0    value1    value2    value3    value4  thrpt       14  560.143 ± 289.800  ops/ms
+benchmark_4                 value0    value1    value2    value3    value4  thrpt        1  956.000 ±     NaN  ops/ms
+benchmark_4:secondary1      value0    value1    value2    value3    value4  thrpt        1  688.000 ±     NaN  ops/ms
+benchmark_4:secondary2      value0    value1    value2    value3    value4  thrpt        1  237.000 ±     NaN  ops/ms
\ No newline at end of file