// Copyright 2019 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-intl.numberformat.prototype.format
description: Checks handling of the compactDisplay option to the NumberFormat constructor.
locale: [de-DE]
features: [Intl.NumberFormat-unified]
---*/


const tests = [
  [
    "auto",
    "-987,00 $",
    "-0,00 $",
    "-0,00 $",
    "0,00 $",
    "0,00 $",
    "987,00 $",
  ],
  [
    "always",
    "-987,00 $",
    "-0,00 $",
    "-0,00 $",
    "+0,00 $",
    "+0,00 $",
    "+987,00 $",
  ],
  [
    "never",
    "987,00 $",
    "0,00 $",
    "0,00 $",
    "0,00 $",
    "0,00 $",
    "987,00 $",
  ],
  [
    "exceptZero",
    "-987,00 $",
    "-0,00 $",
    "-0,00 $",
    "0,00 $",
    "+0,00 $",
    "+987,00 $",
  ],
];

for (const [signDisplay, negative, negativeNearZero, negativeZero, zero, positiveNearZero, positive] of tests) {
  const nf = new Intl.NumberFormat("de-DE", { style: "currency", currency: "USD", currencySign: "accounting", signDisplay });
  assert.sameValue(nf.format(-987), negative);
  assert.sameValue(nf.format(-0.0001), negativeNearZero);
  assert.sameValue(nf.format(-0), negativeZero);
  assert.sameValue(nf.format(0), zero);
  assert.sameValue(nf.format(0.0001), positiveNearZero);
  assert.sameValue(nf.format(987), positive);
}


reportCompare(0, 0);
