v8/test/intl/number-format/rounding-increment-v3.js
Frank Tang fe53fc04d2 [intl] Implement NumberFormat v8 string input handling
Design Document:
https://docs.google.com/document/d/14zxGub6Os6nARzH6XstOZX05w2537sZo_ZSSlGjGpBM/edit#


Bug: v8:10776
Change-Id: I506eadcf70f6855a79601a7cb1ce47849cfc066a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3594118
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#81168}
2022-06-15 04:23:14 +00:00

50 lines
1.7 KiB
JavaScript

// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-intl-number-format-v3
let validRoundingIncrements = [
1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, 5000];
let invalidRoundingIncrements = [
-1, -5, 0, 3, 1001, 1100, 5500, 10000, 20000, 25000, 100000, 200000, 500005,
10000000
];
validRoundingIncrements.forEach(function(roundingIncrement) {
assertDoesNotThrow(() => {
new Intl.NumberFormat(undefined, {roundingIncrement,
minimumFractionDigits:3})});
for (mfd = 0; mfd < 20; mfd++) {
let fn = new Intl.NumberFormat(undefined, {
roundingIncrement,
minimumFractionDigits: mfd, maximumFractionDigits: mfd});
let res = fn.resolvedOptions();
assertEquals(roundingIncrement, res.roundingIncrement);
assertEquals(mfd, res.minimumFractionDigits);
assertEquals(mfd, res.maximumFractionDigits);
}
// Test
// "If roundingIncrement is not 1 and numberFormat.[[MaximumFractionDigits]]
// is not equal to numberFormat.[[MinimumFractionDigits]], throw a RangeError
// exception.
if (roundingIncrement == 1) return;
for (mnfd = 0; mnfd < 20; mnfd++) {
for (mxfd = mnfd+1; mxfd < 20; mxfd++) {
assertThrows(() => {
let nf = new Intl.NumberFormat(undefined, {
roundingIncrement, minimumFractionDigits:mnfd,
maximumFractionDigits: mxfd})},
RangeError);
}
}
});
invalidRoundingIncrements.forEach(function(roundingIncrement) {
assertThrows(() => {
let nf = new Intl.NumberFormat(undefined,
{roundingIncrement, minimumFractionDigits:3})},
RangeError);
});