significantDigitsOfZero.js (2002B)
1 // |reftest| skip-if(!this.hasOwnProperty("Intl")) 2 // -- test that NumberFormat correctly formats 0 with various numbers of significant digits 3 4 /* This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 7 8 var testData = [ 9 {minimumSignificantDigits: 1, maximumSignificantDigits: 1, expected: "0"}, 10 {minimumSignificantDigits: 1, maximumSignificantDigits: 2, expected: "0"}, 11 {minimumSignificantDigits: 1, maximumSignificantDigits: 3, expected: "0"}, 12 {minimumSignificantDigits: 1, maximumSignificantDigits: 4, expected: "0"}, 13 {minimumSignificantDigits: 1, maximumSignificantDigits: 5, expected: "0"}, 14 {minimumSignificantDigits: 2, maximumSignificantDigits: 2, expected: "0.0"}, 15 {minimumSignificantDigits: 2, maximumSignificantDigits: 3, expected: "0.0"}, 16 {minimumSignificantDigits: 2, maximumSignificantDigits: 4, expected: "0.0"}, 17 {minimumSignificantDigits: 2, maximumSignificantDigits: 5, expected: "0.0"}, 18 {minimumSignificantDigits: 3, maximumSignificantDigits: 3, expected: "0.00"}, 19 {minimumSignificantDigits: 3, maximumSignificantDigits: 4, expected: "0.00"}, 20 {minimumSignificantDigits: 3, maximumSignificantDigits: 5, expected: "0.00"}, 21 ]; 22 23 for (var i = 0; i < testData.length; i++) { 24 var min = testData[i].minimumSignificantDigits; 25 var max = testData[i].maximumSignificantDigits; 26 var options = {minimumSignificantDigits: min, maximumSignificantDigits: max}; 27 var format = new Intl.NumberFormat("en-US", options); 28 var actual = format.format(0); 29 var expected = testData[i].expected; 30 assertEq(actual, expected, 31 "Wrong formatted string for 0 with " + 32 "minimumSignificantDigits " + min + 33 ", maximumSignificantDigits " + max + 34 ": expected \"" + expected + 35 "\", actual \"" + actual + "\""); 36 } 37 38 reportCompare(true, true);