Home | History | Annotate | Download | only in perf
      1 //  2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html#License
      3 /*
      4 **********************************************************************
      5 * Copyright (c) 2002-2009, International Business Machines           *
      6 * Corporation and others.  All Rights Reserved.                      *
      7 **********************************************************************
      8 */
      9 package com.ibm.icu.dev.test.perf;
     10 
     11 import com.ibm.icu.text.Normalizer;
     12 
     13 public class NormalizerPerformanceTest extends PerfTest {
     14 
     15     String[] NFDFileLines;
     16     String[] NFCFileLines;
     17     String[] fileLines;
     18 
     19 
     20     public static void main(String[] args) throws Exception {
     21         new NormalizerPerformanceTest().run(args);
     22     }
     23 
     24     protected void setup(String[] args) {
     25         fileLines = readLines(fileName, encoding, bulk_mode);
     26         NFDFileLines = normalizeInput(fileLines, Normalizer.NFD);
     27         NFCFileLines = normalizeInput(fileLines, Normalizer.NFC);
     28     }
     29 
     30     // Test NFC Performance
     31     PerfTest.Function TestICU_NFC_NFD_Text() {
     32         return new PerfTest.Function() {
     33             public void call() {
     34                 for (int i = 0; i < NFDFileLines.length; i++) {
     35                     Normalizer.normalize(NFDFileLines[i], Normalizer.NFC);
     36                 }
     37             }
     38 
     39             public long getOperationsPerIteration() {
     40                 int totalChars = 0;
     41                 for (int i = 0; i < NFDFileLines.length; i++) {
     42                     totalChars = totalChars + NFDFileLines[i].length();
     43                 }
     44                 return totalChars;
     45             }
     46         };
     47     }
     48 
     49     PerfTest.Function TestICU_NFC_NFC_Text() {
     50         return new PerfTest.Function() {
     51             public void call() {
     52                 for (int i = 0; i < NFCFileLines.length; i++) {
     53                     Normalizer.normalize(NFCFileLines[i], Normalizer.NFC);
     54                 }
     55             }
     56 
     57             public long getOperationsPerIteration() {
     58                 int totalChars = 0;
     59                 for (int i = 0; i < NFCFileLines.length; i++) {
     60                     totalChars = totalChars + NFCFileLines[i].length();
     61                 }
     62                 return totalChars;
     63             }
     64         };
     65     }
     66 
     67     PerfTest.Function TestICU_NFC_Orig_Text() {
     68         return new PerfTest.Function() {
     69             public void call() {
     70                 for (int i = 0; i < fileLines.length; i++) {
     71                     Normalizer.normalize(fileLines[i], Normalizer.NFC);
     72                 }
     73             }
     74 
     75             public long getOperationsPerIteration() {
     76                 int totalChars = 0;
     77                 for (int i = 0; i < fileLines.length; i++) {
     78                     totalChars = totalChars + fileLines[i].length();
     79                 }
     80                 return totalChars;
     81             }
     82         };
     83     }
     84 
     85     // Test NFD Performance
     86     PerfTest.Function TestICU_NFD_NFD_Text() {
     87         return new PerfTest.Function() {
     88             public void call() {
     89                 for (int i = 0; i < NFDFileLines.length; i++) {
     90                     Normalizer.normalize(NFDFileLines[i], Normalizer.NFD);
     91                 }
     92             }
     93 
     94             public long getOperationsPerIteration() {
     95                 int totalChars = 0;
     96                 for (int i = 0; i < NFDFileLines.length; i++) {
     97                     totalChars = totalChars + NFDFileLines[i].length();
     98                 }
     99                 return totalChars;
    100             }
    101         };
    102     }
    103 
    104     PerfTest.Function TestICU_NFD_NFC_Text() {
    105         return new PerfTest.Function() {
    106             public void call() {
    107                 for (int i = 0; i < NFCFileLines.length; i++) {
    108                     Normalizer.normalize(NFCFileLines[i], Normalizer.NFD);
    109                 }
    110             }
    111 
    112             public long getOperationsPerIteration() {
    113                 int totalChars = 0;
    114                 for (int i = 0; i < NFCFileLines.length; i++) {
    115                     totalChars = totalChars + NFCFileLines[i].length();
    116                 }
    117                 return totalChars;
    118             }
    119         };
    120     }
    121 
    122     PerfTest.Function TestICU_NFD_Orig_Text() {
    123         return new PerfTest.Function() {
    124             public void call() {
    125                 for (int i = 0; i < fileLines.length; i++) {
    126                     Normalizer.normalize(fileLines[i], Normalizer.NFD);
    127                 }
    128             }
    129 
    130             public long getOperationsPerIteration() {
    131                 int totalChars = 0;
    132                 for (int i = 0; i < fileLines.length; i++) {
    133                     totalChars = totalChars + fileLines[i].length();
    134                 }
    135                 return totalChars;
    136             }
    137         };
    138     }
    139 
    140     // Test NFC Performance
    141     PerfTest.Function TestJDK_NFC_NFD_Text() {
    142         return new PerfTest.Function() {
    143             public void call() {
    144                 for (int i = 0; i < NFDFileLines.length; i++)
    145                     normalizerTest(NFDFileLines[i], true);
    146             }
    147 
    148             public long getOperationsPerIteration() {
    149                 int totalChars = 0;
    150                 for (int i = 0; i < NFDFileLines.length; i++)
    151                     totalChars = totalChars + NFDFileLines[i].length();
    152                 return totalChars;
    153             }
    154         };
    155     }
    156 
    157     PerfTest.Function TestJDK_NFC_NFC_Text() {
    158         return new PerfTest.Function() {
    159             public void call() {
    160                 for (int i = 0; i < NFCFileLines.length; i++)
    161                     normalizerTest(NFCFileLines[i], true);
    162             }
    163 
    164             public long getOperationsPerIteration() {
    165                 int totalChars = 0;
    166                 for (int i = 0; i < NFCFileLines.length; i++)
    167                     totalChars = totalChars + NFCFileLines[i].length();
    168                 return totalChars;
    169             }
    170         };
    171     }
    172 
    173     PerfTest.Function TestJDK_NFC_Orig_Text() {
    174         return new PerfTest.Function() {
    175             public void call() {
    176                 for (int i = 0; i < fileLines.length; i++)
    177                     normalizerTest(fileLines[i], true);
    178             }
    179 
    180             public long getOperationsPerIteration() {
    181                 int totalChars = 0;
    182                 for (int i = 0; i < fileLines.length; i++)
    183                     totalChars = totalChars + fileLines[i].length();
    184                 return totalChars;
    185             }
    186         };
    187     }
    188 
    189     // Test NFD Performance
    190     PerfTest.Function TestJDK_NFD_NFD_Text() {
    191         return new PerfTest.Function() {
    192             public void call() {
    193                 for (int i = 0; i < NFDFileLines.length; i++)
    194                     normalizerTest(NFDFileLines[i], false);
    195             }
    196 
    197             public long getOperationsPerIteration() {
    198                 int totalChars = 0;
    199                 for (int i = 0; i < NFDFileLines.length; i++)
    200                     totalChars = totalChars + NFDFileLines[i].length();
    201                 return totalChars;
    202             }
    203         };
    204     }
    205 
    206     PerfTest.Function TestJDK_NFD_NFC_Text() {
    207         return new PerfTest.Function() {
    208             public void call() {
    209                 for (int i = 0; i < NFCFileLines.length; i++)
    210                     normalizerTest(NFCFileLines[i], false);
    211             }
    212 
    213             public long getOperationsPerIteration() {
    214                 int totalChars = 0;
    215                 for (int i = 0; i < NFCFileLines.length; i++)
    216                     totalChars = totalChars + NFCFileLines[i].length();
    217                 return totalChars;
    218             }
    219         };
    220     }
    221 
    222     PerfTest.Function TestJDK_NFD_Orig_Text() {
    223         return new PerfTest.Function() {
    224             public void call() {
    225                 for (int i = 0; i < fileLines.length; i++)
    226                     normalizerTest(fileLines[i], false);
    227             }
    228 
    229             public long getOperationsPerIteration() {
    230                 int totalChars = 0;
    231                 for (int i = 0; i < fileLines.length; i++)
    232                     totalChars = totalChars + fileLines[i].length();
    233                 return totalChars;
    234             }
    235         };
    236     }
    237     // Test FCD Performance
    238     PerfTest.Function TestICU_FCD_NFD_Text() {
    239         return new PerfTest.Function() {
    240             public void call() {
    241                 for (int i = 0; i < NFDFileLines.length; i++) {
    242                     Normalizer.normalize(NFDFileLines[i], Normalizer.FCD);
    243                 }
    244             }
    245 
    246             public long getOperationsPerIteration() {
    247                 int totalChars = 0;
    248                 for (int i = 0; i < NFDFileLines.length; i++) {
    249                     totalChars = totalChars + NFDFileLines[i].length();
    250                 }
    251                 return totalChars;
    252             }
    253         };
    254     }
    255 
    256     PerfTest.Function TestICU_FCD_NFC_Text() {
    257         return new PerfTest.Function() {
    258             public void call() {
    259                 for (int i = 0; i < NFCFileLines.length; i++) {
    260                     Normalizer.normalize(NFCFileLines[i], Normalizer.FCD);
    261                 }
    262             }
    263 
    264             public long getOperationsPerIteration() {
    265                 int totalChars = 0;
    266                 for (int i = 0; i < NFCFileLines.length; i++) {
    267                     totalChars = totalChars + NFCFileLines[i].length();
    268                 }
    269                 return totalChars;
    270             }
    271         };
    272     }
    273 
    274     PerfTest.Function TestICU_FCD_Orig_Text() {
    275         return new PerfTest.Function() {
    276             public void call() {
    277                 for (int i = 0; i < fileLines.length; i++) {
    278                     Normalizer.normalize(fileLines[i], Normalizer.FCD);
    279                 }
    280             }
    281 
    282             public long getOperationsPerIteration() {
    283                 int totalChars = 0;
    284                 for (int i = 0; i < fileLines.length; i++) {
    285                     totalChars = totalChars + fileLines[i].length();
    286                 }
    287                 return totalChars;
    288             }
    289         };
    290     }
    291 
    292     // Test Quick Check Performance
    293     PerfTest.Function TestQC_NFC_NFD_Text() {
    294         return new PerfTest.Function() {
    295             public void call() {
    296                 for (int i = 0; i < NFDFileLines.length; i++) {
    297                     Normalizer.quickCheck(NFDFileLines[i], Normalizer.NFC,0);
    298                 }
    299             }
    300 
    301             public long getOperationsPerIteration() {
    302                 int totalChars = 0;
    303                 for (int i = 0; i < NFDFileLines.length; i++) {
    304                     totalChars = totalChars + NFDFileLines[i].length();
    305                 }
    306                 return totalChars;
    307             }
    308         };
    309     }
    310 
    311     PerfTest.Function TestQC_NFC_NFC_Text() {
    312         return new PerfTest.Function() {
    313             public void call() {
    314                 for (int i = 0; i < NFCFileLines.length; i++) {
    315                     Normalizer.quickCheck(NFCFileLines[i], Normalizer.NFC,0);
    316                 }
    317             }
    318 
    319             public long getOperationsPerIteration() {
    320                 int totalChars = 0;
    321                 for (int i = 0; i < NFCFileLines.length; i++) {
    322                     totalChars = totalChars + NFCFileLines[i].length();
    323                 }
    324                 return totalChars;
    325             }
    326         };
    327     }
    328 
    329     PerfTest.Function TestQC_NFC_Orig_Text() {
    330         return new PerfTest.Function() {
    331             public void call() {
    332                 for (int i = 0; i < fileLines.length; i++) {
    333                     Normalizer.quickCheck(fileLines[i], Normalizer.NFC,0);
    334                 }
    335             }
    336 
    337             public long getOperationsPerIteration() {
    338                 int totalChars = 0;
    339                 for (int i = 0; i < fileLines.length; i++) {
    340                     totalChars = totalChars + fileLines[i].length();
    341                 }
    342                 return totalChars;
    343             }
    344         };
    345     }
    346 
    347     PerfTest.Function TestQC_NFD_NFD_Text() {
    348         return new PerfTest.Function() {
    349             public void call() {
    350                 for (int i = 0; i < NFDFileLines.length; i++) {
    351                     Normalizer.quickCheck(NFDFileLines[i], Normalizer.NFD,0);
    352                 }
    353             }
    354 
    355             public long getOperationsPerIteration() {
    356                 int totalChars = 0;
    357                 for (int i = 0; i < NFDFileLines.length; i++) {
    358                     totalChars = totalChars + NFDFileLines[i].length();
    359                 }
    360                 return totalChars;
    361             }
    362         };
    363     }
    364 
    365     PerfTest.Function TestQC_NFD_NFC_Text() {
    366         return new PerfTest.Function() {
    367             public void call() {
    368                 for (int i = 0; i < NFCFileLines.length; i++) {
    369                      Normalizer.quickCheck(NFCFileLines[i], Normalizer.NFD,0);
    370                 }
    371             }
    372 
    373             public long getOperationsPerIteration() {
    374                 int totalChars = 0;
    375                 for (int i = 0; i < NFCFileLines.length; i++) {
    376                     totalChars = totalChars + NFCFileLines[i].length();
    377                 }
    378                 return totalChars;
    379             }
    380         };
    381     }
    382 
    383     PerfTest.Function TestQC_NFD_Orig_Text() {
    384         return new PerfTest.Function() {
    385             public void call() {
    386                 for (int i = 0; i < fileLines.length; i++) {
    387                      Normalizer.quickCheck(fileLines[i], Normalizer.NFD,0);
    388                 }
    389             }
    390 
    391             public long getOperationsPerIteration() {
    392                 int totalChars = 0;
    393                 for (int i = 0; i < fileLines.length; i++) {
    394                     totalChars = totalChars + fileLines[i].length();
    395                 }
    396                 return totalChars;
    397             }
    398         };
    399     }
    400 
    401     PerfTest.Function TestQC_FCD_NFD_Text() {
    402         return new PerfTest.Function() {
    403             public void call() {
    404                 for (int i = 0; i < NFDFileLines.length; i++) {
    405                      Normalizer.quickCheck(NFDFileLines[i], Normalizer.FCD,0);
    406                 }
    407             }
    408 
    409             public long getOperationsPerIteration() {
    410                 int totalChars = 0;
    411                 for (int i = 0; i < NFDFileLines.length; i++) {
    412                     totalChars = totalChars + NFDFileLines[i].length();
    413                 }
    414                 return totalChars;
    415             }
    416         };
    417     }
    418 
    419     PerfTest.Function TestQC_FCD_NFC_Text() {
    420         return new PerfTest.Function() {
    421             public void call() {
    422                 for (int i = 0; i < NFCFileLines.length; i++) {
    423                      Normalizer.quickCheck(NFCFileLines[i], Normalizer.FCD,0);
    424                 }
    425             }
    426 
    427             public long getOperationsPerIteration() {
    428                 int totalChars = 0;
    429                 for (int i = 0; i < NFCFileLines.length; i++) {
    430                     totalChars = totalChars + NFCFileLines[i].length();
    431                 }
    432                 return totalChars;
    433             }
    434         };
    435     }
    436 
    437     PerfTest.Function TestQC_FCD_Orig_Text() {
    438         return new PerfTest.Function() {
    439             public void call() {
    440                 for (int i = 0; i < fileLines.length; i++) {
    441                      Normalizer.quickCheck(fileLines[i], Normalizer.FCD,0);
    442                 }
    443             }
    444 
    445             public long getOperationsPerIteration() {
    446                 int totalChars = 0;
    447                 for (int i = 0; i < fileLines.length; i++) {
    448                     totalChars = totalChars + fileLines[i].length();
    449                 }
    450                 return totalChars;
    451             }
    452         };
    453     }
    454 
    455     // Test isNormalized Performance
    456     PerfTest.Function TestIsNormalized_NFC_NFD_Text() {
    457         return new PerfTest.Function() {
    458             public void call() {
    459                 for (int i = 0; i < NFDFileLines.length; i++) {
    460                      Normalizer.isNormalized(NFDFileLines[i], Normalizer.NFC, 0);
    461                 }
    462             }
    463 
    464             public long getOperationsPerIteration() {
    465                 int totalChars = 0;
    466                 for (int i = 0; i < NFDFileLines.length; i++) {
    467                     totalChars = totalChars + NFDFileLines[i].length();
    468                 }
    469                 return totalChars;
    470             }
    471         };
    472     }
    473 
    474     PerfTest.Function TestIsNormalized_NFC_NFC_Text() {
    475         return new PerfTest.Function() {
    476             public void call() {
    477                 for (int i = 0; i < NFCFileLines.length; i++) {
    478                     Normalizer.isNormalized(NFCFileLines[i], Normalizer.NFC, 0);
    479                 }
    480             }
    481 
    482             public long getOperationsPerIteration() {
    483                 int totalChars = 0;
    484                 for (int i = 0; i < NFCFileLines.length; i++) {
    485                     totalChars = totalChars + NFCFileLines[i].length();
    486                 }
    487                 return totalChars;
    488             }
    489         };
    490     }
    491 
    492     PerfTest.Function TestIsNormalized_NFC_Orig_Text() {
    493         return new PerfTest.Function() {
    494             public void call() {
    495                 for (int i = 0; i < fileLines.length; i++) {
    496                     Normalizer.isNormalized(fileLines[i], Normalizer.NFC, 0);
    497                 }
    498             }
    499 
    500             public long getOperationsPerIteration() {
    501                 int totalChars = 0;
    502                 for (int i = 0; i < fileLines.length; i++) {
    503                     totalChars = totalChars + fileLines[i].length();
    504                 }
    505                 return totalChars;
    506             }
    507         };
    508     }
    509 
    510     PerfTest.Function TestIsNormalized_NFD_NFD_Text() {
    511         return new PerfTest.Function() {
    512             public void call() {
    513                 for (int i = 0; i < NFDFileLines.length; i++) {
    514                      Normalizer.isNormalized(NFDFileLines[i], Normalizer.NFD, 0);
    515                 }
    516             }
    517 
    518             public long getOperationsPerIteration() {
    519                 int totalChars = 0;
    520                 for (int i = 0; i < NFDFileLines.length; i++) {
    521                     totalChars = totalChars + NFDFileLines[i].length();
    522                 }
    523                 return totalChars;
    524             }
    525         };
    526     }
    527 
    528     PerfTest.Function TestIsNormalized_NFD_NFC_Text() {
    529         return new PerfTest.Function() {
    530             public void call() {
    531                 for (int i = 0; i < NFCFileLines.length; i++) {
    532                      Normalizer.isNormalized(NFCFileLines[i], Normalizer.NFD, 0);
    533                 }
    534             }
    535 
    536             public long getOperationsPerIteration() {
    537                 int totalChars = 0;
    538                 for (int i = 0; i < NFCFileLines.length; i++) {
    539                     totalChars = totalChars + NFCFileLines[i].length();
    540                 }
    541                 return totalChars;
    542             }
    543         };
    544     }
    545 
    546     PerfTest.Function TestIsNormalized_NFD_Orig_Text() {
    547         return new PerfTest.Function() {
    548             public void call() {
    549                 for (int i = 0; i < fileLines.length; i++) {
    550                     Normalizer.isNormalized(fileLines[i], Normalizer.NFD, 0);
    551                 }
    552             }
    553 
    554             public long getOperationsPerIteration() {
    555                 int totalChars = 0;
    556                 for (int i = 0; i < fileLines.length; i++) {
    557                     totalChars = totalChars + fileLines[i].length();
    558                 }
    559                 return totalChars;
    560             }
    561         };
    562     }
    563 
    564     PerfTest.Function TestIsNormalized_FCD_NFD_Text() {
    565         return new PerfTest.Function() {
    566             public void call() {
    567                 for (int i = 0; i < NFDFileLines.length; i++) {
    568                      Normalizer.isNormalized(NFDFileLines[i], Normalizer.FCD, 0);
    569                 }
    570             }
    571 
    572             public long getOperationsPerIteration() {
    573                 int totalChars = 0;
    574                 for (int i = 0; i < NFDFileLines.length; i++) {
    575                     totalChars = totalChars + NFDFileLines[i].length();
    576                 }
    577                 return totalChars;
    578             }
    579         };
    580     }
    581 
    582     PerfTest.Function TestIsNormalized_FCD_NFC_Text() {
    583         return new PerfTest.Function() {
    584             public void call() {
    585                 for (int i = 0; i < NFCFileLines.length; i++) {
    586                      Normalizer.isNormalized(NFCFileLines[i], Normalizer.FCD, 0);
    587                 }
    588             }
    589 
    590             public long getOperationsPerIteration() {
    591                 int totalChars = 0;
    592                 for (int i = 0; i < NFCFileLines.length; i++) {
    593                     totalChars = totalChars + NFCFileLines[i].length();
    594                 }
    595                 return totalChars;
    596             }
    597         };
    598     }
    599 
    600     PerfTest.Function TestIsNormalized_FCD_Orig_Text() {
    601         return new PerfTest.Function() {
    602             public void call() {
    603                 for (int i = 0; i < fileLines.length; i++) {
    604                      Normalizer.isNormalized(fileLines[i], Normalizer.FCD, 0);
    605                 }
    606             }
    607 
    608             public long getOperationsPerIteration() {
    609                 int totalChars = 0;
    610                 for (int i = 0; i < fileLines.length; i++) {
    611                     totalChars = totalChars + fileLines[i].length();
    612                 }
    613                 return totalChars;
    614             }
    615         };
    616     }
    617 
    618     /*
    619       private void printUsage() {
    620         System.out.println("Usage: " + this.getClass().getName() + " [OPTIONS] fileName\n"
    621                             + "\t-f or --fileName  \tfile to be used as test data\n"
    622                             + "\t-s or --sourceDir \tsource directory for files followed by path\n"
    623                             + "\t-e or --encoding  \tencoding of source files\n"
    624                             + "\t-b or --bulkMode  \tnormalize whole file at once\n"
    625                             + "\t-l or --lineMode  \tnormalize file one line at a time\n"
    626             );
    627         System.exit(1);
    628     }
    629     */
    630 
    631     String[] normalizeInput(String[] src, Normalizer.Mode mode) {
    632         String[] dest = new String[src.length];
    633         for (int i = 0; i < src.length; i++) {
    634             dest[i] = Normalizer.normalize(src[i], mode);
    635         }
    636 
    637         return dest;
    638     }
    639 
    640     /*
    641     void normalizerInit(boolean compose) {
    642         Class normalizer;
    643         boolean sun;
    644 
    645         try {
    646             normalizer = Class.forName("java.text.Normalizer");
    647             sun = false;
    648         } catch (ClassNotFoundException ex) {
    649             try {
    650                 normalizer = Class.forName("sun.text.Normalizer");
    651                 sun = true;
    652             } catch (ClassNotFoundException ex2) {
    653                 throw new RuntimeException(
    654                         "Could not find sun.text.Normalizer nor java.text.Normalizer and their required subclasses");
    655             }
    656         }
    657 
    658         try {
    659             if (sun) {
    660                 normalizerArgs = new Object[] { null, null, new Integer(0) };
    661                 normalizerArgs[1] = normalizer.getField(compose ? "COMPOSE" : "DECOMP").get(null);
    662                 normalizerMethod = normalizer.getMethod("normalize", new Class[] { String.class, normalizerArgs[1].getClass(), int.class });
    663                 // sun.text.Normalizer.normalize(line, compose
    664                 //   ? sun.text.Normalizer.COMPOSE
    665                 //   : sun.text.Normalizer.DECOMP, 0);
    666             } else {
    667                 normalizerArgs = new Object[] { null, null };
    668                 normalizerArgs[1] = Class.forName("java.text.Normalizer$Form").getField(compose ? "NFC" : "NFD").get(null);
    669                 normalizerMethod = normalizer.getMethod("normalize", new Class[] { CharSequence.class, normalizerArgs[1].getClass()});
    670                 // java.text.Normalizer.normalize(line, compose
    671                 //   ? java.text.Normalizer.Form.NFC
    672                 //   : java.text.Normalizer.Form.NFD);
    673             }
    674         } catch (Exception ex) {
    675             ex.printStackTrace();
    676             throw new RuntimeException("Reflection error -- could not load the JDK normalizer (" + normalizer.getName() + ")");
    677         }
    678     }
    679 
    680     void normalizerTest(String line) {
    681         try {
    682             normalizerArgs[0] = line;
    683             normalizerMethod.invoke(line, normalizerArgs);
    684         } catch (Exception ex) {
    685             if (ex instanceof InvocationTargetException) {
    686                 Throwable cause = ex.getCause();
    687                 cause.printStackTrace();
    688                 throw new RuntimeException(cause.getMessage());
    689             } else {
    690                 throw new RuntimeException("Reflection error -- could not run the JDK normalizer");
    691             }
    692         }
    693     }
    694     */
    695 
    696     void normalizerTest(String line, boolean compose) {
    697 //        sun.text.Normalizer.normalize(line, compose
    698 //            ? sun.text.Normalizer.COMPOSE
    699 //            : sun.text.Normalizer.DECOMP, 0);
    700         java.text.Normalizer.normalize(line, compose
    701             ? java.text.Normalizer.Form.NFC
    702             : java.text.Normalizer.Form.NFD);
    703     }
    704 }
    705