ICU-4263 fixed bad locale data, added test

X-SVN-Rev: 16909
This commit is contained in:
Doug Felt 2004-12-02 21:49:50 +00:00
parent 7e756c1233
commit e2d8c9baaa
7 changed files with 367 additions and 127 deletions

View file

@ -47,7 +47,7 @@ ga {
"1,000: <%%thousands<[ >%%cardwithnumber>];\n"
"1,000,000: <%%millions<[ >%%cardwithnumber>];\n"
"1,000,000,000: <%%billions<[ >%%cardwithnumber>];\n"
"1,000,000,000: <%%trillions<[ >%%cardwithnumber>];\n"
"1,000,000,000,000: <%%trillions<[ >%%cardwithnumber>];\n"
"1,000,000,000,000,000: =#,##0=;\n"
// rules to give hundreds value

View file

@ -12,128 +12,279 @@ he {
//------------------------------------------------------------
SpelloutRules {
"%masculine_singular_indefinite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05e8\u05d0\u05e9\u05d5\u05df;\n"
"\u05e9\u05e0\u05d9;\n"
"\u05e9\u05dc\u05d9\u05e9\u05d9;\n"
"\u05e8\u05d1\u05d9\u05e2\u05d9;\n"
"\u05d7\u05de\u05d9\u05e9\u05d9;\n"
"\u05e9\u05d9\u05e9\u05d9;\n"
"\u05e9\u05d1\u05d9\u05e2\u05d9;\n"
"\u05e9\u05de\u05d9\u05e0\u05d9;\n"
"\u05ea\u05e9\u05d9\u05e2\u05d9;\n"
"\u05e2\u05e9\u05d9\u05e8\u05d9;\n"
"11: =%masculine=;\n"
"1001: =%%unwieldy=;\n"
"%masculine_singular_definite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05d4\u05e8\u05d0\u05e9\u05d5\u05df;\n"
"\u05d4\u05e9\u05e0\u05d9;\n"
"\u05d4\u05e9\u05dc\u05d9\u05e9\u05d9;\n"
"\u05d4\u05e8\u05d1\u05d9\u05e2\u05d9;\n"
"\u05d4\u05d7\u05de\u05d9\u05e9\u05d9;\n"
"\u05d4\u05e9\u05d9\u05e9\u05d9;\n"
"\u05d4\u05e9\u05d1\u05d9\u05e2\u05d9;\n"
"\u05d4\u05e9\u05de\u05d9\u05e0\u05d9;\n"
"\u05d4\u05ea\u05e9\u05d9\u05e2\u05d9;\n"
"\u05d4\u05e2\u05e9\u05d9\u05e8\u05d9;\n"
"11: \u05d4=%masculine=;\n"
"1001: =%%unwieldy=;\n"
"%masculine_plural_indefinite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05e8\u05d0\u05e9\u05d5\u05e0\u05d9\u05dd;\n"
"%%tunits:\n"
"\u05d0\u05e4\u05e1;\n"
"\u05d0\u05d7\u05ea;\n"
"\u05e9\u05ea\u05d9\u05d9\u05dd;\n"
"\u05e9\u05dc\u05d5\u05e9\u05ea;\n"
"\u05d0\u05e8\u05d1\u05e2\u05ea;\n"
"\u05d7\u05de\u05e9\u05ea;\n"
"\u05e9\u05e9\u05ea;\n"
"\u05e9\u05d1\u05e2\u05ea;\n"
"\u05e9\u05de\u05d5\u05e0\u05ea;\n"
"\u05ea\u05e9\u05e2\u05ea;\n"
"\u05e2\u05e9\u05e8\u05ea;\n"
"=%masculine=;\n"
"%%txunits:\n"
"\u05d5\u05d0\u05e4\u05e1;\n"
"\u05d5\u05d0\u05d7\u05ea;\n"
"\u05d5\u05e9\u05ea\u05d9\u05d9\u05dd;\n"
"\u05d5\u05e9\u05dc\u05d5\u05e9\u05ea;\n"
"\u05d5\u05d0\u05e8\u05d1\u05e2\u05ea;\n"
"\u05d5\u05d7\u05de\u05e9\u05ea;\n"
"\u05d5\u05e9\u05e9\u05ea;\n"
"\u05d5\u05e9\u05d1\u05e2\u05ea;\n"
"\u05d5\u05e9\u05de\u05d5\u05e0\u05ea;\n"
"\u05d5\u05ea\u05e9\u05e2\u05ea;\n"
"\u05d5\u05e2\u05e9\u05e8\u05ea;\n"
"=%%mxunits=;\n"
"%masculine:\n"
"-x: \u05de\u05d9\u05e0\u05d5\u05e1 >>;\n"
"x.x: <%masculine< \u05e0\u05e7\u05d5\u05d3\u05d4 >%%fraction>;\n"
"\u05d0\u05e4\u05e1;\n"
"\u05d0\u05d7\u05d3;\n"
"\u05e9\u05e0\u05d9\u05d9\u05dd;\n"
"\u05e9\u05dc\u05d9\u05e9\u05d9\u05d9\u05dd;\n"
"\u05e8\u05d1\u05d9\u05e2\u05d9\u05d9\u05dd;\n"
"\u05d7\u05de\u05d9\u05e9\u05d9\u05d9\u05dd;\n"
"\u05e9\u05d9\u05e9\u05d9\u05d9\u05dd;\n"
"\u05e9\u05d1\u05d9\u05e2\u05d9\u05d9\u05dd;\n"
"\u05e9\u05de\u05d9\u05e0\u05d9\u05d9\u05dd;\n"
"\u05ea\u05e9\u05d9\u05e2\u05d9\u05d9\u05dd;\n"
"\u05e2\u05e9\u05d9\u05e8\u05d9\u05d9\u05dd;\n"
"11: =%masculine=;\n"
"1001: =%%unwieldy=;\n"
"%masculine_plural_definite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05d4\u05e8\u05d0\u05e9\u05d5\u05e0\u05d9\u05dd;\n"
"\u05d4\u05e9\u05e0\u05d9\u05d9\u05dd;\n"
"\u05d4\u05e9\u05dc\u05d9\u05e9\u05d9\u05d9\u05dd;\n"
"\u05d4\u05e8\u05d1\u05d9\u05e2\u05d9\u05d9\u05dd;\n"
"\u05d4\u05d7\u05de\u05d9\u05e9\u05d9\u05d9\u05dd;\n"
"\u05d4\u05e9\u05d9\u05e9\u05d9\u05d9\u05dd;\n"
"\u05d4\u05e9\u05d1\u05d9\u05e2\u05d9\u05d9\u05dd;\n"
"\u05d4\u05e9\u05de\u05d9\u05e0\u05d9\u05d9\u05dd;\n"
"\u05d4\u05ea\u05e9\u05d9\u05e2\u05d9\u05d9\u05dd;\n"
"\u05d4\u05e2\u05e9\u05d9\u05e8\u05d9\u05d9\u05dd;\n"
"11: \u05d4=%masculine=;\n"
"1001: =%%unwieldy=;\n"
"%feminine_singular_indefinite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05e8\u05d0\u05e9\u05d5\u05e0\u05d4;\n"
"\u05e9\u05e0\u05d9\u05d4;\n"
"\u05e9\u05dc\u05d9\u05e9\u05d9\u05ea;\n"
"\u05e8\u05d1\u05d9\u05e2\u05d9\u05ea;\n"
"\u05d7\u05de\u05d9\u05e9\u05d9\u05ea;\n"
"\u05e9\u05d9\u05e9\u05d9\u05ea;\n"
"\u05e9\u05d1\u05d9\u05e2\u05d9\u05ea;\n"
"\u05e9\u05de\u05d9\u05e0\u05d9\u05ea;\n"
"\u05ea\u05e9\u05d9\u05e2\u05d9\u05ea;\n"
"\u05e2\u05e9\u05d9\u05e8\u05d9\u05ea;\n"
"11: =%feminine=;\n"
"1001: =%%unwieldy=;\n"
"%feminine_singular_definite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05d4\u05e8\u05d0\u05e9\u05d5\u05e0\u05d4;\n"
"\u05d4\u05e9\u05e0\u05d9\u05d4;\n"
"\u05d4\u05e9\u05dc\u05d9\u05e9\u05d9\u05ea;\n"
"\u05d4\u05e8\u05d1\u05d9\u05e2\u05d9\u05ea;\n"
"\u05d4\u05d7\u05de\u05d9\u05e9\u05d9\u05ea;\n"
"\u05d4\u05e9\u05d9\u05e9\u05d9\u05ea;\n"
"\u05d4\u05e9\u05d1\u05d9\u05e2\u05d9\u05ea;\n"
"\u05d4\u05e9\u05de\u05d9\u05e0\u05d9\u05ea;\n"
"\u05d4\u05ea\u05e9\u05d9\u05e2\u05d9\u05ea;\n"
"\u05d4\u05e2\u05e9\u05d9\u05e8\u05d9\u05ea;\n"
"11: \u05d4=%feminine=;\n"
"1001: =%%unwieldy=;\n"
"%feminine_plural_indefinite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05e8\u05d0\u05e9\u05d5\u05e0\u05d5\u05ea;\n"
"\u05e9\u05e0\u05d9\u05d5\u05ea;\n"
"\u05e9\u05dc\u05d9\u05e9\u05d9\u05d5\u05ea;\n"
"\u05e8\u05d1\u05d9\u05e2\u05d9\u05d5\u05ea;\n"
"\u05d7\u05de\u05d9\u05e9\u05d9\u05d5\u05ea;\n"
"\u05e9\u05d9\u05e9\u05d9\u05d5\u05ea;\n"
"\u05e9\u05d1\u05d9\u05e2\u05d9\u05d5\u05ea;\n"
"\u05e9\u05de\u05d9\u05e0\u05d9\u05d5\u05ea;\n"
"\u05ea\u05e9\u05d9\u05e2\u05d9\u05d5\u05ea;\n"
"\u05e2\u05e9\u05d9\u05e8\u05d9\u05d5\u05ea;\n"
"11: =%feminine=;\n"
"1001: =%%unwieldy=;\n"
"%feminine_plural_definite:\n"
"-x: =%%unwieldy=;\n"
"=%%unwieldy=;\n"
"\u05d4\u05e8\u05d0\u05e9\u05d5\u05e0\u05d5\u05ea;\n"
"\u05d4\u05e9\u05e0\u05d9\u05d5\u05ea;\n"
"\u05d4\u05e9\u05dc\u05d9\u05e9\u05d9\u05d5\u05ea;\n"
"\u05d4\u05e8\u05d1\u05d9\u05e2\u05d9\u05d5\u05ea;\n"
"\u05d4\u05d7\u05de\u05d9\u05e9\u05d9\u05d5\u05ea;\n"
"\u05d4\u05e9\u05d9\u05e9\u05d9\u05d5\u05ea;\n"
"\u05d4\u05e9\u05d1\u05d9\u05e2\u05d9\u05d5\u05ea;\n"
"\u05d4\u05e9\u05de\u05d9\u05e0\u05d9\u05d5\u05ea;\n"
"\u05d4\u05ea\u05e9\u05d9\u05e2\u05d9\u05d5\u05ea;\n"
"\u05d4\u05e2\u05e9\u05d9\u05e8\u05d9\u05d5\u05ea;\n"
"11: \u05d4=%feminine=;\n"
"1001: =%%unwieldy=;\n"
"%%unwieldy:\n"
"\u05de\u05e1\u05e4\u05e8 =%feminine=;\n"
"\u05e9\u05dc\u05d5\u05e9\u05d4;\n"
"\u05d0\u05e8\u05d1\u05e2\u05d4;\n"
"\u05d7\u05de\u05d9\u05e9\u05d4;\n"
"\u05e9\u05d9\u05e9\u05d4;\n"
"\u05e9\u05d1\u05e2\u05d4;\n"
"\u05e9\u05de\u05d5\u05e0\u05d4;\n"
"\u05ea\u05e9\u05e2\u05d4;\n"
"\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d0\u05d7\u05d3\u0020\u05e2\u05e9\u05e8;\n"
"\u05e9\u05e0\u05d9\u05dd\u0020\u05e2\u05e9\u05e8;\n"
"\u05e9\u05dc\u05d5\u05e9\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d0\u05e8\u05d1\u05e2\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d7\u05de\u05d9\u05e9\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05e9\u05d9\u05e9\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05e9\u05d1\u05e2\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05e9\u05de\u05d5\u05e0\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05ea\u05e9\u05e2\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"20: \u05e2\u05e9\u05e8\u05d9\u05dd[ \u05d5>>];\n"
"30: \u05e9\u05dc\u05d5\u05e9\u05d9\u05dd[ \u05d5>>];\n"
"40: \u05d0\u05e8\u05d1\u05e2\u05d9\u05dd[ \u05d5>>];\n"
"50: \u05d7\u05de\u05d9\u05e9\u05d9\u05dd[ \u05d5>>];\n"
"60: \u05e9\u05d9\u05e9\u05d9\u05dd[ \u05d5>>];\n"
"70: \u05e9\u05d1\u05e2\u05d9\u05dd[ \u05d5>>];\n"
"80: \u05e9\u05de\u05d5\u05e0\u05d9\u05dd[ \u05d5>>];\n"
"90: \u05ea\u05e9\u05e2\u05d9\u05dd[ \u05d5>>];\n"
"100: \u05de\u05d0\u05d4[ >%%mxunits>];\n"
"200: \u05de\u05d0\u05ea\u05d9\u05d9\u05dd[ >%%mxunits>];\n"
"300: <%feminine< \u05de\u05d0\u05d5\u05ea[ >%%mxunits>];\n"
"1000: \u05d0\u05dc\u05e3[ >%%mxunits>];\n"
"2000: \u05d0\u05dc\u05e4\u05d9\u05d9\u05dd[ >%%mxunits>];\n"
"3000: <%%tunits< \u05d0\u05dc\u05e4\u05d9\u05dd[ >%%mxunits>];\n"
"11000/1000: << \u05d0\u05dc\u05e3[ >%%mxunits>];\n"
"1,000,000: \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >%%mxunits>];\n"
"2,000,000: \u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >%%mxunits>];\n"
"3,000,000: << \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >%%mxunits>];\n"
"1,000,000,000: \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >%%mxunits>];\n"
"2,000,000,000: \u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >%%mxunits>];\n"
"3,000,000,000: << \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >%%mxunits>];\n"
"1,000,000,000,000: \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >%%mxunits>];\n"
"2,000,000,000,000: \u05e9\u05e0\u05d9 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >%%mxunits>];\n"
"3,000,000,000,000: << \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >%%mxunits>];\n"
"1,000,000,000,000,000: =#,###.##=;\n"
"%%fraction:\n"
"10: <%feminine<<;\n"
"100: <%feminine<<;\n"
"1000: <%feminine<<;\n"
"10,000: <%feminine<<;\n"
"100,000: <%feminine<<;\n"
"1,000,000: <%feminine<<;\n"
"10,000,000: <%feminine<<;\n"
"100,000,000: <%feminine<<;\n"
"1,000,000,000: <%feminine<<;\n"
"10,000,000,000: <#,##0<;\n"
"%%mxunits:\n"
"0:;\n"
"\u05d5\u05d0\u05d7\u05d3;\n"
"\u05d5\u05e9\u05e0\u05d9\u05d9\u05dd;\n"
"\u05d5\u05e9\u05dc\u05d5\u05e9\u05d4;\n"
"\u05d5\u05d0\u05e8\u05d1\u05e2\u05d4;\n"
"\u05d5\u05d7\u05de\u05d9\u05e9\u05d4;\n"
"\u05d5\u05e9\u05d9\u05e9\u05d4;\n"
"\u05d5\u05e9\u05d1\u05e2\u05d4;\n"
"\u05d5\u05e9\u05de\u05d5\u05e0\u05d4;\n"
"\u05d5\u05ea\u05e9\u05e2\u05d4;\n"
"\u05d5\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05d0\u05d7\u05d3\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05e9\u05e0\u05d9\u05dd\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05e9\u05dc\u05d5\u05e9\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05d0\u05e8\u05d1\u05e2\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05d7\u05de\u05d9\u05e9\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05e9\u05d9\u05e9\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05e9\u05d1\u05e2\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05e9\u05de\u05d5\u05e0\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"\u05d5\u05ea\u05e9\u05e2\u05d4\u0020\u05e2\u05e9\u05e8;\n"
"20: \u05d5\u05e2\u05e9\u05e8\u05d9\u05dd;\n"
"21: \u05e2\u05e9\u05e8\u05d9\u05dd >>;\n"
"30: \u05d5\u05e9\u05dc\u05d5\u05e9\u05d9\u05dd;\n"
"31: \u05e9\u05dc\u05d5\u05e9\u05d9\u05dd >>;\n"
"40: \u05d5\u05d0\u05e8\u05d1\u05e2\u05d9\u05dd;\n"
"41: \u05d0\u05e8\u05d1\u05e2\u05d9\u05dd >>;\n"
"50: \u05d5\u05d7\u05de\u05d9\u05e9\u05d9\u05dd;\n"
"51: \u05d7\u05de\u05d9\u05e9\u05d9\u05dd >>;\n"
"60: \u05d5\u05e9\u05d9\u05e9\u05d9\u05dd;\n"
"61: \u05e9\u05d9\u05e9\u05d9\u05dd >>;\n"
"70: \u05d5\u05e9\u05d1\u05e2\u05d9\u05dd;\n"
"71: \u05e9\u05d1\u05e2\u05d9\u05dd >>;\n"
"80: \u05d5\u05e9\u05de\u05d5\u05e0\u05d9\u05dd;\n"
"81: \u05e9\u05de\u05d5\u05e0\u05d9\u05dd >>;\n"
"90: \u05d5\u05ea\u05e9\u05e2\u05d9\u05dd;\n"
"91: \u05ea\u05e9\u05e2\u05d9\u05dd >>;\n"
"100: \u05d5\u05de\u05d0\u05d4;\n"
"101: \u05de\u05d0\u05d4 >>;\n"
"200: \u05d5\u05de\u05d0\u05ea\u05d9\u05d9\u05dd;\n"
"201: \u05de\u05d0\u05ea\u05d9\u05d9\u05dd >>;\n"
"300: \u05d5\u05e9\u05dc\u05d5\u05e9 \u05de\u05d0\u05d5\u05ea;\n"
"301: \u05e9\u05dc\u05d5\u05e9 \u05de\u05d0\u05d5\u05ea >>;\n"
"400: \u05d5\u05d0\u05e8\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea;\n"
"401: \u05d0\u05e8\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea >>;\n"
"500: \u05d5\u05d7\u05de\u05e9 \u05de\u05d0\u05d5\u05ea;\n"
"501: \u05d7\u05de\u05e9 \u05de\u05d0\u05d5\u05ea >>;\n"
"600: \u05d5\u05e9\u05e9 \u05de\u05d0\u05d5\u05ea;\n"
"601: \u05e9\u05e9 \u05de\u05d0\u05d5\u05ea >>;\n"
"700: \u05d5\u05e9\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea;\n"
"701: \u05e9\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea >>;\n"
"800: \u05d5\u05e9\u05de\u05d5\u05e0\u05d4 \u05de\u05d0\u05d5\u05ea;\n"
"801: \u05e9\u05de\u05d5\u05e0\u05d4 \u05de\u05d0\u05d5\u05ea >>;\n"
"900: \u05d5\u05ea\u05e9\u05e2 \u05de\u05d0\u05d5\u05ea;\n"
"901: \u05ea\u05e9\u05e2 \u05de\u05d0\u05d5\u05ea >>;\n"
"1000: \u05d5\u05d0\u05dc\u05e3[ >>];\n"
"2000: \u05d5\u05d0\u05dc\u05e4\u05d9\u05d9\u05dd[ >>];\n"
"3000: <%%txunits< \u05d0\u05dc\u05e4\u05d9\u05dd[ >>];\n"
"11000/1000: << \u05d0\u05dc\u05e3[ >>];\n"
"1,000,000: \u05d5\u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"2,000,000: \u05d5\u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"3,000,000: << \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"1,000,000,000: \u05d5\u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >>];\n"
"2,000,000,000: \u05d5\u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >>];\n"
"3,000,000,000: << \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >>];\n"
"1,000,000,000,000: \u05d5\u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"2,000,000,000,000: \u05d5\u05e9\u05e0\u05d9 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"3,000,000,000,000: << \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"1,000,000,000,000,000: =#,###.##=;\n"
"%feminine:\n"
"-x: \u05de\u05d9\u05e0\u05d5\u05e1 >>;\n"
"x.x: <%feminine< \u05e0\u05e7\u05d5\u05d3\u05d4 >%%fraction>;\n"
"\u05d0\u05e4\u05e1;\n"
"\u05d0\u05d7\u05ea;\n"
"\u05e9\u05ea\u05d9\u05d9\u05dd;\n"
"\u05e9\u05dc\u05d5\u05e9;\n"
"\u05d0\u05e8\u05d1\u05e2;\n"
"\u05d7\u05de\u05e9;\n"
"\u05e9\u05e9;\n"
"\u05e9\u05d1\u05e2;\n"
"\u05e9\u05de\u05d5\u05e0\u05d4;\n"
"\u05ea\u05e9\u05e2;\n"
"\u05e2\u05e9\u05e8;\n"
"\u05d0\u05d7\u05ea\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05e9\u05ea\u05d9\u05dd\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05e9\u05dc\u05d5\u05e9\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d0\u05e8\u05d1\u05e2\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d7\u05de\u05e9\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05e9\u05e9\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05e9\u05d1\u05e2\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05e9\u05de\u05d5\u05e0\u05d4\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05ea\u05e9\u05e2\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"20: \u05e2\u05e9\u05e8\u05d9\u05dd[ \u05d5>>];\n"
"30: \u05e9\u05dc\u05d5\u05e9\u05d9\u05dd[ \u05d5>>];\n"
"40: \u05d0\u05e8\u05d1\u05e2\u05d9\u05dd[ \u05d5>>];\n"
"50: \u05d7\u05de\u05d9\u05e9\u05d9\u05dd[ \u05d5>>];\n"
"60: \u05e9\u05d9\u05e9\u05d9\u05dd[ \u05d5>>];\n"
"70: \u05e9\u05d1\u05e2\u05d9\u05dd[ \u05d5>>];\n"
"80: \u05e9\u05de\u05d5\u05e0\u05d9\u05dd[ \u05d5>>];\n"
"90: \u05ea\u05e9\u05e2\u05d9\u05dd[ \u05d5>>];\n"
"100: \u05de\u05d0\u05d4[ >%%fxunits>];\n"
"200: \u05de\u05d0\u05ea\u05d9\u05d9\u05dd[ >%%fxunits>];\n"
"300: << \u05de\u05d0\u05d5\u05ea[ >%%fxunits>];\n"
"1000: \u05d0\u05dc\u05e3[ >%%fxunits>];\n"
"2000: \u05d0\u05dc\u05e4\u05d9\u05d9\u05dd[ >%%fxunits>];\n"
"3000: <%%tunits< \u05d0\u05dc\u05e4\u05d9\u05dd[ >%%fxunits>];\n"
"11000/1000: <%masculine< \u05d0\u05dc\u05e3[ >%%fxunits>];\n"
"1,000,000: \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >%%fxunits>];\n"
"2,000,000: \u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >%%fxunits>];\n"
"3,000,000: <%masculine< \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >%%fxunits>];\n"
"1,000,000,000: \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >%%fxunits>];\n"
"2,000,000,000: \u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >%%fxunits>];\n"
"3,000,000,000: <%masculine< \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >%%fxunits>];\n"
"1,000,000,000,000: \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >%%fxunits>];\n"
"2,000,000,000,000: \u05e9\u05e0\u05d9 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >%%fxunits>];\n"
"3,000,000,000,000: <%masculine< \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >%%fxunits>];\n"
"1,000,000,000,000,000: =#,###.##=;\n"
"%%fxunits:\n"
"0:;\n"
"\u05d5\u05d0\u05d7\u05ea;\n"
"\u05d5\u05e9\u05ea\u05d9\u05d9\u05dd;\n"
"\u05d5\u05e9\u05dc\u05d5\u05e9;\n"
"\u05d5\u05d0\u05e8\u05d1\u05e2;\n"
"\u05d5\u05d7\u05de\u05e9;\n"
"\u05d5\u05e9\u05e9;\n"
"\u05d5\u05e9\u05d1\u05e2;\n"
"\u05d5\u05e9\u05de\u05d5\u05e0\u05d4;\n"
"\u05d5\u05ea\u05e9\u05e2;\n"
"\u05d5\u05e2\u05e9\u05e8;\n"
"\u05d5\u05d0\u05d7\u05ea\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05e9\u05ea\u05d9\u05dd\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05e9\u05dc\u05d5\u05e9\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05d0\u05e8\u05d1\u05e2\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05d7\u05de\u05e9\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05e9\u05e9\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05e9\u05d1\u05e2\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05e9\u05de\u05d5\u05e0\u05d4\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"\u05d5\u05ea\u05e9\u05e2\u0020\u05e2\u05e9\u05e8\u05d4;\n"
"20: \u05d5\u05e2\u05e9\u05e8\u05d9\u05dd;\n"
"21: \u05e2\u05e9\u05e8\u05d9\u05dd >>;\n"
"30: \u05d5\u05e9\u05dc\u05d5\u05e9\u05d9\u05dd;\n"
"31: \u05e9\u05dc\u05d5\u05e9\u05d9\u05dd >>;\n"
"40: \u05d5\u05d0\u05e8\u05d1\u05e2\u05d9\u05dd;\n"
"41: \u05d0\u05e8\u05d1\u05e2\u05d9\u05dd >>;\n"
"50: \u05d5\u05d7\u05de\u05d9\u05e9\u05d9\u05dd;\n"
"51: \u05d7\u05de\u05d9\u05e9\u05d9\u05dd >>;\n"
"60: \u05d5\u05e9\u05d9\u05e9\u05d9\u05dd;\n"
"61: \u05e9\u05d9\u05e9\u05d9\u05dd >>;\n"
"70: \u05d5\u05e9\u05d1\u05e2\u05d9\u05dd;\n"
"71: \u05e9\u05d1\u05e2\u05d9\u05dd >>;\n"
"80: \u05d5\u05e9\u05de\u05d5\u05e0\u05d9\u05dd;\n"
"81: \u05e9\u05de\u05d5\u05e0\u05d9\u05dd >>;\n"
"90: \u05d5\u05ea\u05e9\u05e2\u05d9\u05dd;\n"
"91: \u05ea\u05e9\u05e2\u05d9\u05dd >>;\n"
"100: \u05d5\u05de\u05d0\u05d4;\n"
"101: \u05de\u05d0\u05d4 >>;\n"
"200: \u05d5\u05de\u05d0\u05ea\u05d9\u05d9\u05dd;\n"
"201: \u05de\u05d0\u05ea\u05d9\u05d9\u05dd >>;\n"
"300: \u05d5\u05e9\u05dc\u05d5\u05e9 \u05de\u05d0\u05d5\u05ea;\n"
"301: \u05e9\u05dc\u05d5\u05e9 \u05de\u05d0\u05d5\u05ea >>;\n"
"400: \u05d5\u05d0\u05e8\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea;\n"
"401: \u05d0\u05e8\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea >>;\n"
"500: \u05d5\u05d7\u05de\u05e9 \u05de\u05d0\u05d5\u05ea;\n"
"501: \u05d7\u05de\u05e9 \u05de\u05d0\u05d5\u05ea >>;\n"
"600: \u05d5\u05e9\u05e9 \u05de\u05d0\u05d5\u05ea;\n"
"601: \u05e9\u05e9 \u05de\u05d0\u05d5\u05ea >>;\n"
"700: \u05d5\u05e9\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea;\n"
"701: \u05e9\u05d1\u05e2 \u05de\u05d0\u05d5\u05ea >>;\n"
"800: \u05d5\u05e9\u05de\u05d5\u05e0\u05d4 \u05de\u05d0\u05d5\u05ea;\n"
"801: \u05e9\u05de\u05d5\u05e0\u05d4 \u05de\u05d0\u05d5\u05ea >>;\n"
"900: \u05d5\u05ea\u05e9\u05e2 \u05de\u05d0\u05d5\u05ea;\n"
"901: \u05ea\u05e9\u05e2 \u05de\u05d0\u05d5\u05ea >>;\n"
"1000: \u05d5\u05d0\u05dc\u05e3[ >>];\n"
"2000: \u05d5\u05d0\u05dc\u05e4\u05d9\u05d9\u05dd[ >>];\n"
"3000: <%%txunits< \u05d0\u05dc\u05e4\u05d9\u05dd[ >>];\n"
"11000/1000: <%%mxunits< \u05d0\u05dc\u05e3[ >>];\n"
"1,000,000: \u05d5\u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"2,000,000: \u05d5\u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"3,000,000: <%%mxunits< \u05de\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"1,000,000,000: \u05d5\u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >>];\n"
"2,000,000,000: \u05d5\u05e9\u05e0\u05d9 \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >>];\n"
"3,000,000,000: <%%mxunits< \u05de\u05d9\u05dc\u05d9\u05e8\u05d3[ >>];\n"
"1,000,000,000,000: \u05d5\u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"2,000,000,000,000: \u05d5\u05e9\u05e0\u05d9 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"3,000,000,000,000: <%%mxunits< \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df[ >>];\n"
"1,000,000,000,000,000: =#,###.##=;\n"
"%spellout_default:\n"
"=%feminine=;\n"
}

View file

@ -60,6 +60,7 @@ void IntlTestRBNF::runIndexedTest(int32_t index, UBool exec, const char* &name,
TESTCASE(12, TestBelgianFrenchSpellout);
TESTCASE(13, TestSmallValues);
TESTCASE(14, TestLocalizations);
TESTCASE(15, TestAllLocales);
#else
TESTCASE(0, TestRBNFDisabled);
#endif
@ -1607,6 +1608,51 @@ IntlTestRBNF::TestLocalizations(void)
}
}
void
IntlTestRBNF::TestAllLocales()
{
const char* names[] = {
" (spellout) ",
" (ordinal) ",
" (duration) "
};
UnicodeString err;
int32_t count = 0;
const Locale* locales = Locale::getAvailableLocales(count);
for (int i = 0; i < count; ++i) {
const Locale* loc = &locales[i];
for (int j = 0; j < 3; ++j) {
UErrorCode status = U_ZERO_ERROR;
RuleBasedNumberFormat* f = new RuleBasedNumberFormat((URBNFRuleSetTag)j, *loc, status);
if (U_SUCCESS(status)) {
double n = 45.678;
UnicodeString str;
f->format(n, str);
delete f;
UnicodeString msg;
msg.append(loc->getName());
msg.append(names[j]);
msg.append("success: 45.678 -> ");
msg.append(str);
logln(msg);
} else {
UnicodeString msg;
msg.append(loc->getName());
msg.append(names[j]);
msg.append("ERROR could not instantiate");
logln(msg);
err.append("\n");
err.append(msg);
}
}
}
if (err.length()) {
errln(err);
}
}
void
IntlTestRBNF::doTest(RuleBasedNumberFormat* formatter, const char* testData[][2], UBool testParsing)
{

View file

@ -107,6 +107,11 @@ class IntlTestRBNF : public IntlTest {
*/
virtual void TestLocalizations();
/**
* Test that all locales construct ok.
*/
virtual void TestAllLocales();
protected:
virtual void doTest(RuleBasedNumberFormat* formatter, const char* testData[][2], UBool testParsing);
virtual void doLenientParseTest(RuleBasedNumberFormat* formatter, const char* testData[][2]);

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e4419dbb266cdf6e41e658faf1afb3d8f5d3665b61a5481343a27b9352794a0b
size 660434
oid sha256:5215a647091519d6960a866c26ab7f8d91ba0e6cfa4e0ce2e753ac52e22370c5
size 660432

View file

@ -13,6 +13,7 @@ import com.ibm.icu.util.ULocale;
import java.math.BigInteger;
import java.math.BigDecimal;
import java.util.Locale;
import java.util.Random;
import java.text.DecimalFormat;
import java.text.NumberFormat;
@ -875,7 +876,44 @@ public class RbnfTest extends TestFmwk {
assertEquals("getRuleSetDisplayNames in fake locale", localizations[3][i+1], RSNames_loc[i]);
}
}
public void TestAllLocales() {
StringBuffer errors = null;
ULocale[] locales = ULocale.getAvailableLocales();
Random r = createRandom();
String[] names = {
" (spellout) ",
" (ordinal) ",
" (duration) "
};
for (int i = 0; i < locales.length; ++i) {
ULocale loc = locales[i];
for (int j = 0; j < 3; ++j) {
try {
RuleBasedNumberFormat fmt = new RuleBasedNumberFormat(loc, j+1);
float n = ((int)(r.nextInt(1000) - 300)) / 16f;
String s = fmt.format(n);
if (isVerbose()) {
logln(loc.getName() + names[j] + "success: " + n + " -> " + s);
}
}
catch (Exception e) {
String msg = loc.getName() + names[j] + "ERROR:" + e.getMessage();
if (isVerbose()) {
logln(msg);
}
if (errors == null) {
errors = new StringBuffer();
}
errors.append("\n" + msg);
}
}
}
if (errors != null) {
errln(errors.toString());
}
}
void doTest(RuleBasedNumberFormat formatter, String[][] testData,
boolean testParsing) {
// NumberFormat decFmt = NumberFormat.getInstance(Locale.US);

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:414f2b370002ac8e172c7b6a4eddac8dcba85f8f290c13e3395752d9e69d429b
size 2071226
oid sha256:e5511ab4b785186366a1812695fa3d1c87e1afb2168b430d307fa1900c4a74fa
size 2072190