(root)/
glibc-2.38/
localedata/
tests-mbwc/
dat_wcswidth.c
       1  /*
       2   *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
       3   *
       4   *	 FILE:	dat_wcswidth.c
       5   *
       6   *	 WCSWIDTH:  int	 wcswidth (const wchar_t *ws, size_t n);
       7   */
       8  
       9  TST_WCSWIDTH tst_wcswidth_loc [] = {
      10    {
      11      { Twcswidth, TST_LOC_de },
      12      {
      13        { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },	 0 },  /* 01 */
      14  	/*expect*/ { 0,1,0				   },
      15        },
      16        { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },	 1 },  /* 02 */
      17  	/*expect*/ { 0,1,1				   },
      18        },
      19        { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },	 2 },  /* 03 */
      20  	/*expect*/ { 0,1,2				   },
      21        },
      22        { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },	 3 },  /* 04 */
      23  	/*expect*/ { 0,1,3				   },
      24        },
      25        { /*input.*/ { { 0x00C1,0x00C2,0x00C3,0x0000 },	 4 },  /* 05 */
      26  	/*expect*/ { 0,1,3				   },
      27        },
      28        { /*input.*/ { { 0x0000 },			 1 },  /* 06 */
      29  	/*expect*/ { 0,1,0				   },
      30        },
      31        { /*input.*/ { { 0x00C1,0x0001,0x0000 },		 2 },  /* 07 */
      32  	/*expect*/ { 0,1,-1				   },
      33        },
      34        { /*input.*/ { { 0x00C1,0x0001,0x0000 },		 1 },  /* 08 */
      35  	/*expect*/ { 0,1,1				   },
      36        },
      37        { /*input.*/ { { 0x00C1,0x0001,0x0000 },		 2 },  /* 09 */
      38  	/*expect*/ { 0,1,-1				   },
      39        },
      40        { /*input.*/ { { 0x00C1,0x0092,0x0000 },		 2 },  /* 10 */
      41  	/*expect*/ { 0,1,-1				   },
      42        },
      43        { /*input.*/ { { 0x00C1,0x0020,0x0000 },		 2 },  /* 11 */
      44  	/*expect*/ { 0,1,2				   },
      45        },
      46        { /*input.*/ { { 0x00C1,0x0021,0x0000 },		 2 },  /* 12 */
      47  	/*expect*/ { 0,1,2				   },
      48        },
      49        { /*input.*/ { { 0x00C1,0x007E,0x0000 },		 2 },  /* 13 */
      50  	/*expect*/ { 0,1,2				   },
      51        },
      52        { /*input.*/ { { 0x00C1,0x007F,0x0000 },		 2 },  /* 14 */
      53  	/*expect*/ { 0,1,-1				   },
      54        },
      55        { /*input.*/ { { 0x00C1,0x0080,0x0000 },		 2 },  /* 15 */
      56  	/*expect*/ { 0,1,-1				   },
      57        },
      58        { /*input.*/ { { 0x00C1,0x00A0,0x0000 },		 2 },  /* 16 */
      59  	/*expect*/ { 0,1,2				   },
      60        },
      61        { /*input.*/ { { 0x00C1,0x00A1,0x0000 },		 2 },  /* 17 */
      62  	/*expect*/ { 0,1,2				   },
      63        },
      64        { /*input.*/ { { 0x00C1,0x00FF,0x0000 },		 2 },  /* 18 */
      65  	/*expect*/ { 0,1,2				   },
      66        },
      67        { /*input.*/ { { 0x00C1,0x3042,0x0000 },		 2 },  /* 19 */
      68  	/*expect*/ { 0,1,-1				   },
      69        },
      70        { /*input.*/ { { 0x00C1,0x3044,0x0000 },		 2 },  /* 20 */
      71  	/*expect*/ { 0,1,-1				   },
      72        },
      73        { .is_last = 1 }
      74      }
      75    },
      76    {
      77      { Twcswidth, TST_LOC_enUS },
      78      {
      79        { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 0 },  /* 01 */
      80  	/*expect*/ { 0,1,0				   },
      81        },
      82        { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 1 },  /* 02 */
      83  	/*expect*/ { 0,1,1				   },
      84        },
      85        { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 2 },  /* 03 */
      86  	/*expect*/ { 0,1,2				   },
      87        },
      88        { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 3 },  /* 04 */
      89  	/*expect*/ { 0,1,-1				   },
      90        },
      91        { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },	 4 },  /* 05 */
      92  	/*expect*/ { 0,1,3				   },
      93        },
      94        { /*input.*/ { { 0x0000 },			 1 },  /* 06 */
      95  	/*expect*/ { 0,1,0				   },
      96        },
      97        { /*input.*/ { { 0x0041,0x0001,0x0000 },		 2 },  /* 07 */
      98  	/*expect*/ { 0,1,-1				   },
      99        },
     100        { /*input.*/ { { 0x0041,0x0001,0x0000 },		 1 },  /* 08 */
     101  	/*expect*/ { 0,1,1				   },
     102        },
     103        { /*input.*/ { { 0x0041,0x0001,0x0000 },		 2 },  /* 09 */
     104  	/*expect*/ { 0,1,-1				   },
     105        },
     106        { /*input.*/ { { 0x0041,0x0092,0x0000 },		 2 },  /* 10 */
     107  	/*expect*/ { 0,1,-1				   },
     108        },
     109        { /*input.*/ { { 0x0041,0x0020,0x0000 },		 2 },  /* 11 */
     110  	/*expect*/ { 0,1,2				   },
     111        },
     112        { /*input.*/ { { 0x0041,0x0021,0x0000 },		 2 },  /* 12 */
     113  	/*expect*/ { 0,1,2				   },
     114        },
     115        { /*input.*/ { { 0x0041,0x007E,0x0000 },		 2 },  /* 13 */
     116  	/*expect*/ { 0,1,2				   },
     117        },
     118        { /*input.*/ { { 0x0041,0x007F,0x0000 },		 2 },  /* 14 */
     119  	/*expect*/ { 0,1,-1				   },
     120        },
     121        { /*input.*/ { { 0x0041,0x0080,0x0000 },		 2 },  /* 15 */
     122  	/*expect*/ { 0,1,-1				   },
     123        },
     124        { /*input.*/ { { 0x0041,0x00A0,0x0000 },		 2 },  /* 16 */
     125  	/*expect*/ { 0,1,-1				   },
     126        },
     127        { /*input.*/ { { 0x0041,0x007E,0x0000 },		 2 },  /* 17 */
     128  	/*expect*/ { 0,1,2				   },
     129        },
     130        { /*input.*/ { { 0x0041,0x0020,0x0000 },		 2 },  /* 18 */
     131  	/*expect*/ { 0,1,2				   },
     132        },
     133        { /*input.*/ { { 0x0041,0x3042,0x0000 },		 2 },  /* 19 */
     134  	/*expect*/ { 0,1,-1				   },
     135        },
     136        { /*input.*/ { { 0x0041,0x3044,0x0000 },		 2 },  /* 20 */
     137  	/*expect*/ { 0,1,-1				   },
     138        },
     139        { .is_last = 1 }
     140      }
     141    },
     142    {
     143      { Twcswidth, TST_LOC_eucJP },
     144      {
     145        { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },	 0 },  /* 01 */
     146  	/*expect*/ { 0,1,0				   },
     147        },
     148        { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },	 1 },  /* 02 */
     149  	/*expect*/ { 0,1,2				   },
     150        },
     151        { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },	 2 },  /* 03 */
     152  	/*expect*/ { 0,1,4				   },
     153        },
     154        { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },	 3 },  /* 04 */
     155  	/*expect*/ { 0,1,6				   },
     156        },
     157        { /*input.*/ { { 0x3041,0x3042,0x3043,0x0000 },	 4 },  /* 05 */
     158  	/*expect*/ { 0,1,6				   },
     159        },
     160        { /*input.*/ { { 0x0000 },			 1 },  /* 06 */
     161  	/*expect*/ { 0,1,0				   },
     162        },
     163        { /*input.*/ { { 0x008E,0x0001,0x0000 },		 2 },  /* 07 */
     164  	/*expect*/ { 0,1,-1				   },
     165        },
     166        { /*input.*/ { { 0x3041,0x008E,0x0000 },		 1 },  /* 08 */
     167  	/*expect*/ { 0,1,2				   },
     168        },
     169        { /*input.*/ { { 0x3041,0x008E,0x0000 },		 2 },  /* 09 */
     170  	/*expect*/ { 0,1,-1				   },
     171        },
     172        { /*input.*/ { { 0x3041,0x0001,0x0000 },		 2 },  /* 10 */
     173  	/*expect*/ { 0,1,-1				   },
     174        },
     175        { /*input.*/ { { 0x3041,0x3000,0x0000 },		 2 },  /* 11 */
     176  	/*expect*/ { 0,1,4				   },
     177        },
     178        { /*input.*/ { { 0x0041,0x0021,0x0000 },		 2 },  /* 12 */
     179  	/*expect*/ { 0,1,2				   },
     180        },
     181        { /*input.*/ { { 0x0041,0x007E,0x0000 },		 2 },  /* 13 */
     182  	/*expect*/ { 0,1,2				   },
     183        },
     184        { /*input.*/ { { 0x0041,0x007F,0x0000 },		 2 },  /* 14 */
     185  	/*expect*/ { 0,1,-1				   },
     186        },
     187        { /*input.*/ { { 0x0041,0x0080,0x0000 },		 2 },  /* 15 */
     188  	/*expect*/ { 0,1,-1				   },
     189        },
     190        { /*input.*/ { { 0x0041,0x00A0,0x0000 },		 2 },  /* 16 */
     191  	/*expect*/ { 0,1,-1				   },
     192        },
     193  #ifdef NO_WAIVER
     194        /* <NO_WAIVER> */	 /* returns 3 */
     195        { /*input.*/ { { 0x0041,0x00A1,0x0000 },		 2 },  /* 17 */
     196  	/*expect*/ { 0,1,-1				   },
     197        },
     198  #else
     199        /* XXX U00A1 is valid -> /x8f/xa2/xc4 in JIS X 0212 */
     200        { /*input.*/ { { 0x0041,0x00A1,0x0000 },		 2 },  /* 17 */
     201  	/*expect*/ { 0,1,3				   },
     202        },
     203  #endif
     204        { /*input.*/ { { 0x0041,0xFF71,0x0000 },		 2 },  /* 18 */
     205  	/*expect*/ { 0,1,2				   },
     206        },
     207        { /*input.*/ { { 0x0041,0x3042,0x0000 },		 2 },  /* 19 */
     208  	/*expect*/ { 0,1,3				   },
     209        },
     210        { /*input.*/ { { 0x0041,0x3044,0x0000 },		 2 },  /* 20 */
     211  	/*expect*/ { 0,1,3				   },
     212        },
     213        { .is_last = 1 }
     214      }
     215    },
     216    {
     217      { Twcswidth, TST_LOC_end }
     218    }
     219  };