summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/RelativeTimeFormat/prototype/format/pl-pl-style-short.js
blob: 27a4a972d838fef0d7b3c9e9ca73e4b52e03945e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Copyright 2018 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-Intl.RelativeTimeFormat.prototype.format
description: Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
features: [Intl.RelativeTimeFormat]
locale: [pl-PL]
---*/

function always(s) {
  return {
    "many": s,
    "few": s,
    "one": s,
  }
}

// https://www.unicode.org/cldr/charts/33/summary/pl.html#1419
const units = {
  "second": always("sek."),
  "minute": always("min"),
  "hour": always("godz."),
  "day": {
    "many": "dni",
    "few": "dni",
    "one": "dzień",
  },
  "week": {
    "many": "tyg.",
    "few": "tyg.",
    "one": "tydz.",
  },
  "month": always("mies."),
  "quarter": always("kw."),
  "year": {
    "many": "lat",
    "few": "lata",
    "one": "rok",
  },
};

const rtf = new Intl.RelativeTimeFormat("pl-PL", {
  "style": "short",
});

assert.sameValue(typeof rtf.format, "function", "format should be supported");

for (const [unitArgument, expected] of Object.entries(units)) {
  assert.sameValue(rtf.format(1000, unitArgument), `za 1000 ${expected.many}`);
  assert.sameValue(rtf.format(10, unitArgument), `za 10 ${expected.many}`);
  assert.sameValue(rtf.format(2, unitArgument), `za 2 ${expected.few}`);
  assert.sameValue(rtf.format(1, unitArgument), `za 1 ${expected.one}`);
  assert.sameValue(rtf.format(0, unitArgument), `za 0 ${expected.many}`);
  assert.sameValue(rtf.format(-0, unitArgument), `0 ${expected.many} temu`);
  assert.sameValue(rtf.format(-1, unitArgument), `1 ${expected.one} temu`);
  assert.sameValue(rtf.format(-2, unitArgument), `2 ${expected.few} temu`);
  assert.sameValue(rtf.format(-10, unitArgument), `10 ${expected.many} temu`);
  assert.sameValue(rtf.format(-1000, unitArgument), `1000 ${expected.many} temu`);
}

reportCompare(0, 0);