Annotation of embedaddon/php/ext/intl/tests/collator_sort.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: sort()
3: --SKIPIF--
4: <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
5: --FILE--
6: <?php
7:
8: /*
9: * Sort arrays using various locales.
10: */
11:
12:
13: $test_num = 1;
14:
15: /*
16: * Sort arrays in the given list using specified locale.
17: */
18: function sort_arrays( $locale, $arrays, $sort_flag = Collator::SORT_REGULAR )
19: {
20: $res_str = '';
21:
22: $coll = ut_coll_create( $locale );
23:
24: foreach( $arrays as $array )
25: {
26: // Sort array values
27: $res_val = ut_coll_sort( $coll, $array, $sort_flag );
28:
29: // Concatenate the sorted array and function result
30: // with output string.
31: $res_dump = "\n" . dump( $array ) .
32: "\n Result: " . dump( $res_val );
33:
34: // Preppend test signature to output string
35: $md5 = md5( $res_dump );
36:
37: global $test_num;
38:
39: $res_str .= "\n\n".
40: "Test $test_num.$md5:" .
41: $res_dump;
42: ++$test_num;
43: }
44:
45: return $res_str;
46: }
47:
48: function ut_main()
49: {
50: global $test_num;
51: $test_num = 1;
52: $res_str = '';
53:
54: // Sort an array in SORT_REGULAR mode using en_US locale.
55: $test_params = array(
56: array( 'abc', 'abd', 'aaa' ),
57: array( 'm' , '1' , '_' ),
58: array( 'a' , 'aaa', 'aa' ),
59: array( 'ba' , 'b' , 'ab' ),
60: array( 'e' , 'c' , 'a' ),
61: array( '100', '25' , '36' ),
62: array( 5 , '30' , 2 ),
63: array( 'd' , '' , ' a' ),
64: array( 'd ' , 'f ' , ' a' ),
65: array( 'a' , null , '3' ),
66: array( 'y' , 'k' , 'i' )
67: );
68:
69: $res_str .= sort_arrays( 'en_US', $test_params );
70:
71: $test_params = array(
72: array( '100', '25' , '36' ),
73: array( 5 , '30' , 2 ),
74: array( 'd' , '' , ' a' ),
75: array( 'y' , 'k' , 'i' )
76: );
77:
78: // Sort in en_US locale with SORT_STRING flag
79: $res_str .= sort_arrays( 'en_US', $test_params, Collator::SORT_STRING );
80:
81:
82: // Sort a non-ASCII array using ru_RU locale.
83: $test_params = array(
84: array( 'абг', 'абв', 'ааа', 'abc' ),
85: array( 'аа', 'ааа' , 'а' )
86: );
87:
88: $res_str .= sort_arrays( 'ru_RU', $test_params );
89:
90: // Sort an array using Lithuanian locale.
91: $test_params = array(
92: array( 'y' , 'k' , 'i' )
93: );
94:
95: $res_str .= sort_arrays( 'lt_LT', $test_params );
96:
97: return $res_str;
98: }
99:
100: include_once( 'ut_common.inc' );
101: ut_run();
102: ?>
103: --EXPECT--
104: Test 1.e8f1cd28133d79ecd660002f1c660d0e:
105: array (
106: 0 => 'aaa',
107: 1 => 'abc',
108: 2 => 'abd',
109: )
110: Result: true
111:
112: Test 2.c2ded12173dd2996927378cae37eb275:
113: array (
114: 0 => '_',
115: 1 => '1',
116: 2 => 'm',
117: )
118: Result: true
119:
120: Test 3.54071c968d71cb98c5d379145f8d7d38:
121: array (
122: 0 => 'a',
123: 1 => 'aa',
124: 2 => 'aaa',
125: )
126: Result: true
127:
128: Test 4.19abe63d6f6dfef65b0e3c9ab4826b07:
129: array (
130: 0 => 'ab',
131: 1 => 'b',
132: 2 => 'ba',
133: )
134: Result: true
135:
136: Test 5.9a8dc0a9bc771368c2f1fc3d02754610:
137: array (
138: 0 => 'a',
139: 1 => 'c',
140: 2 => 'e',
141: )
142: Result: true
143:
144: Test 6.ab530b060e5e54a65bfb8b9f8fc61870:
145: array (
146: 0 => '25',
147: 1 => '36',
148: 2 => '100',
149: )
150: Result: true
151:
152: Test 7.0718dd838509017bded2ed307a6e785f:
153: array (
154: 0 => 2,
155: 1 => 5,
156: 2 => '30',
157: )
158: Result: true
159:
160: Test 8.923d65739c5219c634616ffd100a50e4:
161: array (
162: 0 => '',
163: 1 => ' a',
164: 2 => 'd',
165: )
166: Result: true
167:
168: Test 9.289bc2f28e87d3201ec9d7e8477ae1b0:
169: array (
170: 0 => ' a',
171: 1 => 'd ',
172: 2 => 'f ',
173: )
174: Result: true
175:
176: Test 10.de0fd958484f2377a645835d7fbcf124:
177: array (
178: 0 => NULL,
179: 1 => '3',
180: 2 => 'a',
181: )
182: Result: true
183:
184: Test 11.dd2b8f0adb37c45d528cad1a0cc0f361:
185: array (
186: 0 => 'i',
187: 1 => 'k',
188: 2 => 'y',
189: )
190: Result: true
191:
192: Test 12.1e6b4d6f7df9d4580317634ea46d8208:
193: array (
194: 0 => '100',
195: 1 => '25',
196: 2 => '36',
197: )
198: Result: true
199:
200: Test 13.cec115dc9850b98dfbdf102efa09e61b:
201: array (
202: 0 => 2,
203: 1 => '30',
204: 2 => 5,
205: )
206: Result: true
207:
208: Test 14.923d65739c5219c634616ffd100a50e4:
209: array (
210: 0 => '',
211: 1 => ' a',
212: 2 => 'd',
213: )
214: Result: true
215:
216: Test 15.dd2b8f0adb37c45d528cad1a0cc0f361:
217: array (
218: 0 => 'i',
219: 1 => 'k',
220: 2 => 'y',
221: )
222: Result: true
223:
224: Test 16.ca0e38a2e3147dd97070f2128f140934:
225: array (
226: 0 => 'abc',
227: 1 => 'ааа',
228: 2 => 'абв',
229: 3 => 'абг',
230: )
231: Result: true
232:
233: Test 17.91480b10473a0c96a4cd6d88c23c577a:
234: array (
235: 0 => 'а',
236: 1 => 'аа',
237: 2 => 'ааа',
238: )
239: Result: true
240:
241: Test 18.fdd3fe3981476039164aa000bf9177f2:
242: array (
243: 0 => 'i',
244: 1 => 'y',
245: 2 => 'k',
246: )
247: Result: true
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>