Back to index

glibc  2.9
dat_wcswidth.c
Go to the documentation of this file.
00001 /*
00002  *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
00003  *
00004  *      FILE: dat_wcswidth.c
00005  *
00006  *      WCSWIDTH:  int       wcswidth (const wchar_t *ws, size_t n);
00007  */
00008 
00009 TST_WCSWIDTH tst_wcswidth_loc [] = {
00010   {
00011     { Twcswidth, TST_LOC_de },
00012     {
00013       { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },    0 },  /* 01 */
00014        /*expect*/ { 0,1,0                           },
00015       },
00016       { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },    1 },  /* 02 */
00017        /*expect*/ { 0,1,1                           },
00018       },
00019       { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },    2 },  /* 03 */
00020        /*expect*/ { 0,1,2                           },
00021       },
00022       { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },    3 },  /* 04 */
00023        /*expect*/ { 0,1,3                           },
00024       },
00025       { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },    4 },  /* 05 */
00026        /*expect*/ { 0,1,3                           },
00027       },
00028       { /*input.*/ { { 0x0000 },                  1 },  /* 06 */
00029        /*expect*/ { 0,1,0                           },
00030       },
00031       { /*input.*/ { { 0x00C1,0x0001,0x0000 },           2 },  /* 07 */
00032        /*expect*/ { 0,1,-1                          },
00033       },
00034       { /*input.*/ { { 0x00C1,0x0001,0x0000 },           1 },  /* 08 */
00035        /*expect*/ { 0,1,1                           },
00036       },
00037       { /*input.*/ { { 0x00C1,0x0001,0x0000 },           2 },  /* 09 */
00038        /*expect*/ { 0,1,-1                          },
00039       },
00040       { /*input.*/ { { 0x00C1,0x0092,0x0000 },           2 },  /* 10 */
00041        /*expect*/ { 0,1,-1                          },
00042       },
00043       { /*input.*/ { { 0x00C1,0x0020,0x0000 },           2 },  /* 11 */
00044        /*expect*/ { 0,1,2                           },
00045       },
00046       { /*input.*/ { { 0x00C1,0x0021,0x0000 },           2 },  /* 12 */
00047        /*expect*/ { 0,1,2                           },
00048       },
00049       { /*input.*/ { { 0x00C1,0x007E,0x0000 },           2 },  /* 13 */
00050        /*expect*/ { 0,1,2                           },
00051       },
00052       { /*input.*/ { { 0x00C1,0x007F,0x0000 },           2 },  /* 14 */
00053        /*expect*/ { 0,1,-1                          },
00054       },
00055       { /*input.*/ { { 0x00C1,0x0080,0x0000 },           2 },  /* 15 */
00056        /*expect*/ { 0,1,-1                          },
00057       },
00058       { /*input.*/ { { 0x00C1,0x00A0,0x0000 },           2 },  /* 16 */
00059 #ifdef SHOJI_IS_RIGHT
00060        /*expect*/ { 0,1,-1                          },
00061 #else
00062        /*expect*/ { 0,1,2                           },
00063 #endif
00064       },
00065       { /*input.*/ { { 0x00C1,0x00A1,0x0000 },           2 },  /* 17 */
00066        /*expect*/ { 0,1,2                           },
00067       },
00068       { /*input.*/ { { 0x00C1,0x00FF,0x0000 },           2 },  /* 18 */
00069        /*expect*/ { 0,1,2                           },
00070       },
00071       { /*input.*/ { { 0x00C1,0x3042,0x0000 },           2 },  /* 19 */
00072        /*expect*/ { 0,1,-1                          },
00073       },
00074       { /*input.*/ { { 0x00C1,0x3044,0x0000 },           2 },  /* 20 */
00075        /*expect*/ { 0,1,-1                          },
00076       },
00077       { .is_last = 1 }
00078     }
00079   },
00080   {
00081     { Twcswidth, TST_LOC_enUS },
00082     {
00083       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },    0 },  /* 01 */
00084        /*expect*/ { 0,1,0                           },
00085       },
00086       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },    1 },  /* 02 */
00087        /*expect*/ { 0,1,1                           },
00088       },
00089       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },    2 },  /* 03 */
00090        /*expect*/ { 0,1,2                           },
00091       },
00092 #ifdef SHOJI_IS_RIGHT
00093       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },    3 },  /* 04 */
00094        /*expect*/ { 0,1,3                           },
00095       },
00096       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },    4 },  /* 05 */
00097        /*expect*/ { 0,1,3                           },
00098       },
00099 #else
00100       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },    3 },  /* 04 */
00101        /*expect*/ { 0,1,-1                          },
00102       },
00103       { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },    4 },  /* 05 */
00104        /*expect*/ { 0,1,3                           },
00105       },
00106 #endif
00107       { /*input.*/ { { 0x0000 },                  1 },  /* 06 */
00108        /*expect*/ { 0,1,0                           },
00109       },
00110       { /*input.*/ { { 0x0041,0x0001,0x0000 },           2 },  /* 07 */
00111        /*expect*/ { 0,1,-1                          },
00112       },
00113       { /*input.*/ { { 0x0041,0x0001,0x0000 },           1 },  /* 08 */
00114        /*expect*/ { 0,1,1                           },
00115       },
00116       { /*input.*/ { { 0x0041,0x0001,0x0000 },           2 },  /* 09 */
00117        /*expect*/ { 0,1,-1                          },
00118       },
00119       { /*input.*/ { { 0x0041,0x0092,0x0000 },           2 },  /* 10 */
00120        /*expect*/ { 0,1,-1                          },
00121       },
00122       { /*input.*/ { { 0x0041,0x0020,0x0000 },           2 },  /* 11 */
00123        /*expect*/ { 0,1,2                           },
00124       },
00125       { /*input.*/ { { 0x0041,0x0021,0x0000 },           2 },  /* 12 */
00126        /*expect*/ { 0,1,2                           },
00127       },
00128       { /*input.*/ { { 0x0041,0x007E,0x0000 },           2 },  /* 13 */
00129        /*expect*/ { 0,1,2                           },
00130       },
00131       { /*input.*/ { { 0x0041,0x007F,0x0000 },           2 },  /* 14 */
00132        /*expect*/ { 0,1,-1                          },
00133       },
00134       { /*input.*/ { { 0x0041,0x0080,0x0000 },           2 },  /* 15 */
00135        /*expect*/ { 0,1,-1                          },
00136       },
00137       { /*input.*/ { { 0x0041,0x00A0,0x0000 },           2 },  /* 16 */
00138        /*expect*/ { 0,1,-1                          },
00139       },
00140 #ifdef SHOJI_IS_RIGHT
00141       { /*input.*/ { { 0x0041,0x00A1,0x0000 },           2 },  /* 17 */
00142        /*expect*/ { 0,1,2                           },
00143       },
00144       { /*input.*/ { { 0x0041,0x00FF,0x0000 },           2 },  /* 18 */
00145        /*expect*/ { 0,1,2                           },
00146       },
00147 #else
00148       { /*input.*/ { { 0x0041,0x007E,0x0000 },           2 },  /* 17 */
00149        /*expect*/ { 0,1,2                           },
00150       },
00151       { /*input.*/ { { 0x0041,0x0020,0x0000 },           2 },  /* 18 */
00152        /*expect*/ { 0,1,2                           },
00153       },
00154 #endif
00155       { /*input.*/ { { 0x0041,0x3042,0x0000 },           2 },  /* 19 */
00156        /*expect*/ { 0,1,-1                          },
00157       },
00158       { /*input.*/ { { 0x0041,0x3044,0x0000 },           2 },  /* 20 */
00159        /*expect*/ { 0,1,-1                          },
00160       },
00161       { .is_last = 1 }
00162     }
00163   },
00164   {
00165     { Twcswidth, TST_LOC_eucJP },
00166     {
00167       { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },    0 },  /* 01 */
00168        /*expect*/ { 0,1,0                           },
00169       },
00170       { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },    1 },  /* 02 */
00171        /*expect*/ { 0,1,2                           },
00172       },
00173       { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },    2 },  /* 03 */
00174        /*expect*/ { 0,1,4                           },
00175       },
00176       { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },    3 },  /* 04 */
00177        /*expect*/ { 0,1,6                           },
00178       },
00179       { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },    4 },  /* 05 */
00180        /*expect*/ { 0,1,6                           },
00181       },
00182       { /*input.*/ { { 0x0000 },                  1 },  /* 06 */
00183        /*expect*/ { 0,1,0                           },
00184       },
00185       { /*input.*/ { { 0x008E,0x0001,0x0000 },           2 },  /* 07 */
00186        /*expect*/ { 0,1,-1                          },
00187       },
00188       { /*input.*/ { { 0x3041,0x008E,0x0000 },           1 },  /* 08 */
00189        /*expect*/ { 0,1,2                           },
00190       },
00191       { /*input.*/ { { 0x3041,0x008E,0x0000 },           2 },  /* 09 */
00192        /*expect*/ { 0,1,-1                          },
00193       },
00194       { /*input.*/ { { 0x3041,0x0001,0x0000 },           2 },  /* 10 */
00195        /*expect*/ { 0,1,-1                          },
00196       },
00197       { /*input.*/ { { 0x3041,0x3000,0x0000 },           2 },  /* 11 */
00198        /*expect*/ { 0,1,4                           },
00199       },
00200       { /*input.*/ { { 0x0041,0x0021,0x0000 },           2 },  /* 12 */
00201        /*expect*/ { 0,1,2                           },
00202       },
00203       { /*input.*/ { { 0x0041,0x007E,0x0000 },           2 },  /* 13 */
00204        /*expect*/ { 0,1,2                           },
00205       },
00206       { /*input.*/ { { 0x0041,0x007F,0x0000 },           2 },  /* 14 */
00207        /*expect*/ { 0,1,-1                          },
00208       },
00209       { /*input.*/ { { 0x0041,0x0080,0x0000 },           2 },  /* 15 */
00210        /*expect*/ { 0,1,-1                          },
00211       },
00212       { /*input.*/ { { 0x0041,0x00A0,0x0000 },           2 },  /* 16 */
00213        /*expect*/ { 0,1,-1                          },
00214       },
00215 #ifdef NO_WAIVER
00216       /* <NO_WAIVER> */      /* returns 3 */
00217       { /*input.*/ { { 0x0041,0x00A1,0x0000 },           2 },  /* 17 */
00218        /*expect*/ { 0,1,-1                          },
00219       },
00220 #else
00221       /* XXX U00A1 is valid -> /x8f/xa2/xc4 in JIS X 0212 */
00222       { /*input.*/ { { 0x0041,0x00A1,0x0000 },           2 },  /* 17 */
00223        /*expect*/ { 0,1,3                           },
00224       },
00225 #endif
00226       { /*input.*/ { { 0x0041,0xFF71,0x0000 },           2 },  /* 18 */
00227        /*expect*/ { 0,1,2                           },
00228       },
00229       { /*input.*/ { { 0x0041,0x3042,0x0000 },           2 },  /* 19 */
00230        /*expect*/ { 0,1,3                           },
00231       },
00232       { /*input.*/ { { 0x0041,0x3044,0x0000 },           2 },  /* 20 */
00233        /*expect*/ { 0,1,3                           },
00234       },
00235       { .is_last = 1 }
00236     }
00237   },
00238   {
00239     { Twcswidth, TST_LOC_end }
00240   }
00241 };