Annotation of embedaddon/php/ext/standard/tests/array/uasort_variation5.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test uasort() function : usage variations - sort diff. strings 
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : bool uasort(array $array_arg, string $cmp_function)
                      6:  * Description: Sort an array with a user-defined comparison function and maintain index association 
                      7:  * Source code: ext/standard/array.c
                      8: */
                      9: 
                     10: /*
                     11: * sorting different strings:
                     12: *  single quoted, double quoted and heredoc strings
                     13: */
                     14: 
                     15: // comparison function
                     16: /* Prototype : int cmp_function(mixed $value1, mixed $value2)
                     17:  * Parameters : $value1 and $value2 - values to be compared
                     18:  * Return value : 0 - if both values are same
                     19:  *                1 - if value1 is greater than value2
                     20:  *               -1 - if value1 is less than value2
                     21:  * Description : compares value1 and value2
                     22:  */
                     23: function cmp_function($value1, $value2)
                     24: {
                     25:   if($value1 == $value2) {
                     26:     return 0;
                     27:   }
                     28:   else if($value1 > $value2) {
                     29:     return 1;
                     30:   }
                     31:   else {
                     32:     return -1;
                     33:   }
                     34: }
                     35: 
                     36: // Different heredoc strings to be sorted 
                     37: $empty_heredoc =<<<EOT
                     38: EOT;
                     39: 
                     40: $simple_heredoc1 =<<<EOT
                     41: Heredoc
                     42: EOT;
                     43: 
                     44: $simple_heredoc2 =<<<EOT
                     45: HEREDOC
                     46: EOT;
                     47: 
                     48: $multiline_heredoc =<<<EOT
                     49: heredoc string\twith!@# and 123
                     50: Test this!!!
                     51: EOT;
                     52: 
                     53: 
                     54: echo "*** Testing uasort() : different string arrays as 'array_arg' ***\n";
                     55: 
                     56: // Single quoted strings
                     57: $single_quoted_values = array(
                     58:   0 => ' ', 1 => 'test', 3 => 'Hello', 4 => 'HELLO',
                     59:   5 => '', 6 => '\t', 7 => '0', 8 => '123Hello', 9 => '\'', 10 => '@#$%'
                     60: );
                     61: echo "-- Sorting Single Quoted String values --\n";
                     62: var_dump( uasort($single_quoted_values, 'cmp_function') );  // expecting: bool(true)
                     63: var_dump($single_quoted_values);
                     64: 
                     65: // Double quoted strings
                     66: $double_quoted_values = array(
                     67:   0 => " ", 1 => "test", 3 => "Hello", 4 => "HELLO", 
                     68:   5 => "", 6 => "\t", 7 => "0", 8 => "123Hello", 9 => "\"", 10 => "@#$%"
                     69: );
                     70: echo "-- Sorting Double Quoted String values --\n";
                     71: var_dump( uasort($double_quoted_values, 'cmp_function') );  // expecting: bool(true)
                     72: var_dump($double_quoted_values);
                     73: 
                     74: // Heredoc strings
                     75: $heredoc_values = array(0 => $empty_heredoc, 1 => $simple_heredoc1, 2 => $simple_heredoc2, 3 => $multiline_heredoc);
                     76: echo "-- Sorting Heredoc String values --\n";
                     77: var_dump( uasort($heredoc_values, 'cmp_function') );  // expecting: bool(true)
                     78: var_dump($heredoc_values);
                     79: 
                     80: echo "Done"
                     81: ?>
                     82: --EXPECTF--
                     83: *** Testing uasort() : different string arrays as 'array_arg' ***
                     84: -- Sorting Single Quoted String values --
                     85: bool(true)
                     86: array(10) {
                     87:   [5]=>
                     88:   string(0) ""
                     89:   [0]=>
                     90:   string(1) " "
                     91:   [9]=>
                     92:   string(1) "'"
                     93:   [7]=>
                     94:   string(1) "0"
                     95:   [8]=>
                     96:   string(8) "123Hello"
                     97:   [10]=>
                     98:   string(4) "@#$%"
                     99:   [4]=>
                    100:   string(5) "HELLO"
                    101:   [3]=>
                    102:   string(5) "Hello"
                    103:   [6]=>
                    104:   string(2) "\t"
                    105:   [1]=>
                    106:   string(4) "test"
                    107: }
                    108: -- Sorting Double Quoted String values --
                    109: bool(true)
                    110: array(10) {
                    111:   [5]=>
                    112:   string(0) ""
                    113:   [6]=>
                    114:   string(1) "  "
                    115:   [0]=>
                    116:   string(1) " "
                    117:   [9]=>
                    118:   string(1) """
                    119:   [7]=>
                    120:   string(1) "0"
                    121:   [8]=>
                    122:   string(8) "123Hello"
                    123:   [10]=>
                    124:   string(4) "@#$%"
                    125:   [4]=>
                    126:   string(5) "HELLO"
                    127:   [3]=>
                    128:   string(5) "Hello"
                    129:   [1]=>
                    130:   string(4) "test"
                    131: }
                    132: -- Sorting Heredoc String values --
                    133: bool(true)
                    134: array(4) {
                    135:   [0]=>
                    136:   string(0) ""
                    137:   [2]=>
                    138:   string(7) "HEREDOC"
                    139:   [1]=>
                    140:   string(7) "Heredoc"
                    141:   [3]=>
                    142:   string(4%d) "heredoc string  with!@# and 123
                    143: Test this!!!"
                    144: }
                    145: Done

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