// Copyright 2019 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.

// Test defaults
let nf = new Intl.NumberFormat();
assertEquals(undefined, nf.resolvedOptions().currencyDisplay);

nf = new Intl.NumberFormat("en");
assertEquals(undefined, nf.resolvedOptions().currencyDisplay);

nf = new Intl.NumberFormat("en", {style: "decimal"});
assertEquals(undefined, nf.resolvedOptions().currencyDisplay);

nf = new Intl.NumberFormat("en", {style: "percent"});
assertEquals(undefined, nf.resolvedOptions().currencyDisplay);

nf = new Intl.NumberFormat("en", {style: "unit", unit: "meter"});
assertEquals(undefined, nf.resolvedOptions().currencyDisplay);

nf = new Intl.NumberFormat("en", {style: "currency", currency: "TWD"});
assertEquals("symbol", nf.resolvedOptions().currencyDisplay);

const testData = [
    ["name", "123.00 New Taiwan dollars"],
    ["code", "TWD 123.00"],
    ["symbol", "NT$123.00"],
    ["narrowSymbol", "$123.00"],  // new
];

for (const [currencyDisplay, expectation] of testData) {
  nf = new Intl.NumberFormat("en",
      {style: 'currency', currency: "TWD", currencyDisplay});
  assertEquals('currency', nf.resolvedOptions().style);
  assertEquals(currencyDisplay, nf.resolvedOptions().currencyDisplay);
  assertEquals(expectation, nf.format(123));
}
