summaryrefslogtreecommitdiff
path: root/ext/intl/uchar/tests/basic-functionality.phpt
blob: b61e1290513a119d17a171b49f0cb866cbe7f8fa (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
--TEST--
IntlChar basic functionality
--SKIPIF--
<?php if (!extension_loaded('intl')) die("skip requires ext/intl") ?>
--FILE--
<?php

function unicode_info($cp) {
  $proplist = array(
    IntlChar::PROPERTY_ALPHABETIC,
  );
  $methodList = array(
    'isUAlphabetic',
    'isUUppercase', 'isupper',
    'isULowercase', 'islower',
    'isUWhiteSpace', 'isWhitespace',
    'istitle', 'isdigit', 'isalpha', 'isalnum',
    'isxdigit', 'ispunct', 'ispunct', 'isgraph',
    'isblank', 'isdefined', 'isspace', 'iscntrl',
    'isMirrored', 'isIDStart', 'isIDPart',
    'getBlockCode', 'charName',
  );

  $ncp = IntlChar::ord($cp);
  printf("Codepoint U+%04x\n", $ncp);

  foreach($proplist as $prop) {
    printf("  hasBinaryProperty(%s): %s\n",
      IntlChar::getPropertyName($prop),
      IntlChar::hasBinaryProperty($cp, $prop) ? "true" : "false"
    );
  }
  foreach($methodList as $method) {
    echo "  $method(): ";
    var_dump(IntlChar::$method($cp));
  }
  echo "  charAge(): ", implode('.', IntlChar::charAge($cp)), "\n";
  echo "\n";
}

printf("Codepoint range: %04x-%04x\n", IntlChar::CODEPOINT_MIN, IntlChar::CODEPOINT_MAX);
$codepoints = array('P', 0xDF, 0x2603);
foreach($codepoints as $cp) {
  unicode_info($cp);
}
echo "Sample range of codepoints: U+2600-U+260F\n";
IntlChar::enumCharNames(0x2600, 0x2610, function($cp, $nc, $name) {
  printf("U+%04x %s\n", $cp, $name);
});
echo "RECYCLING SYMBOL FOR TYPE-1 PLASTICS => ";
var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
--EXPECT--
Codepoint range: 0000-10ffff
Codepoint U+0050
  hasBinaryProperty(Alphabetic): true
  isUAlphabetic(): bool(true)
  isUUppercase(): bool(true)
  isupper(): bool(true)
  isULowercase(): bool(false)
  islower(): bool(false)
  isUWhiteSpace(): bool(false)
  isWhitespace(): bool(false)
  istitle(): bool(false)
  isdigit(): bool(false)
  isalpha(): bool(true)
  isalnum(): bool(true)
  isxdigit(): bool(false)
  ispunct(): bool(false)
  ispunct(): bool(false)
  isgraph(): bool(true)
  isblank(): bool(false)
  isdefined(): bool(true)
  isspace(): bool(false)
  iscntrl(): bool(false)
  isMirrored(): bool(false)
  isIDStart(): bool(true)
  isIDPart(): bool(true)
  getBlockCode(): int(1)
  charName(): string(22) "LATIN CAPITAL LETTER P"
  charAge(): 1.1.0.0

Codepoint U+00df
  hasBinaryProperty(Alphabetic): true
  isUAlphabetic(): bool(true)
  isUUppercase(): bool(false)
  isupper(): bool(false)
  isULowercase(): bool(true)
  islower(): bool(true)
  isUWhiteSpace(): bool(false)
  isWhitespace(): bool(false)
  istitle(): bool(false)
  isdigit(): bool(false)
  isalpha(): bool(true)
  isalnum(): bool(true)
  isxdigit(): bool(false)
  ispunct(): bool(false)
  ispunct(): bool(false)
  isgraph(): bool(true)
  isblank(): bool(false)
  isdefined(): bool(true)
  isspace(): bool(false)
  iscntrl(): bool(false)
  isMirrored(): bool(false)
  isIDStart(): bool(true)
  isIDPart(): bool(true)
  getBlockCode(): int(2)
  charName(): string(26) "LATIN SMALL LETTER SHARP S"
  charAge(): 1.1.0.0

Codepoint U+2603
  hasBinaryProperty(Alphabetic): false
  isUAlphabetic(): bool(false)
  isUUppercase(): bool(false)
  isupper(): bool(false)
  isULowercase(): bool(false)
  islower(): bool(false)
  isUWhiteSpace(): bool(false)
  isWhitespace(): bool(false)
  istitle(): bool(false)
  isdigit(): bool(false)
  isalpha(): bool(false)
  isalnum(): bool(false)
  isxdigit(): bool(false)
  ispunct(): bool(false)
  ispunct(): bool(false)
  isgraph(): bool(true)
  isblank(): bool(false)
  isdefined(): bool(true)
  isspace(): bool(false)
  iscntrl(): bool(false)
  isMirrored(): bool(false)
  isIDStart(): bool(false)
  isIDPart(): bool(false)
  getBlockCode(): int(55)
  charName(): string(7) "SNOWMAN"
  charAge(): 1.1.0.0

Sample range of codepoints: U+2600-U+260F
U+2600 BLACK SUN WITH RAYS
U+2601 CLOUD
U+2602 UMBRELLA
U+2603 SNOWMAN
U+2604 COMET
U+2605 BLACK STAR
U+2606 WHITE STAR
U+2607 LIGHTNING
U+2608 THUNDERSTORM
U+2609 SUN
U+260a ASCENDING NODE
U+260b DESCENDING NODE
U+260c CONJUNCTION
U+260d OPPOSITION
U+260e BLACK TELEPHONE
U+260f WHITE TELEPHONE
RECYCLING SYMBOL FOR TYPE-1 PLASTICS => int(9843)