diff --git a/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js b/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js index 487adaea41..a2a66b0e34 100644 --- a/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js +++ b/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js @@ -1,21 +1,79 @@ // Copyright 2017 the V8 project authors. All rights reserved. +// Copyright 2020 Apple Inc. All rights reserved. // This code is governed by the license found in the LICENSE file. /*--- esid: sec-setnfdigitoptions description: > When a currency is used in Intl.NumberFormat and minimumFractionDigits is - not provided, maximumFractionDigits should be set as provided. + not provided, maximumFractionDigits should be set as provided if it is larger + than currencyDigits. ---*/ +assert.throws(RangeError, () => { + new Intl.NumberFormat('en', { + style: 'currency', + currency: 'USD', + maximumFractionDigits: 1 + }); +}); + assert.sameValue((new Intl.NumberFormat('en', { style: 'currency', currency: 'USD', - maximumFractionDigits: 1 -})).resolvedOptions().maximumFractionDigits, 1); + maximumFractionDigits: 2 +})).resolvedOptions().maximumFractionDigits, 2); + +assert.sameValue((new Intl.NumberFormat('en', { + style: 'currency', + currency: 'USD', + maximumFractionDigits: 3 +})).resolvedOptions().maximumFractionDigits, 3); + +assert.sameValue((new Intl.NumberFormat('en', { + style: 'currency', + currency: 'USD', + maximumFractionDigits: 20 +})).resolvedOptions().maximumFractionDigits, 20); + +assert.throws(RangeError, () => { + new Intl.NumberFormat('en', { + style: 'currency', + currency: 'USD', + maximumFractionDigits: 21 + }) +}); + +assert.throws(RangeError, () => { + new Intl.NumberFormat('en', { + style: 'currency', + currency: 'CLF', + maximumFractionDigits: 3 + }) +}); assert.sameValue((new Intl.NumberFormat('en', { style: 'currency', currency: 'CLF', - maximumFractionDigits: 3 -})).resolvedOptions().maximumSignificantDigits, 3); + maximumFractionDigits: 4 +})).resolvedOptions().maximumFractionDigits, 4); + +assert.sameValue((new Intl.NumberFormat('en', { + style: 'currency', + currency: 'CLF', + maximumFractionDigits: 5 +})).resolvedOptions().maximumFractionDigits, 5); + +assert.sameValue((new Intl.NumberFormat('en', { + style: 'currency', + currency: 'CLF', + maximumFractionDigits: 20 +})).resolvedOptions().maximumFractionDigits, 20); + +assert.throws(RangeError, () => { + new Intl.NumberFormat('en', { + style: 'currency', + currency: 'CLF', + maximumFractionDigits: 21 + }) +});