Bug 853706 - Added new test case for formatting 0 with significant digits. r=jwalden
authorNorbert Lindenberg <mozilladev@lindenbergsoftware.com>
Tue, 16 Jul 2013 10:40:33 -0700
changeset 138719 703acacad625b5c528b19697c6f4c3c77dd5e771
parent 138718 be7dfe6686b5d0131bbc1cd0dad3fcd6221b4f21
child 138720 463162c42d1358fb2190eb9898a136126bd86b4d
push id31101
push userjwalden@mit.edu
push dateTue, 16 Jul 2013 18:06:34 +0000
treeherdermozilla-inbound@703acacad625 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjwalden
bugs853706
milestone25.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 853706 - Added new test case for formatting 0 with significant digits. r=jwalden
js/src/tests/Intl/NumberFormat/significantDigitsOfZero.js
new file mode 100644
--- /dev/null
+++ b/js/src/tests/Intl/NumberFormat/significantDigitsOfZero.js
@@ -0,0 +1,39 @@
+// |reftest| skip-if(!this.hasOwnProperty("Intl"))
+// -- test that NumberFormat correctly formats 0 with various numbers of significant digits
+
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+var testData = [
+    {minimumSignificantDigits: 1, maximumSignificantDigits: 1, expected: "0"},
+    {minimumSignificantDigits: 1, maximumSignificantDigits: 2, expected: "0"},
+    {minimumSignificantDigits: 1, maximumSignificantDigits: 3, expected: "0"},
+    {minimumSignificantDigits: 1, maximumSignificantDigits: 4, expected: "0"},
+    {minimumSignificantDigits: 1, maximumSignificantDigits: 5, expected: "0"},
+    {minimumSignificantDigits: 2, maximumSignificantDigits: 2, expected: "0.0"},
+    {minimumSignificantDigits: 2, maximumSignificantDigits: 3, expected: "0.0"},
+    {minimumSignificantDigits: 2, maximumSignificantDigits: 4, expected: "0.0"},
+    {minimumSignificantDigits: 2, maximumSignificantDigits: 5, expected: "0.0"},
+    {minimumSignificantDigits: 3, maximumSignificantDigits: 3, expected: "0.00"},
+    {minimumSignificantDigits: 3, maximumSignificantDigits: 4, expected: "0.00"},
+    {minimumSignificantDigits: 3, maximumSignificantDigits: 5, expected: "0.00"},
+];
+
+for (var i = 0; i < testData.length; i++) {
+    var min = testData[i].minimumSignificantDigits;
+    var max = testData[i].maximumSignificantDigits;
+    var options = {minimumSignificantDigits: min, maximumSignificantDigits: max};
+    var format = new Intl.NumberFormat("en-US", options);
+    var actual = format.format(0);
+    var expected = testData[i].expected;
+    if (actual !== expected) {
+        throw new Error("Wrong formatted string for 0 with " +
+                        "minimumSignificantDigits " + min +
+                        ", maximumSignificantDigits " + max +
+                        ": expected \"" + expected +
+                        "\", actual \"" + actual + "\"");
+    }
+}
+
+reportCompare(true, true);