Commit | Line | Data |
10d7ec48 |
1 | |
2 | BEGIN { |
3 | unless ("A" eq pack('U', 0x41)) { |
4 | print "1..0 # Unicode::Collate " . |
5 | "cannot stringify a Unicode code point\n"; |
6 | exit 0; |
7 | } |
10d7ec48 |
8 | if ($ENV{PERL_CORE}) { |
3756e7ca |
9 | chdir('t') if -d 't'; |
10 | @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); |
10d7ec48 |
11 | } |
12 | } |
13 | |
14 | use Test; |
15 | BEGIN { plan tests => 17 }; |
16 | |
17 | use strict; |
18 | use warnings; |
19 | |
20 | ok(1); |
21 | |
22 | # |
23 | # No test for Unicode::Collate is included in this .t file. |
24 | # |
25 | # UCA conformance test requires completely ignorable characters |
3756e7ca |
26 | # (including noncharacters) must be able to be sorted in code point order. |
10d7ec48 |
27 | # If not so, Unicode::Collate must not be compliant with UCA. |
3756e7ca |
28 | # |
10d7ec48 |
29 | # ~~~ CollationTest_SHIFTED.txt in CollationTest-4.0.0 |
30 | # |
31 | # 206F 0021; # ! NOMINAL DIGIT SHAPES [| | | 0251] |
32 | # D800 0021; # ! <surrogate-D800> [| | | 0251] |
33 | # DFFF 0021; # ! <surrogate-DFFF> [| | | 0251] |
34 | # FDD0 0021; # ! <noncharacter-FDD0> [| | | 0251] |
35 | # FFFB 0021; # ! INTERLINEAR ANNOTATION TERMINATOR [| | | 0251] |
36 | # FFFE 0021; # ! <noncharacter-FFFE> [| | | 0251] |
37 | # FFFF 0021; # ! <noncharacter-FFFF> [| | | 0251] |
38 | # 1D165 0021; # ! MS. Cm. STEM [| | | 0251] |
39 | # |
40 | # ~~~ CollationTest_NON_IGNORABLE.txt in CollationTest-4.0.0 |
41 | # |
42 | # 206F 0021; # ! NOMINAL DIGIT SHAPES [0251 | 0020 | 0002 |] |
43 | # D800 0021; # ! <surrogate-D800> [0251 | 0020 | 0002 |] |
44 | # DFFF 0021; # ! <surrogate-DFFF> [0251 | 0020 | 0002 |] |
45 | # FDD0 0021; # ! <noncharacter-FDD0> [0251 | 0020 | 0002 |] |
46 | # FFFB 0021; # ! INTERLINEAR ANNOTATION TERMINATOR [0251 | 0020 | 0002 |] |
47 | # FFFE 0021; # ! <noncharacter-FFFE> [0251 | 0020 | 0002 |] |
48 | # FFFF 0021; # ! <noncharacter-FFFF> [0251 | 0020 | 0002 |] |
49 | # 1D165 0021; # ! MS. Cm. STEM [0251 | 0020 | 0002 |] |
50 | # |
51 | |
52 | no warnings 'utf8'; |
53 | |
54 | ok("\x{206F}!" lt "\x{D800}!"); |
55 | ok(pack('U*', 0x206F, 0x21) lt pack('U*', 0xD800, 0x21)); |
56 | |
57 | ok("\x{D800}!" lt "\x{DFFF}!"); |
58 | ok(pack('U*', 0xD800, 0x21) lt pack('U*', 0xDFFF, 0x21)); |
59 | |
60 | ok("\x{DFFF}!" lt "\x{FDD0}!"); |
61 | ok(pack('U*', 0xDFFF, 0x21) lt pack('U*', 0xFDD0, 0x21) ); |
62 | |
63 | ok("\x{FDD0}!" lt "\x{FFFB}!"); |
64 | ok(pack('U*', 0xFDD0, 0x21) lt pack('U*', 0xFFFB, 0x21)); |
65 | |
66 | ok("\x{FFFB}!" lt "\x{FFFE}!"); |
67 | ok(pack('U*', 0xFFFB, 0x21) lt pack('U*', 0xFFFE, 0x21)); |
68 | |
69 | ok("\x{FFFE}!" lt "\x{FFFF}!"); |
70 | ok(pack('U*', 0xFFFE, 0x21) lt pack('U*', 0xFFFF, 0x21)); |
71 | |
72 | ok("\x{FFFF}!" lt "\x{1D165}!"); |
73 | ok(pack('U*', 0xFFFF, 0x21) lt pack('U*', 0x1D165, 0x21)); |
74 | |
75 | ok("\000!" lt "\x{FFFF}!"); |
76 | ok(pack('U*', 0, 0x21) lt pack('U*', 0xFFFF, 0x21)); |
77 | |