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>