michael@0: // Copyright 2011-2012 Norbert Lindenberg. All rights reserved. michael@0: // Copyright 2012 Mozilla Corporation. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * @description Tests that the number of fractional digits is determined correctly for currencies. michael@0: * @author Norbert Lindenberg michael@0: */ michael@0: michael@0: // data from http://www.currency-iso.org/dl_iso_table_a1.xml, 2013-02-25 michael@0: var currencyDigits = { michael@0: AED: 2, michael@0: AFN: 2, michael@0: ALL: 2, michael@0: AMD: 2, michael@0: ANG: 2, michael@0: AOA: 2, michael@0: ARS: 2, michael@0: AUD: 2, michael@0: AWG: 2, michael@0: AZN: 2, michael@0: BAM: 2, michael@0: BBD: 2, michael@0: BDT: 2, michael@0: BGN: 2, michael@0: BHD: 3, michael@0: BIF: 0, michael@0: BMD: 2, michael@0: BND: 2, michael@0: BOB: 2, michael@0: BOV: 2, michael@0: BRL: 2, michael@0: BSD: 2, michael@0: BTN: 2, michael@0: BWP: 2, michael@0: BYR: 0, michael@0: BZD: 2, michael@0: CAD: 2, michael@0: CDF: 2, michael@0: CHE: 2, michael@0: CHF: 2, michael@0: CHW: 2, michael@0: CLF: 0, michael@0: CLP: 0, michael@0: CNY: 2, michael@0: COP: 2, michael@0: COU: 2, michael@0: CRC: 2, michael@0: CUC: 2, michael@0: CUP: 2, michael@0: CVE: 2, michael@0: CZK: 2, michael@0: DJF: 0, michael@0: DKK: 2, michael@0: DOP: 2, michael@0: DZD: 2, michael@0: EGP: 2, michael@0: ERN: 2, michael@0: ETB: 2, michael@0: EUR: 2, michael@0: FJD: 2, michael@0: FKP: 2, michael@0: GBP: 2, michael@0: GEL: 2, michael@0: GHS: 2, michael@0: GIP: 2, michael@0: GMD: 2, michael@0: GNF: 0, michael@0: GTQ: 2, michael@0: GYD: 2, michael@0: HKD: 2, michael@0: HNL: 2, michael@0: HRK: 2, michael@0: HTG: 2, michael@0: HUF: 2, michael@0: IDR: 2, michael@0: ILS: 2, michael@0: INR: 2, michael@0: IQD: 3, michael@0: IRR: 2, michael@0: ISK: 0, michael@0: JMD: 2, michael@0: JOD: 3, michael@0: JPY: 0, michael@0: KES: 2, michael@0: KGS: 2, michael@0: KHR: 2, michael@0: KMF: 0, michael@0: KPW: 2, michael@0: KRW: 0, michael@0: KWD: 3, michael@0: KYD: 2, michael@0: KZT: 2, michael@0: LAK: 2, michael@0: LBP: 2, michael@0: LKR: 2, michael@0: LRD: 2, michael@0: LSL: 2, michael@0: LTL: 2, michael@0: LVL: 2, michael@0: LYD: 3, michael@0: MAD: 2, michael@0: MDL: 2, michael@0: MGA: 2, michael@0: MKD: 2, michael@0: MMK: 2, michael@0: MNT: 2, michael@0: MOP: 2, michael@0: MRO: 2, michael@0: MUR: 2, michael@0: MVR: 2, michael@0: MWK: 2, michael@0: MXN: 2, michael@0: MXV: 2, michael@0: MYR: 2, michael@0: MZN: 2, michael@0: NAD: 2, michael@0: NGN: 2, michael@0: NIO: 2, michael@0: NOK: 2, michael@0: NPR: 2, michael@0: NZD: 2, michael@0: OMR: 3, michael@0: PAB: 2, michael@0: PEN: 2, michael@0: PGK: 2, michael@0: PHP: 2, michael@0: PKR: 2, michael@0: PLN: 2, michael@0: PYG: 0, michael@0: QAR: 2, michael@0: RON: 2, michael@0: RSD: 2, michael@0: RUB: 2, michael@0: RWF: 0, michael@0: SAR: 2, michael@0: SBD: 2, michael@0: SCR: 2, michael@0: SDG: 2, michael@0: SEK: 2, michael@0: SGD: 2, michael@0: SHP: 2, michael@0: SLL: 2, michael@0: SOS: 2, michael@0: SRD: 2, michael@0: SSP: 2, michael@0: STD: 2, michael@0: SVC: 2, michael@0: SYP: 2, michael@0: SZL: 2, michael@0: THB: 2, michael@0: TJS: 2, michael@0: TMT: 2, michael@0: TND: 3, michael@0: TOP: 2, michael@0: TRY: 2, michael@0: TTD: 2, michael@0: TWD: 2, michael@0: TZS: 2, michael@0: UAH: 2, michael@0: UGX: 0, michael@0: USD: 2, michael@0: USN: 2, michael@0: USS: 2, michael@0: UYI: 0, michael@0: UYU: 2, michael@0: UZS: 2, michael@0: VEF: 2, michael@0: VND: 0, michael@0: VUV: 0, michael@0: WST: 2, michael@0: XAF: 0, michael@0: XCD: 2, michael@0: XOF: 0, michael@0: XPF: 0, michael@0: YER: 2, michael@0: ZAR: 2, michael@0: ZMW: 2, michael@0: ZWL: 2 michael@0: }; michael@0: michael@0: Object.getOwnPropertyNames(currencyDigits).forEach(function (currency) { michael@0: var digits = currencyDigits[currency]; michael@0: format = Intl.NumberFormat([], {style: "currency", currency: currency}); michael@0: var min = format.resolvedOptions().minimumFractionDigits; michael@0: var max = format.resolvedOptions().maximumFractionDigits; michael@0: if (min !== digits) { michael@0: $ERROR("Didn't get correct minimumFractionDigits for currency " + michael@0: currency + "; expected " + digits + ", got " + min + "."); michael@0: } michael@0: if (max !== digits) { michael@0: $ERROR("Didn't get correct maximumFractionDigits for currency " + michael@0: currency + "; expected " + digits + ", got " + max + "."); michael@0: } michael@0: }); michael@0: