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

1.1       misho       1: --TEST--
                      2: normalize()
                      3: --SKIPIF--
                      4: <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
                      5: --FILE--
                      6: <?php
                      7: 
                      8: /*
                      9:  * Try normalization and test normalization
                     10:  * with Procedural and Object methods.
                     11:  */
                     12: 
                     13: function ut_main()
                     14: {
                     15:        $res_str = '';
                     16: 
                     17:        $forms = array(
                     18:                Normalizer::FORM_C,
                     19:                Normalizer::FORM_D,
                     20:                Normalizer::FORM_KC,
                     21:                Normalizer::FORM_KD,
                     22:                Normalizer::NONE,
                     23:        );
                     24: 
                     25:        $forms_str = array (
                     26:                Normalizer::FORM_C => 'UNORM_FORM_C',
                     27:                Normalizer::FORM_D => 'UNORM_FORM_D',
                     28:                Normalizer::FORM_KC => 'UNORM_FORM_KC',
                     29:                Normalizer::FORM_KD => 'UNORM_FORM_KD',
                     30:                Normalizer::NONE => 'UNORM_NONE',
                     31:        );
                     32: 
                     33:        /* just make sure all the form constants are defined as in the api spec */
                     34:        if ( Normalizer::FORM_C != Normalizer::NFC ||
                     35:                 Normalizer::FORM_D != Normalizer::NFD ||
                     36:                 Normalizer::FORM_KC != Normalizer::NFKC ||
                     37:                 Normalizer::FORM_KD != Normalizer::NFKD ||
                     38:                 Normalizer::NONE == Normalizer::FORM_C ) {
                     39: 
                     40:                        $res_str .= "Invalid normalization form declarations!\n";
                     41:        }
                     42:                 
                     43:        $char_a_diaeresis = "\xC3\xA4"; // 'LATIN SMALL LETTER A WITH DIAERESIS' (U+00E4)
                     44:        $char_a_ring = "\xC3\xA5";              // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5)
                     45:        $char_o_diaeresis = "\xC3\xB6";    // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6)
                     46: 
                     47:        $char_angstrom_sign = "\xE2\x84\xAB"; // 'ANGSTROM SIGN' (U+212B)
                     48:        $char_A_ring = "\xC3\x85";      // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
                     49: 
                     50:        $char_ohm_sign = "\xE2\x84\xA6";        // 'OHM SIGN' (U+2126)
                     51:        $char_omega = "\xCE\xA9";  // 'GREEK CAPITAL LETTER OMEGA' (U+03A9)
                     52: 
                     53:        $char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)
                     54: 
                     55:        $char_fi_ligature = "\xEF\xAC\x81";  // 'LATIN SMALL LIGATURE FI' (U+FB01)
                     56: 
                     57:        $char_long_s_dot = "\xE1\xBA\x9B";      // 'LATIN SMALL LETTER LONG S WITH DOT ABOVE' (U+1E9B)
                     58:                        
                     59:        $strs = array(
                     60:                'ABC',
                     61:                $char_a_diaeresis . '||' . $char_a_ring . '||' . $char_o_diaeresis,
                     62:                $char_angstrom_sign . '||' . $char_A_ring . '||' . 'A' . $char_combining_ring_above,
                     63:                $char_ohm_sign . '||' . $char_omega,
                     64:                $char_fi_ligature,
                     65:                $char_long_s_dot,
                     66:        );
                     67:        
                     68:        foreach( $forms as $form )
                     69:        {
                     70:                foreach( $strs as $str )
                     71:                {
                     72:                        $str_norm = ut_norm_normalize( $str, $form );
                     73:                        $error_code = intl_get_error_code();
                     74:                        $error_message = intl_get_error_message();
                     75: 
                     76:                        $str_hex = urlencode($str);
                     77:                        $str_norm_hex = urlencode($str_norm);
                     78:                        $res_str .= "'$str_hex' normalized to form '{$forms_str[$form]}' is '$str_norm_hex'" 
                     79:                                         .      "\terror info: '$error_message' ($error_code)\n" 
                     80:                                         .      "";
                     81:                        
                     82:                        $is_norm = ut_norm_is_normalized( $str, $form );
                     83:                        $error_code = intl_get_error_code();
                     84:                        $error_message = intl_get_error_message();
                     85: 
                     86:                        $res_str .= "           is in form '{$forms_str[$form]}'? = " . ($is_norm ? "yes" : "no") 
                     87:                                         .      "\terror info: '$error_message' ($error_code)\n"
                     88:                                         .      "";
                     89:                }
                     90:        }
                     91: 
                     92:        return $res_str;
                     93: }
                     94: 
                     95: include_once( 'ut_common.inc' );
                     96: ut_run();
                     97: 
                     98: ?>
                     99: --EXPECT--
                    100: 'ABC' normalized to form 'UNORM_FORM_C' is 'ABC'       error info: 'U_ZERO_ERROR' (0)
                    101:                is in form 'UNORM_FORM_C'? = yes        error info: 'U_ZERO_ERROR' (0)
                    102: '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6' normalized to form 'UNORM_FORM_C' is '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6' error info: 'U_ZERO_ERROR' (0)
                    103:                is in form 'UNORM_FORM_C'? = yes        error info: 'U_ZERO_ERROR' (0)
                    104: '%E2%84%AB%7C%7C%C3%85%7C%7CA%CC%8A' normalized to form 'UNORM_FORM_C' is '%C3%85%7C%7C%C3%85%7C%7C%C3%85'     error info: 'U_ZERO_ERROR' (0)
                    105:                is in form 'UNORM_FORM_C'? = no error info: 'U_ZERO_ERROR' (0)
                    106: '%E2%84%A6%7C%7C%CE%A9' normalized to form 'UNORM_FORM_C' is '%CE%A9%7C%7C%CE%A9'      error info: 'U_ZERO_ERROR' (0)
                    107:                is in form 'UNORM_FORM_C'? = no error info: 'U_ZERO_ERROR' (0)
                    108: '%EF%AC%81' normalized to form 'UNORM_FORM_C' is '%EF%AC%81'   error info: 'U_ZERO_ERROR' (0)
                    109:                is in form 'UNORM_FORM_C'? = yes        error info: 'U_ZERO_ERROR' (0)
                    110: '%E1%BA%9B' normalized to form 'UNORM_FORM_C' is '%E1%BA%9B'   error info: 'U_ZERO_ERROR' (0)
                    111:                is in form 'UNORM_FORM_C'? = yes        error info: 'U_ZERO_ERROR' (0)
                    112: 'ABC' normalized to form 'UNORM_FORM_D' is 'ABC'       error info: 'U_ZERO_ERROR' (0)
                    113:                is in form 'UNORM_FORM_D'? = yes        error info: 'U_ZERO_ERROR' (0)
                    114: '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6' normalized to form 'UNORM_FORM_D' is 'a%CC%88%7C%7Ca%CC%8A%7C%7Co%CC%88'      error info: 'U_ZERO_ERROR' (0)
                    115:                is in form 'UNORM_FORM_D'? = no error info: 'U_ZERO_ERROR' (0)
                    116: '%E2%84%AB%7C%7C%C3%85%7C%7CA%CC%8A' normalized to form 'UNORM_FORM_D' is 'A%CC%8A%7C%7CA%CC%8A%7C%7CA%CC%8A'  error info: 'U_ZERO_ERROR' (0)
                    117:                is in form 'UNORM_FORM_D'? = no error info: 'U_ZERO_ERROR' (0)
                    118: '%E2%84%A6%7C%7C%CE%A9' normalized to form 'UNORM_FORM_D' is '%CE%A9%7C%7C%CE%A9'      error info: 'U_ZERO_ERROR' (0)
                    119:                is in form 'UNORM_FORM_D'? = no error info: 'U_ZERO_ERROR' (0)
                    120: '%EF%AC%81' normalized to form 'UNORM_FORM_D' is '%EF%AC%81'   error info: 'U_ZERO_ERROR' (0)
                    121:                is in form 'UNORM_FORM_D'? = yes        error info: 'U_ZERO_ERROR' (0)
                    122: '%E1%BA%9B' normalized to form 'UNORM_FORM_D' is '%C5%BF%CC%87'        error info: 'U_ZERO_ERROR' (0)
                    123:                is in form 'UNORM_FORM_D'? = no error info: 'U_ZERO_ERROR' (0)
                    124: 'ABC' normalized to form 'UNORM_FORM_KC' is 'ABC'      error info: 'U_ZERO_ERROR' (0)
                    125:                is in form 'UNORM_FORM_KC'? = yes       error info: 'U_ZERO_ERROR' (0)
                    126: '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6' normalized to form 'UNORM_FORM_KC' is '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6'        error info: 'U_ZERO_ERROR' (0)
                    127:                is in form 'UNORM_FORM_KC'? = yes       error info: 'U_ZERO_ERROR' (0)
                    128: '%E2%84%AB%7C%7C%C3%85%7C%7CA%CC%8A' normalized to form 'UNORM_FORM_KC' is '%C3%85%7C%7C%C3%85%7C%7C%C3%85'    error info: 'U_ZERO_ERROR' (0)
                    129:                is in form 'UNORM_FORM_KC'? = no        error info: 'U_ZERO_ERROR' (0)
                    130: '%E2%84%A6%7C%7C%CE%A9' normalized to form 'UNORM_FORM_KC' is '%CE%A9%7C%7C%CE%A9'     error info: 'U_ZERO_ERROR' (0)
                    131:                is in form 'UNORM_FORM_KC'? = no        error info: 'U_ZERO_ERROR' (0)
                    132: '%EF%AC%81' normalized to form 'UNORM_FORM_KC' is 'fi' error info: 'U_ZERO_ERROR' (0)
                    133:                is in form 'UNORM_FORM_KC'? = no        error info: 'U_ZERO_ERROR' (0)
                    134: '%E1%BA%9B' normalized to form 'UNORM_FORM_KC' is '%E1%B9%A1'  error info: 'U_ZERO_ERROR' (0)
                    135:                is in form 'UNORM_FORM_KC'? = no        error info: 'U_ZERO_ERROR' (0)
                    136: 'ABC' normalized to form 'UNORM_FORM_KD' is 'ABC'      error info: 'U_ZERO_ERROR' (0)
                    137:                is in form 'UNORM_FORM_KD'? = yes       error info: 'U_ZERO_ERROR' (0)
                    138: '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6' normalized to form 'UNORM_FORM_KD' is 'a%CC%88%7C%7Ca%CC%8A%7C%7Co%CC%88'     error info: 'U_ZERO_ERROR' (0)
                    139:                is in form 'UNORM_FORM_KD'? = no        error info: 'U_ZERO_ERROR' (0)
                    140: '%E2%84%AB%7C%7C%C3%85%7C%7CA%CC%8A' normalized to form 'UNORM_FORM_KD' is 'A%CC%8A%7C%7CA%CC%8A%7C%7CA%CC%8A' error info: 'U_ZERO_ERROR' (0)
                    141:                is in form 'UNORM_FORM_KD'? = no        error info: 'U_ZERO_ERROR' (0)
                    142: '%E2%84%A6%7C%7C%CE%A9' normalized to form 'UNORM_FORM_KD' is '%CE%A9%7C%7C%CE%A9'     error info: 'U_ZERO_ERROR' (0)
                    143:                is in form 'UNORM_FORM_KD'? = no        error info: 'U_ZERO_ERROR' (0)
                    144: '%EF%AC%81' normalized to form 'UNORM_FORM_KD' is 'fi' error info: 'U_ZERO_ERROR' (0)
                    145:                is in form 'UNORM_FORM_KD'? = no        error info: 'U_ZERO_ERROR' (0)
                    146: '%E1%BA%9B' normalized to form 'UNORM_FORM_KD' is 's%CC%87'    error info: 'U_ZERO_ERROR' (0)
                    147:                is in form 'UNORM_FORM_KD'? = no        error info: 'U_ZERO_ERROR' (0)
                    148: 'ABC' normalized to form 'UNORM_NONE' is 'ABC' error info: 'U_ZERO_ERROR' (0)
                    149:                is in form 'UNORM_NONE'? = no   error info: 'normalizer_normalize: illegal normalization form: U_ILLEGAL_ARGUMENT_ERROR' (1)
                    150: '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6' normalized to form 'UNORM_NONE' is '%C3%A4%7C%7C%C3%A5%7C%7C%C3%B6'   error info: 'U_ZERO_ERROR' (0)
                    151:                is in form 'UNORM_NONE'? = no   error info: 'normalizer_normalize: illegal normalization form: U_ILLEGAL_ARGUMENT_ERROR' (1)
                    152: '%E2%84%AB%7C%7C%C3%85%7C%7CA%CC%8A' normalized to form 'UNORM_NONE' is '%E2%84%AB%7C%7C%C3%85%7C%7CA%CC%8A'   error info: 'U_ZERO_ERROR' (0)
                    153:                is in form 'UNORM_NONE'? = no   error info: 'normalizer_normalize: illegal normalization form: U_ILLEGAL_ARGUMENT_ERROR' (1)
                    154: '%E2%84%A6%7C%7C%CE%A9' normalized to form 'UNORM_NONE' is '%E2%84%A6%7C%7C%CE%A9'     error info: 'U_ZERO_ERROR' (0)
                    155:                is in form 'UNORM_NONE'? = no   error info: 'normalizer_normalize: illegal normalization form: U_ILLEGAL_ARGUMENT_ERROR' (1)
                    156: '%EF%AC%81' normalized to form 'UNORM_NONE' is '%EF%AC%81'     error info: 'U_ZERO_ERROR' (0)
                    157:                is in form 'UNORM_NONE'? = no   error info: 'normalizer_normalize: illegal normalization form: U_ILLEGAL_ARGUMENT_ERROR' (1)
                    158: '%E1%BA%9B' normalized to form 'UNORM_NONE' is '%E1%BA%9B'     error info: 'U_ZERO_ERROR' (0)
                    159:                is in form 'UNORM_NONE'? = no   error info: 'normalizer_normalize: illegal normalization form: U_ILLEGAL_ARGUMENT_ERROR' (1)
                    160: 

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