Skip to content

Commit 0485bed

Browse files
committed
Add test suite for CP866 encoding
1 parent 20a404f commit 0485bed

File tree

2 files changed

+288
-0
lines changed

2 files changed

+288
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
--TEST--
2+
Exhaustive test of verification and conversion of CP866 text
3+
--SKIPIF--
4+
<?php
5+
extension_loaded('mbstring') or die('skip mbstring not available');
6+
if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
7+
?>
8+
--FILE--
9+
<?php
10+
include('encoding_tests.inc');
11+
testEncodingFromUTF16ConversionTable(__DIR__ . '/data/CP866.txt', 'CP866');
12+
?>
13+
--EXPECT--
14+
Tested CP866 -> UTF-16BE
15+
Tested UTF-16BE -> CP866

ext/mbstring/tests/data/CP866.txt

Lines changed: 273 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,273 @@
1+
#
2+
# Name: cp866_DOSCyrillicRussian to Unicode table
3+
# Unicode version: 2.0
4+
# Table version: 2.00
5+
# Table format: Format A
6+
# Date: 04/24/96
7+
8+
#
9+
# General notes: none
10+
#
11+
# Format: Three tab-separated columns
12+
# Column #1 is the cp866_DOSCyrillicRussian code (in hex)
13+
# Column #2 is the Unicode (in hex as 0xXXXX)
14+
# Column #3 is the Unicode name (follows a comment sign, '#')
15+
#
16+
# The entries are in cp866_DOSCyrillicRussian order
17+
#
18+
0x00 0x0000 #NULL
19+
0x01 0x0001 #START OF HEADING
20+
0x02 0x0002 #START OF TEXT
21+
0x03 0x0003 #END OF TEXT
22+
0x04 0x0004 #END OF TRANSMISSION
23+
0x05 0x0005 #ENQUIRY
24+
0x06 0x0006 #ACKNOWLEDGE
25+
0x07 0x0007 #BELL
26+
0x08 0x0008 #BACKSPACE
27+
0x09 0x0009 #HORIZONTAL TABULATION
28+
0x0a 0x000a #LINE FEED
29+
0x0b 0x000b #VERTICAL TABULATION
30+
0x0c 0x000c #FORM FEED
31+
0x0d 0x000d #CARRIAGE RETURN
32+
0x0e 0x000e #SHIFT OUT
33+
0x0f 0x000f #SHIFT IN
34+
0x10 0x0010 #DATA LINK ESCAPE
35+
0x11 0x0011 #DEVICE CONTROL ONE
36+
0x12 0x0012 #DEVICE CONTROL TWO
37+
0x13 0x0013 #DEVICE CONTROL THREE
38+
0x14 0x0014 #DEVICE CONTROL FOUR
39+
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
40+
0x16 0x0016 #SYNCHRONOUS IDLE
41+
0x17 0x0017 #END OF TRANSMISSION BLOCK
42+
0x18 0x0018 #CANCEL
43+
0x19 0x0019 #END OF MEDIUM
44+
0x1a 0x001a #SUBSTITUTE
45+
0x1b 0x001b #ESCAPE
46+
0x1c 0x001c #FILE SEPARATOR
47+
0x1d 0x001d #GROUP SEPARATOR
48+
0x1e 0x001e #RECORD SEPARATOR
49+
0x1f 0x001f #UNIT SEPARATOR
50+
0x20 0x0020 #SPACE
51+
0x21 0x0021 #EXCLAMATION MARK
52+
0x22 0x0022 #QUOTATION MARK
53+
0x23 0x0023 #NUMBER SIGN
54+
0x24 0x0024 #DOLLAR SIGN
55+
0x25 0x0025 #PERCENT SIGN
56+
0x26 0x0026 #AMPERSAND
57+
0x27 0x0027 #APOSTROPHE
58+
0x28 0x0028 #LEFT PARENTHESIS
59+
0x29 0x0029 #RIGHT PARENTHESIS
60+
0x2a 0x002a #ASTERISK
61+
0x2b 0x002b #PLUS SIGN
62+
0x2c 0x002c #COMMA
63+
0x2d 0x002d #HYPHEN-MINUS
64+
0x2e 0x002e #FULL STOP
65+
0x2f 0x002f #SOLIDUS
66+
0x30 0x0030 #DIGIT ZERO
67+
0x31 0x0031 #DIGIT ONE
68+
0x32 0x0032 #DIGIT TWO
69+
0x33 0x0033 #DIGIT THREE
70+
0x34 0x0034 #DIGIT FOUR
71+
0x35 0x0035 #DIGIT FIVE
72+
0x36 0x0036 #DIGIT SIX
73+
0x37 0x0037 #DIGIT SEVEN
74+
0x38 0x0038 #DIGIT EIGHT
75+
0x39 0x0039 #DIGIT NINE
76+
0x3a 0x003a #COLON
77+
0x3b 0x003b #SEMICOLON
78+
0x3c 0x003c #LESS-THAN SIGN
79+
0x3d 0x003d #EQUALS SIGN
80+
0x3e 0x003e #GREATER-THAN SIGN
81+
0x3f 0x003f #QUESTION MARK
82+
0x40 0x0040 #COMMERCIAL AT
83+
0x41 0x0041 #LATIN CAPITAL LETTER A
84+
0x42 0x0042 #LATIN CAPITAL LETTER B
85+
0x43 0x0043 #LATIN CAPITAL LETTER C
86+
0x44 0x0044 #LATIN CAPITAL LETTER D
87+
0x45 0x0045 #LATIN CAPITAL LETTER E
88+
0x46 0x0046 #LATIN CAPITAL LETTER F
89+
0x47 0x0047 #LATIN CAPITAL LETTER G
90+
0x48 0x0048 #LATIN CAPITAL LETTER H
91+
0x49 0x0049 #LATIN CAPITAL LETTER I
92+
0x4a 0x004a #LATIN CAPITAL LETTER J
93+
0x4b 0x004b #LATIN CAPITAL LETTER K
94+
0x4c 0x004c #LATIN CAPITAL LETTER L
95+
0x4d 0x004d #LATIN CAPITAL LETTER M
96+
0x4e 0x004e #LATIN CAPITAL LETTER N
97+
0x4f 0x004f #LATIN CAPITAL LETTER O
98+
0x50 0x0050 #LATIN CAPITAL LETTER P
99+
0x51 0x0051 #LATIN CAPITAL LETTER Q
100+
0x52 0x0052 #LATIN CAPITAL LETTER R
101+
0x53 0x0053 #LATIN CAPITAL LETTER S
102+
0x54 0x0054 #LATIN CAPITAL LETTER T
103+
0x55 0x0055 #LATIN CAPITAL LETTER U
104+
0x56 0x0056 #LATIN CAPITAL LETTER V
105+
0x57 0x0057 #LATIN CAPITAL LETTER W
106+
0x58 0x0058 #LATIN CAPITAL LETTER X
107+
0x59 0x0059 #LATIN CAPITAL LETTER Y
108+
0x5a 0x005a #LATIN CAPITAL LETTER Z
109+
0x5b 0x005b #LEFT SQUARE BRACKET
110+
0x5c 0x005c #REVERSE SOLIDUS
111+
0x5d 0x005d #RIGHT SQUARE BRACKET
112+
0x5e 0x005e #CIRCUMFLEX ACCENT
113+
0x5f 0x005f #LOW LINE
114+
0x60 0x0060 #GRAVE ACCENT
115+
0x61 0x0061 #LATIN SMALL LETTER A
116+
0x62 0x0062 #LATIN SMALL LETTER B
117+
0x63 0x0063 #LATIN SMALL LETTER C
118+
0x64 0x0064 #LATIN SMALL LETTER D
119+
0x65 0x0065 #LATIN SMALL LETTER E
120+
0x66 0x0066 #LATIN SMALL LETTER F
121+
0x67 0x0067 #LATIN SMALL LETTER G
122+
0x68 0x0068 #LATIN SMALL LETTER H
123+
0x69 0x0069 #LATIN SMALL LETTER I
124+
0x6a 0x006a #LATIN SMALL LETTER J
125+
0x6b 0x006b #LATIN SMALL LETTER K
126+
0x6c 0x006c #LATIN SMALL LETTER L
127+
0x6d 0x006d #LATIN SMALL LETTER M
128+
0x6e 0x006e #LATIN SMALL LETTER N
129+
0x6f 0x006f #LATIN SMALL LETTER O
130+
0x70 0x0070 #LATIN SMALL LETTER P
131+
0x71 0x0071 #LATIN SMALL LETTER Q
132+
0x72 0x0072 #LATIN SMALL LETTER R
133+
0x73 0x0073 #LATIN SMALL LETTER S
134+
0x74 0x0074 #LATIN SMALL LETTER T
135+
0x75 0x0075 #LATIN SMALL LETTER U
136+
0x76 0x0076 #LATIN SMALL LETTER V
137+
0x77 0x0077 #LATIN SMALL LETTER W
138+
0x78 0x0078 #LATIN SMALL LETTER X
139+
0x79 0x0079 #LATIN SMALL LETTER Y
140+
0x7a 0x007a #LATIN SMALL LETTER Z
141+
0x7b 0x007b #LEFT CURLY BRACKET
142+
0x7c 0x007c #VERTICAL LINE
143+
0x7d 0x007d #RIGHT CURLY BRACKET
144+
0x7e 0x007e #TILDE
145+
0x7f 0x007f #DELETE
146+
0x80 0x0410 #CYRILLIC CAPITAL LETTER A
147+
0x81 0x0411 #CYRILLIC CAPITAL LETTER BE
148+
0x82 0x0412 #CYRILLIC CAPITAL LETTER VE
149+
0x83 0x0413 #CYRILLIC CAPITAL LETTER GHE
150+
0x84 0x0414 #CYRILLIC CAPITAL LETTER DE
151+
0x85 0x0415 #CYRILLIC CAPITAL LETTER IE
152+
0x86 0x0416 #CYRILLIC CAPITAL LETTER ZHE
153+
0x87 0x0417 #CYRILLIC CAPITAL LETTER ZE
154+
0x88 0x0418 #CYRILLIC CAPITAL LETTER I
155+
0x89 0x0419 #CYRILLIC CAPITAL LETTER SHORT I
156+
0x8a 0x041a #CYRILLIC CAPITAL LETTER KA
157+
0x8b 0x041b #CYRILLIC CAPITAL LETTER EL
158+
0x8c 0x041c #CYRILLIC CAPITAL LETTER EM
159+
0x8d 0x041d #CYRILLIC CAPITAL LETTER EN
160+
0x8e 0x041e #CYRILLIC CAPITAL LETTER O
161+
0x8f 0x041f #CYRILLIC CAPITAL LETTER PE
162+
0x90 0x0420 #CYRILLIC CAPITAL LETTER ER
163+
0x91 0x0421 #CYRILLIC CAPITAL LETTER ES
164+
0x92 0x0422 #CYRILLIC CAPITAL LETTER TE
165+
0x93 0x0423 #CYRILLIC CAPITAL LETTER U
166+
0x94 0x0424 #CYRILLIC CAPITAL LETTER EF
167+
0x95 0x0425 #CYRILLIC CAPITAL LETTER HA
168+
0x96 0x0426 #CYRILLIC CAPITAL LETTER TSE
169+
0x97 0x0427 #CYRILLIC CAPITAL LETTER CHE
170+
0x98 0x0428 #CYRILLIC CAPITAL LETTER SHA
171+
0x99 0x0429 #CYRILLIC CAPITAL LETTER SHCHA
172+
0x9a 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN
173+
0x9b 0x042b #CYRILLIC CAPITAL LETTER YERU
174+
0x9c 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN
175+
0x9d 0x042d #CYRILLIC CAPITAL LETTER E
176+
0x9e 0x042e #CYRILLIC CAPITAL LETTER YU
177+
0x9f 0x042f #CYRILLIC CAPITAL LETTER YA
178+
0xa0 0x0430 #CYRILLIC SMALL LETTER A
179+
0xa1 0x0431 #CYRILLIC SMALL LETTER BE
180+
0xa2 0x0432 #CYRILLIC SMALL LETTER VE
181+
0xa3 0x0433 #CYRILLIC SMALL LETTER GHE
182+
0xa4 0x0434 #CYRILLIC SMALL LETTER DE
183+
0xa5 0x0435 #CYRILLIC SMALL LETTER IE
184+
0xa6 0x0436 #CYRILLIC SMALL LETTER ZHE
185+
0xa7 0x0437 #CYRILLIC SMALL LETTER ZE
186+
0xa8 0x0438 #CYRILLIC SMALL LETTER I
187+
0xa9 0x0439 #CYRILLIC SMALL LETTER SHORT I
188+
0xaa 0x043a #CYRILLIC SMALL LETTER KA
189+
0xab 0x043b #CYRILLIC SMALL LETTER EL
190+
0xac 0x043c #CYRILLIC SMALL LETTER EM
191+
0xad 0x043d #CYRILLIC SMALL LETTER EN
192+
0xae 0x043e #CYRILLIC SMALL LETTER O
193+
0xaf 0x043f #CYRILLIC SMALL LETTER PE
194+
0xb0 0x2591 #LIGHT SHADE
195+
0xb1 0x2592 #MEDIUM SHADE
196+
0xb2 0x2593 #DARK SHADE
197+
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
198+
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
199+
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
200+
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
201+
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
202+
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
203+
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
204+
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
205+
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
206+
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
207+
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
208+
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
209+
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
210+
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
211+
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
212+
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
213+
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
214+
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
215+
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
216+
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
217+
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
218+
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
219+
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
220+
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
221+
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
222+
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
223+
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
224+
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
225+
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
226+
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
227+
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
228+
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
229+
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
230+
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
231+
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
232+
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
233+
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
234+
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
235+
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
236+
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
237+
0xdb 0x2588 #FULL BLOCK
238+
0xdc 0x2584 #LOWER HALF BLOCK
239+
0xdd 0x258c #LEFT HALF BLOCK
240+
0xde 0x2590 #RIGHT HALF BLOCK
241+
0xdf 0x2580 #UPPER HALF BLOCK
242+
0xe0 0x0440 #CYRILLIC SMALL LETTER ER
243+
0xe1 0x0441 #CYRILLIC SMALL LETTER ES
244+
0xe2 0x0442 #CYRILLIC SMALL LETTER TE
245+
0xe3 0x0443 #CYRILLIC SMALL LETTER U
246+
0xe4 0x0444 #CYRILLIC SMALL LETTER EF
247+
0xe5 0x0445 #CYRILLIC SMALL LETTER HA
248+
0xe6 0x0446 #CYRILLIC SMALL LETTER TSE
249+
0xe7 0x0447 #CYRILLIC SMALL LETTER CHE
250+
0xe8 0x0448 #CYRILLIC SMALL LETTER SHA
251+
0xe9 0x0449 #CYRILLIC SMALL LETTER SHCHA
252+
0xea 0x044a #CYRILLIC SMALL LETTER HARD SIGN
253+
0xeb 0x044b #CYRILLIC SMALL LETTER YERU
254+
0xec 0x044c #CYRILLIC SMALL LETTER SOFT SIGN
255+
0xed 0x044d #CYRILLIC SMALL LETTER E
256+
0xee 0x044e #CYRILLIC SMALL LETTER YU
257+
0xef 0x044f #CYRILLIC SMALL LETTER YA
258+
0xf0 0x0401 #CYRILLIC CAPITAL LETTER IO
259+
0xf1 0x0451 #CYRILLIC SMALL LETTER IO
260+
0xf2 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE
261+
0xf3 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE
262+
0xf4 0x0407 #CYRILLIC CAPITAL LETTER YI
263+
0xf5 0x0457 #CYRILLIC SMALL LETTER YI
264+
0xf6 0x040e #CYRILLIC CAPITAL LETTER SHORT U
265+
0xf7 0x045e #CYRILLIC SMALL LETTER SHORT U
266+
0xf8 0x00b0 #DEGREE SIGN
267+
0xf9 0x2219 #BULLET OPERATOR
268+
0xfa 0x00b7 #MIDDLE DOT
269+
0xfb 0x221a #SQUARE ROOT
270+
0xfc 0x2116 #NUMERO SIGN
271+
0xfd 0x00a4 #CURRENCY SIGN
272+
0xfe 0x25a0 #BLACK SQUARE
273+
0xff 0x00a0 #NO-BREAK SPACE

0 commit comments

Comments
 (0)