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

1.1       misho       1: --TEST--
                      2: numfmt_format() icu >= 52.1 && icu < 53.1
                      3: --SKIPIF--
                      4: <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
                      5: <?php if(version_compare(INTL_ICU_VERSION, '52.1') < 0) print 'skip for ICU >= 52.1'; ?>
                      6: <?php if (version_compare(INTL_ICU_VERSION, '53.1') >=  0) die('skip for ICU < 53.1'); ?>
                      7: --FILE--
                      8: <?php
                      9: 
                     10: /*
                     11:  * Format a number using misc locales/patterns.
                     12:  */
                     13: 
                     14: /*
                     15:  * TODO: doesn't pass on ICU 3.6 because 'ru' and 'de' locales changed
                     16:  * currency and percent formatting.
                     17:  */
                     18: 
                     19: function ut_main()
                     20: {
                     21:     $styles = array(
                     22:         NumberFormatter::PATTERN_DECIMAL => '##.#####################',
                     23:         NumberFormatter::DECIMAL => '',
                     24:         NumberFormatter::CURRENCY => '',
                     25:         NumberFormatter::PERCENT => '',
                     26:         NumberFormatter::SCIENTIFIC => '',
                     27:         NumberFormatter::SPELLOUT => '@@@@@@@',
                     28:         NumberFormatter::ORDINAL => '',
                     29:         NumberFormatter::DURATION => '',
                     30:         NumberFormatter::PATTERN_RULEBASED => '#####.###',
                     31:         1234999, // bad one
                     32:     );
                     33: 
                     34:    $integer = array(
                     35:         NumberFormatter::ORDINAL => '',
                     36:         NumberFormatter::DURATION => '',
                     37:    );
                     38:     $locales = array(
                     39:         'en_US',
                     40:         'ru_UA',
                     41:         'de',
                     42:         'fr',
                     43:         'en_UK'
                     44:     );
                     45: 
                     46:     $str_res = '';
                     47:     $number = 1234567.891234567890000;
                     48: 
                     49:     foreach( $locales as $locale )
                     50:     {
                     51:         $str_res .= "\nLocale is: $locale\n";
                     52:         foreach( $styles as $style => $pattern )
                     53:         {
                     54:             $fmt = ut_nfmt_create( $locale, $style, $pattern );
                     55: 
                     56:                        if(!$fmt) {
                     57:                                $str_res .= "Bad formatter!\n";
                     58:                                continue;
                     59:                        }
                     60:             $str_res .= dump( isset($integer[$style])?ut_nfmt_format( $fmt, $number, NumberFormatter::TYPE_INT32):ut_nfmt_format( $fmt, $number ) ) . "\n";
                     61:         }
                     62:     }
                     63:     return $str_res;
                     64: }
                     65: 
                     66: include_once( 'ut_common.inc' );
                     67: 
                     68: // Run the test
                     69: ut_run();
                     70: 
                     71: ?>
                     72: --EXPECTREGEX--
                     73: Locale is: en_US
                     74: '1234567.89123457'
                     75: '1,234,567.891'
                     76: '\$1,234,567.89'
                     77: '123,456,789%'
                     78: '1.23456789123457E6'
                     79: 'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five seven'
                     80: '1,234,567(th|ᵗʰ)'
                     81: '342:56:07'
                     82: '#####.###'
                     83: Bad formatter!
                     84: 
                     85: Locale is: ru_UA
                     86: '1234567,89123457'
                     87: '1 234 567,891'
                     88: '1 234 567,89 ?(грн\.|₴)'
                     89: '123 456 789 ?%'
                     90: '1,23456789123457E6'
                     91: 'один миллион двести тридцать четыре тысяч пятьсот шестьдесят семь запятая восемь девять один два три четыре пять семь'
                     92: '1 234 567.?'
                     93: '1 234 567'
                     94: '#####.###'
                     95: Bad formatter!
                     96: 
                     97: Locale is: de
                     98: '1234567,89123457'
                     99: '1.234.567,891'
                    100: '(¤ )?1.234.567,89( ¤)?'
                    101: '123\.456\.789 %'
                    102: '1,23456789123457E6'
                    103: 'eine Million zwei­hundert­vier­und­dreißig­tausend­fünf­hundert­sieben­und­sechzig Komma acht neun eins zwei drei vier fünf sieben'
                    104: '1.234.567.?'
                    105: '1.234.567'
                    106: '#####.###'
                    107: Bad formatter!
                    108: 
                    109: Locale is: fr
                    110: '1234567,89123457'
                    111: '1 234 567,891'
                    112: '1 234 567,89 ¤'
                    113: '123 456 789 ?%'
                    114: '1,23456789123457E6'
                    115: 'un million deux cent trente-quatre mille cinq cent soixante-sept virgule huit neuf un deux trois quatre cinq sept'
                    116: '1 234 567e'
                    117: '1 234 567'
                    118: '#####.###'
                    119: Bad formatter!
                    120: 
                    121: Locale is: en_UK
                    122: '1234567.89123457'
                    123: '1,234,567.891'
                    124: '¤1,234,567.89'
                    125: '123,456,789%'
                    126: '1.23456789123457E6'
                    127: 'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five seven'
                    128: '1,234,567(th|ᵗʰ)'
                    129: '342:56:07'
                    130: '#####.###'
                    131: Bad formatter!

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