/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Test languages for which the root collation without
// script reordering is attested to be valid.
{
let locales = [
"de",
"en",
"fr",
"ga",
"id",
"it",
"lb",
"lij",
"ms",
"nl",
"pt",
"st",
"sw",
"xh",
"zu",
];
for (let locale of locales) {
let collator =
new Intl.Collator(locale, { sensitivity:
"base" });
assertEq(collator.resolvedOptions().locale, locale);
assertEq(collator.resolvedOptions().collation,
"default");
assertEq(collator.compare(
"ae",
"ä"),
1);
let eor =
new Intl.Collator(locale, { collation:
"eor", sensitivity:
"base" });
assertEq(eor.resolvedOptions().locale, locale);
assertEq(eor.resolvedOptions().collation,
"eor");
assertEq(eor.compare(
"ae",
"ä"),
1);
let emoji =
new Intl.Collator(locale, { collation:
"emoji", sensitivity:
"base" });
assertEq(emoji.resolvedOptions().locale, locale);
assertEq(emoji.resolvedOptions().collation,
"emoji");
assertEq(emoji.compare(
"ae",
"ä"),
1);
}
}
// Test some non-root Latin-script languages.
{
let locales = [
"fi",
"sv",
"da",
"no",
];
for (let locale of locales) {
let collator =
new Intl.Collator(locale, { sensitivity:
"base" });
assertEq(collator.resolvedOptions().locale, locale);
assertEq(collator.resolvedOptions().collation,
"default");
assertEq(collator.compare(
"ae",
"ä"), -
1);
let eor =
new Intl.Collator(locale, { collation:
"eor", sensitivity:
"base" });
assertEq(eor.resolvedOptions().locale, locale);
assertEq(eor.resolvedOptions().collation,
"eor");
assertEq(eor.compare(
"ae",
"ä"),
1);
// eor overrides language
let emoji =
new Intl.Collator(locale, { collation:
"emoji", sensitivity:
"base" });
assertEq(emoji.resolvedOptions().locale, locale);
assertEq(emoji.resolvedOptions().collation,
"emoji");
assertEq(emoji.compare(
"ae",
"ä"),
1);
// emoji overrides language
}
}
if (
typeof reportCompare ===
"function")
reportCompare(
0,
0,
"ok");