aboutsummaryrefslogtreecommitdiffstats
path: root/test/suite/intl402/ch10/10.3/10.3.2_CS_a.js
blob: 88e3cdb87582c15a8078102b1e734e53c06b0de7 (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
// Copyright 2012 Norbert Lindenberg. All rights reserved.
// Copyright 2012 Mozilla Corporation. All rights reserved.
// This code is governed by the license found in the LICENSE file.

/**
 * @description Tests that the function returned by Intl.Collator.prototype.compare
 *     returns 0 when comparing Strings that are considered canonically equivalent
 *     by the Unicode standard.
 * @author Norbert Lindenberg
 */

var collator = new Intl.Collator();
var pairs = [
    // example from Unicode 5.0, section 3.7, definition D70
    ["o\u0308", "ö"],
    // examples from Unicode 5.0, chapter 3.11
    [\u0323", "a\u0323\u0308"],
    ["a\u0308\u0323", "a\u0323\u0308"],
    ["ạ\u0308", "a\u0323\u0308"],
    [\u0306", "a\u0308\u0306"],
    [\u0308", "a\u0306\u0308"],
    // example from Unicode 5.0, chapter 3.12
    ["\u1111\u1171\u11B6", "퓛"],
    // examples from UTS 10, Unicode Collation Algorithm
    ["Å", "Å"],
    ["Å", "A\u030A"],
    ["x\u031B\u0323", "x\u0323\u031B"],
    ["ự", "ụ\u031B"],
    ["ự", "u\u031B\u0323"],
    ["ự", \u0323"],
    ["ự", "u\u0323\u031B"],
    // examples from UAX 15, Unicode Normalization Forms
    ["Ç", "C\u0327"],
    ["q\u0307\u0323", "q\u0323\u0307"],
    ["가", "\u1100\u1161"],
    ["Å", "A\u030A"],
    ["Ω", "Ω"],
    ["Å", "A\u030A"],
    ["ô", "o\u0302"],
    ["ṩ", "s\u0323\u0307"],
    ["ḋ\u0323", "d\u0323\u0307"],
    ["ḋ\u0323", "ḍ\u0307"],
    ["q\u0307\u0323", "q\u0323\u0307"],
    // examples involving supplementary characters from UCD NormalizationTest.txt
    ["\uD834\uDD5E", "\uD834\uDD57\uD834\uDD65"],
    ["\uD87E\uDC2B", "北"]
    
];
var i;
for (i = 0; i < pairs.length; i++) {
    var pair = pairs[i];
    if (collator.compare(pair[0], pair[1]) !== 0) {
        $ERROR("Collator.compare considers " + pair[0] + " ≠ " + pair[1] + ".");
    }
}