1--TEST--
2sort_with_sort_keys()
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 */
18function sort_arrays( $locale, $arrays )
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_with_sort_keys( $coll, $array );
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
35        // Preppend test signature to output string
36        $md5 = md5( $res_dump );
37
38        global $test_num;
39
40        $res_str .= "\n\n".
41                    "Test $test_num.$md5:" .
42                    $res_dump;
43        ++$test_num;
44    }
45
46    return $res_str;
47}
48
49
50function ut_main()
51{
52    global $test_num;
53    $test_num = 1;
54    $res_str = '';
55
56    // Sort an array in SORT_REGULAR mode using en_US locale.
57    $test_params = array(
58        array( 'abc', 'abd', 'aaa' ),
59        array( 'm'  , '1'  , '_'   ),
60        array( 'a'  , 'aaa', 'aa'  ),
61        array( 'ba' , 'b'  , 'ab'  ),
62        array( 'e'  , 'c'  , 'a'   ),
63        array( 'd'  , ''   , ' a'  ),
64        array( 'd ' , 'f ' , ' a'  ),
65        array( 'a'  , null , '3'   ),
66        array( 'y'  , 'i'  , 'k'   )
67    );
68
69    $res_str .= sort_arrays( 'en_US', $test_params );
70
71    // Sort a non-ASCII array using ru_RU locale.
72    $test_params = array(
73        array( 'абг', 'абв', 'ааа', 'abc' ),
74        array( 'аа', 'ааа', 'а' )
75    );
76
77    $res_str .= sort_arrays( 'ru_RU', $test_params );
78
79    // Array with data for sorting.
80    $test_params = array(
81        array( 'y'  , 'i'  , 'k'   )
82    );
83
84    // Sort an array using Lithuanian locale.
85    $res_str .= sort_arrays( 'lt_LT', $test_params );
86
87    return $res_str . "\n";
88}
89
90include_once( 'ut_common.inc' );
91ut_run();
92?>
93--EXPECT--
94Test 1.e8f1cd28133d79ecd660002f1c660d0e:
95array (
96  0 => 'aaa',
97  1 => 'abc',
98  2 => 'abd',
99)
100 Result: true
101
102Test 2.c2ded12173dd2996927378cae37eb275:
103array (
104  0 => '_',
105  1 => '1',
106  2 => 'm',
107)
108 Result: true
109
110Test 3.54071c968d71cb98c5d379145f8d7d38:
111array (
112  0 => 'a',
113  1 => 'aa',
114  2 => 'aaa',
115)
116 Result: true
117
118Test 4.19abe63d6f6dfef65b0e3c9ab4826b07:
119array (
120  0 => 'ab',
121  1 => 'b',
122  2 => 'ba',
123)
124 Result: true
125
126Test 5.9a8dc0a9bc771368c2f1fc3d02754610:
127array (
128  0 => 'a',
129  1 => 'c',
130  2 => 'e',
131)
132 Result: true
133
134Test 6.923d65739c5219c634616ffd100a50e4:
135array (
136  0 => '',
137  1 => ' a',
138  2 => 'd',
139)
140 Result: true
141
142Test 7.289bc2f28e87d3201ec9d7e8477ae1b0:
143array (
144  0 => ' a',
145  1 => 'd ',
146  2 => 'f ',
147)
148 Result: true
149
150Test 8.de0fd958484f2377a645835d7fbcf124:
151array (
152  0 => NULL,
153  1 => '3',
154  2 => 'a',
155)
156 Result: true
157
158Test 9.dd2b8f0adb37c45d528cad1a0cc0f361:
159array (
160  0 => 'i',
161  1 => 'k',
162  2 => 'y',
163)
164 Result: true
165
166Test 10.ca0e38a2e3147dd97070f2128f140934:
167array (
168  0 => 'abc',
169  1 => 'ааа',
170  2 => 'абв',
171  3 => 'абг',
172)
173 Result: true
174
175Test 11.91480b10473a0c96a4cd6d88c23c577a:
176array (
177  0 => 'а',
178  1 => 'аа',
179  2 => 'ааа',
180)
181 Result: true
182
183Test 12.fdd3fe3981476039164aa000bf9177f2:
184array (
185  0 => 'i',
186  1 => 'y',
187  2 => 'k',
188)
189 Result: true
190