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

1.1       misho       1: --TEST--
                      2: numfmt_get/set_symbol() icu >= 4.8
                      3: --SKIPIF--
                      4: <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
                      5: <?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip'; ?>
                      6: --FILE--
                      7: <?php
                      8: 
                      9: /*
                     10:  * Get/set symbol.
                     11:  */
                     12: 
                     13: 
                     14: function ut_main()
                     15: {
                     16:        $longstr = str_repeat("blah", 10);
                     17:     $symbols = array(
                     18:         'DECIMAL_SEPARATOR_SYMBOL' => array( NumberFormatter::DECIMAL_SEPARATOR_SYMBOL, '_._', 12345.123456, NumberFormatter::DECIMAL ),
                     19:         'GROUPING_SEPARATOR_SYMBOL' => array( NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '_,_', 12345.123456, NumberFormatter::DECIMAL ),
                     20:         'PATTERN_SEPARATOR_SYMBOL' => array( NumberFormatter::PATTERN_SEPARATOR_SYMBOL, '_;_', 12345.123456, NumberFormatter::DECIMAL ),
                     21:         'PERCENT_SYMBOL' => array( NumberFormatter::PERCENT_SYMBOL, '_%_', 12345.123456, NumberFormatter::PERCENT ),
                     22:         'ZERO_DIGIT_SYMBOL' => array( NumberFormatter::ZERO_DIGIT_SYMBOL, '_ZD_', 12345.123456, NumberFormatter::DECIMAL ),
                     23:         'DIGIT_SYMBOL' => array( NumberFormatter::DIGIT_SYMBOL, '_DS_', 12345.123456, NumberFormatter::DECIMAL ),
                     24:         'MINUS_SIGN_SYMBOL' => array( NumberFormatter::MINUS_SIGN_SYMBOL, '_-_', -12345.123456, NumberFormatter::DECIMAL ),
                     25:         'PLUS_SIGN_SYMBOL' => array( NumberFormatter::PLUS_SIGN_SYMBOL, '_+_', 12345.123456, NumberFormatter::SCIENTIFIC ),
                     26:         'CURRENCY_SYMBOL' => array( NumberFormatter::CURRENCY_SYMBOL, '_$_', 12345.123456, NumberFormatter::CURRENCY ),
                     27:         'INTL_CURRENCY_SYMBOL' => array( NumberFormatter::INTL_CURRENCY_SYMBOL, '_$_', 12345.123456, NumberFormatter::CURRENCY ),
                     28:         'MONETARY_SEPARATOR_SYMBOL' => array( NumberFormatter::MONETARY_SEPARATOR_SYMBOL, '_MS_', 12345.123456, NumberFormatter::CURRENCY ),
                     29:         'EXPONENTIAL_SYMBOL' => array( NumberFormatter::EXPONENTIAL_SYMBOL, '_E_', 12345.123456, NumberFormatter::SCIENTIFIC ),
                     30:         'PERMILL_SYMBOL' => array( NumberFormatter::PERMILL_SYMBOL, '_PS_', 12345.123456, NumberFormatter::DECIMAL ),
                     31:         'PAD_ESCAPE_SYMBOL' => array( NumberFormatter::PAD_ESCAPE_SYMBOL, '_PE_', 12345.123456, NumberFormatter::DECIMAL ),
                     32:         'INFINITY_SYMBOL' => array( NumberFormatter::INFINITY_SYMBOL, '_IS_', 12345.123456, NumberFormatter::DECIMAL ),
                     33:         'NAN_SYMBOL' => array( NumberFormatter::NAN_SYMBOL, '_N_', 12345.123456, NumberFormatter::DECIMAL ),
                     34:         'SIGNIFICANT_DIGIT_SYMBOL' => array( NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL, '_SD_', 12345.123456, NumberFormatter::DECIMAL ),
                     35:         'MONETARY_GROUPING_SEPARATOR_SYMBOL' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, '_MG_', 12345.123456, NumberFormatter::CURRENCY ),
                     36:        'MONETARY_GROUPING_SEPARATOR_SYMBOL-2' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, "&nbsp;", 12345.123456, NumberFormatter::CURRENCY ),
                     37:        'MONETARY_GROUPING_SEPARATOR_SYMBOL-3' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, $longstr, 12345.123456, NumberFormatter::CURRENCY ),
                     38:     );
                     39: 
                     40:     $res_str = '';
                     41: 
                     42:     foreach( $symbols as $symb_name => $data )
                     43:     {
                     44:         list( $symb, $new_val, $number, $attr ) = $data;
                     45: 
                     46:         $fmt = ut_nfmt_create( 'en_US', $attr);
                     47: 
                     48:         $res_str .= "\nSymbol '$symb_name'\n";
                     49: 
                     50:         // Get original symbol value.
                     51:         $orig_val = ut_nfmt_get_symbol( $fmt, $symb );
                     52:         $res_str .= "Default symbol: [$orig_val]\n";
                     53: 
                     54:         // Set a new symbol value.
                     55:         $res_val = ut_nfmt_set_symbol( $fmt, $symb, $new_val );
                     56:         if( !$res_val )
                     57:             $res_str .= "set_symbol() error: " . ut_nfmt_get_error_message( $fmt ) . "\n";
                     58: 
                     59:         // Get the symbol value back.
                     60:         $new_val_check = ut_nfmt_get_symbol( $fmt, $symb );
                     61:         if( !$new_val_check )
                     62:             $res_str .= "get_symbol() error: " . ut_nfmt_get_error_message( $fmt ) . "\n";
                     63: 
                     64:         $res_str .= "New symbol: [$new_val_check]\n";
                     65: 
                     66:         // Check if the new value has been set.
                     67:         if( $new_val_check !== $new_val )
                     68:             $res_str .= "ERROR: New $symb_name symbol value has not been set correctly.\n";
                     69: 
                     70:         // Format the number using the new value.
                     71:         $s = ut_nfmt_format( $fmt, $number );
                     72:         $res_str .= "A number formatted with the new symbol: $s\n";
                     73: 
                     74:         // Restore attribute's symbol.
                     75:         ut_nfmt_set_symbol( $fmt, $symb, $orig_val );
                     76:     }
                     77:     $badvals = array(2147483648, -2147483648, -1, 4294901761);
                     78:     foreach($badvals as $badval) {
                     79:            if(ut_nfmt_get_symbol( $fmt, 2147483648 ))  {
                     80:                $res_str .= "Bad value $badval should return false!\n";
                     81:            }
                     82:     }
                     83:     return $res_str;
                     84: }
                     85: 
                     86: include_once( 'ut_common.inc' );
                     87: ut_run();
                     88: 
                     89: ?>
                     90: --EXPECT--
                     91: Symbol 'DECIMAL_SEPARATOR_SYMBOL'
                     92: Default symbol: [.]
                     93: New symbol: [_._]
                     94: A number formatted with the new symbol: 12,345_._123
                     95: 
                     96: Symbol 'GROUPING_SEPARATOR_SYMBOL'
                     97: Default symbol: [,]
                     98: New symbol: [_,_]
                     99: A number formatted with the new symbol: 12_,_345.123
                    100: 
                    101: Symbol 'PATTERN_SEPARATOR_SYMBOL'
                    102: Default symbol: [;]
                    103: New symbol: [_;_]
                    104: A number formatted with the new symbol: 12,345.123
                    105: 
                    106: Symbol 'PERCENT_SYMBOL'
                    107: Default symbol: [%]
                    108: New symbol: [_%_]
                    109: A number formatted with the new symbol: 1,234,512_%_
                    110: 
                    111: Symbol 'ZERO_DIGIT_SYMBOL'
                    112: Default symbol: [0]
                    113: New symbol: [_ZD_]
                    114: A number formatted with the new symbol: 12,345.123
                    115: 
                    116: Symbol 'DIGIT_SYMBOL'
                    117: Default symbol: [#]
                    118: New symbol: [_DS_]
                    119: A number formatted with the new symbol: 12,345.123
                    120: 
                    121: Symbol 'MINUS_SIGN_SYMBOL'
                    122: Default symbol: [-]
                    123: New symbol: [_-_]
                    124: A number formatted with the new symbol: _-_12,345.123
                    125: 
                    126: Symbol 'PLUS_SIGN_SYMBOL'
                    127: Default symbol: [+]
                    128: New symbol: [_+_]
                    129: A number formatted with the new symbol: 1.2345123456E4
                    130: 
                    131: Symbol 'CURRENCY_SYMBOL'
                    132: Default symbol: [$]
                    133: New symbol: [_$_]
                    134: A number formatted with the new symbol: _$_12,345.12
                    135: 
                    136: Symbol 'INTL_CURRENCY_SYMBOL'
                    137: Default symbol: [USD]
                    138: New symbol: [_$_]
                    139: A number formatted with the new symbol: $12,345.12
                    140: 
                    141: Symbol 'MONETARY_SEPARATOR_SYMBOL'
                    142: Default symbol: [.]
                    143: New symbol: [_MS_]
                    144: A number formatted with the new symbol: $12,345_MS_12
                    145: 
                    146: Symbol 'EXPONENTIAL_SYMBOL'
                    147: Default symbol: [E]
                    148: New symbol: [_E_]
                    149: A number formatted with the new symbol: 1.2345123456_E_4
                    150: 
                    151: Symbol 'PERMILL_SYMBOL'
                    152: Default symbol: [‰]
                    153: New symbol: [_PS_]
                    154: A number formatted with the new symbol: 12,345.123
                    155: 
                    156: Symbol 'PAD_ESCAPE_SYMBOL'
                    157: Default symbol: [*]
                    158: New symbol: [_PE_]
                    159: A number formatted with the new symbol: 12,345.123
                    160: 
                    161: Symbol 'INFINITY_SYMBOL'
                    162: Default symbol: [∞]
                    163: New symbol: [_IS_]
                    164: A number formatted with the new symbol: 12,345.123
                    165: 
                    166: Symbol 'NAN_SYMBOL'
                    167: Default symbol: [NaN]
                    168: New symbol: [_N_]
                    169: A number formatted with the new symbol: 12,345.123
                    170: 
                    171: Symbol 'SIGNIFICANT_DIGIT_SYMBOL'
                    172: Default symbol: [@]
                    173: New symbol: [_SD_]
                    174: A number formatted with the new symbol: 12,345.123
                    175: 
                    176: Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL'
                    177: Default symbol: [,]
                    178: New symbol: [_MG_]
                    179: A number formatted with the new symbol: $12_MG_345.12
                    180: 
                    181: Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL-2'
                    182: Default symbol: [,]
                    183: New symbol: [&nbsp;]
                    184: A number formatted with the new symbol: $12&nbsp;345.12
                    185: 
                    186: Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL-3'
                    187: Default symbol: [,]
                    188: New symbol: [blahblahblahblahblahblahblahblahblahblah]
                    189: A number formatted with the new symbol: $12blahblahblahblahblahblahblahblahblahblah345.12
                    190: 

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