Annotation of embedaddon/php/ext/intl/tests/collator_compare.phpt, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>