Annotation of embedaddon/php/ext/intl/tests/collator_compare.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: compare()
3: --SKIPIF--
4: <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
1.1.1.2 ! misho 5: <?php if (version_compare(INTL_ICU_VERSION, '51.2') >= 0) die('skip for ICU < 51.2'); ?>
1.1 misho 6: --FILE--
7: <?php
8:
9: /*
10: * Compare various string pairs using various locales.
11: */
12:
13:
14: /*
15: * Converts comparison result to a character.
16: */
17: function cmp_to_char( $comp_res )
18: {
19: switch( $comp_res )
20: {
21: case 0: // UCOL_EQUAL
22: return '=';
23: case 1: // UCOL_GREATER
24: return '>';
25: case -1: // UCOL_LESS
26: return '<';
27: default:
28: return '?';
29: }
30: }
31:
32: /*
33: * Compare string pairs in the given array
34: * using specified locale.
35: */
36: function compare_pairs( $locale, $test_array )
37: {
38: $res_str = '';
39:
40: $coll = ut_coll_create( $locale );
41:
42: foreach( $test_array as $test_strings )
43: {
44: list( $str1, $str2 ) = $test_strings;
45:
46: // Compare strings.
47: $res_val = cmp_to_char( ut_coll_compare( $coll, $str1, $str2 ) );
48:
49: // Concatenate result strings.
50: $res_str .= dump( $str1 ) .
51: ' ' . $res_val . ' ' .
52: dump( $str2 ) . "\n";
53: }
54:
55: return $res_str;
56:
57: }
58:
59: function ut_main()
60: {
61: $res_str = '';
62:
63: // Compare strings using en_US locale.
64: $test_params = array(
65: array( 'abc', 'abc' ),
66: array( 'Abc', 'abc' ),
67: array( 'a' , 'abc' ),
68: array( 'a' , '' ),
69: array( '' , '' ),
70: array( 'a' , 'b' ),
71: array( 'ab' , 'b' ),
72: array( 'ab' , 'a' ),
73: array( 123 , 'abc' ),
74: array( 'ac' , null ),
75: array( '.' , '.' ),
76: // Try to compare long strings.
77: array( 'abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcde',
78: 'abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdea'),
79: array( null , null )
80: );
81:
82: $res_str .= compare_pairs( 'en_US', $test_params );
83:
84:
85: // Compare strings using ru_RU locale.
86: $test_params = array(
87: array( 'а', 'б' ),
88: array( 'а', 'аа' ),
89: array( 'аб', 'ба' ),
90: array( 'а', ',' ),
91: array( 'а', 'b' ),
92: array( 'а', 'bb' ),
93: array( 'а', 'ab' ),
94: array( 'а', null )
95: );
96:
97: $res_str .= compare_pairs( 'ru_RU', $test_params );
98:
99:
100: // Compare strings using lt_LT locale.
101: $test_params = array(
102: array( 'y', 'k' )
103: );
104:
105: $res_str .= compare_pairs( 'lt_LT', $test_params );
106:
107: return $res_str;
108: }
109:
110: include_once( 'ut_common.inc' );
111: ut_run();
112: ?>
113: --EXPECT--
114: 'abc' = 'abc'
115: 'Abc' > 'abc'
116: 'a' < 'abc'
117: 'a' > ''
118: '' = ''
119: 'a' < 'b'
120: 'ab' < 'b'
121: 'ab' > 'a'
122: 123 < 'abc'
123: 'ac' > NULL
124: '.' = '.'
125: 'abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcde' < 'abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdea'
126: NULL = NULL
127: 'а' < 'б'
128: 'а' < 'аа'
129: 'аб' < 'ба'
130: 'а' > ','
131: 'а' > 'b'
132: 'а' > 'bb'
133: 'а' > 'ab'
134: 'а' > NULL
135: 'y' < 'k'
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>