From ffcc581fa455df09e8aea42508fce8272226c00b Mon Sep 17 00:00:00 2001 From: macchiati Date: Mon, 13 Mar 2023 13:49:42 -0700 Subject: [PATCH 1/5] CLDR-16467 Update CLDR test data: Person Names --- common/testData/personNameTest/en_IN.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/common/testData/personNameTest/en_IN.txt b/common/testData/personNameTest/en_IN.txt index 4ed8a1278fa..13fe4a376c3 100644 --- a/common/testData/personNameTest/en_IN.txt +++ b/common/testData/personNameTest/en_IN.txt @@ -436,7 +436,7 @@ parameters; none; short; monogram; informal endName -name ; title; Prof. Dr +name ; title; Prof Dr name ; given; Ada Cornelia name ; given-informal; Neele name ; given2; César Martín @@ -447,7 +447,7 @@ name ; generation; Jr name ; credentials; MD DDS name ; locale; ja_AQ -expectedResult; von Brühl Prof. Dr Ada Cornelia César Martín Jr, MD DDS +expectedResult; von Brühl Prof Dr Ada Cornelia César Martín Jr, MD DDS parameters; none; long; referring; formal @@ -455,16 +455,16 @@ expectedResult; von Brühl Ada Cornelia C.M. Jr, MD DDS parameters; none; medium; referring; formal -expectedResult; Prof. Dr von Brühl +expectedResult; von Brühl A.C.C.M. + +parameters; none; short; referring; formal + +expectedResult; Prof Dr von Brühl parameters; none; long; addressing; formal parameters; none; medium; addressing; formal parameters; none; short; addressing; formal -expectedResult; von Brühl A.C.C.M. - -parameters; none; short; referring; formal - expectedResult; von Brühl Neele parameters; none; long; referring; informal From 664919b120cd7be1e95d97597a57a12650b4da4a Mon Sep 17 00:00:00 2001 From: macchiati Date: Mon, 13 Mar 2023 14:03:53 -0700 Subject: [PATCH 2/5] CLDR-16467 update coverage (only copyright change) --- common/properties/coverageLevels.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/properties/coverageLevels.txt b/common/properties/coverageLevels.txt index 32145dc2f48..b7ef71868e7 100644 --- a/common/properties/coverageLevels.txt +++ b/common/properties/coverageLevels.txt @@ -1,5 +1,5 @@ # coverageLevels.txt -# Copyright © 2022 Unicode, Inc. +# Copyright © 2023 Unicode, Inc. # CLDR data files are interpreted according to the # LDML specification: http://unicode.org/reports/tr35/ # For terms of use, see http://www.unicode.org/copyright.html From fbf8c740c2abe59d888bdcbf5143ad4cddcaf68c Mon Sep 17 00:00:00 2001 From: macchiati Date: Mon, 13 Mar 2023 15:20:17 -0700 Subject: [PATCH 3/5] CLDR-16467 only change is copyright --- .../localeCanonicalization.txt | 148 +++++++++++++++++- 1 file changed, 142 insertions(+), 6 deletions(-) diff --git a/common/testData/localeIdentifiers/localeCanonicalization.txt b/common/testData/localeIdentifiers/localeCanonicalization.txt index 544b4e668e1..3bd8101c06b 100644 --- a/common/testData/localeIdentifiers/localeCanonicalization.txt +++ b/common/testData/localeIdentifiers/localeCanonicalization.txt @@ -1,7 +1,7 @@ # Test data for locale identifier canonicalization -# Copyright © 1991-2020 Unicode, Inc. +# Copyright © 1991-2023 Unicode, Inc. # For terms of use, see http://www.unicode.org/copyright.html -# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# SPDX-License-Identifier: Unicode-DFS-2016 # CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) # # Format: @@ -35,8 +35,8 @@ hy_arevela ; hy hy_arevmda ; hyw hy_arevmda_arevela ; hyw hye_arevmda ; hyw -no_bokmal_nynorsk ; nb -no_nynorsk_bokmal ; nb +no_bokmal_nynorsk ; no +no_nynorsk_bokmal ; no zh_guoyu_hakka_xiang ; hak zh_hakka_xiang ; hak @@ -48,6 +48,9 @@ aar ; aa abk ; ab adp ; dz afr ; af +agp ; apf +ais ; ami +ajt ; aeb aju ; jrb aka ; ak alb ; sq @@ -70,18 +73,25 @@ azj ; az bak ; ba bam ; bm baq ; eu +baz ; nvo bcc ; bal bcl ; bik bel ; be ben ; bn bgm ; bcg bh ; bho +bhk ; fbl +bic ; bir bih ; bho bis ; bi bjd ; drl +bjq ; bzc +bkb ; ebk +blg ; iba bod ; bo bos ; bs bre ; br +btb ; beb bul ; bg bur ; my bxk ; luy @@ -109,7 +119,9 @@ cre ; cr cwd ; cr cym ; cy cze ; cs +daf ; dnj dan ; da +dap ; njz deu ; de dgo ; doi dhd ; mwr @@ -117,12 +129,19 @@ dik ; din diq ; zza dit ; dif div ; dv +djl ; dze +dkl ; aqd drh ; mn +drr ; kzk drw ; fa_AF +dud ; uth +duj ; dwu dut ; nl +dwl ; dbt dzo ; dz ekk ; et ell ; el +elp ; amq emk ; man eng ; en epo ; eo @@ -142,14 +161,19 @@ fuc ; ff ful ; ff gav ; dev gaz ; om +gbc ; wny gbo ; grb geo ; ka ger ; de gfx ; vaj ggn ; gvr +ggo ; esg +ggr ; gtu +gio ; aou gla ; gd gle ; ga glg ; gl +gli ; kzk glv ; gv gno ; gon gre ; el @@ -181,6 +205,7 @@ iii ; ii ike ; iu iku ; iu ile ; ie +ill ; ilm ilw ; gal in ; id ina ; ia @@ -189,6 +214,8 @@ ipk ; ik isl ; is ita ; it iw ; he +izi ; eza +jar ; jgk jav ; jv jeg ; oyb ji ; yi @@ -200,7 +227,9 @@ kas ; ks kat ; ka kau ; kr kaz ; kk +kdv ; zkd kgc ; tdf +kgd ; ncq kgh ; kml khk ; mn khm ; km @@ -215,6 +244,7 @@ koj ; kwv kom ; kv kon ; kg kor ; ko +kpp ; jkm kpv ; kv krm ; bmf ktr ; dtp @@ -223,12 +253,16 @@ kur ; ku kvs ; gdj kwq ; yam kxe ; tvd +kxl ; kru +kzh ; dgl kzj ; dtp kzt ; dtp +lak ; ksp lao ; lo lat ; la lav ; lv lbk ; bnc +leg ; enl lii ; raq lim ; li lin ; ln @@ -246,18 +280,22 @@ mao ; mi mar ; mr may ; ms meg ; cir +mgx ; jbk mhr ; chm mkd ; mk mlg ; mg mlt ; mt mnk ; man +mnt ; wnn mo ; ro +mof ; xnt mol ; ro mon ; mn mri ; mi msa ; ms mst ; mry mup ; raj +mwd ; dmw mwj ; vaj mya ; my myd ; aog @@ -265,22 +303,27 @@ myt ; mry nad ; xny nau ; na nav ; nv +nbf ; nru nbl ; nr +nbx ; ekc ncp ; kdz nde ; nd ndo ; ng nep ; ne nld ; nl +nln ; azd +nlr ; nrk nno ; nn nns ; nbr nnx ; ngv -no ; no no_bokmal ; nb no_nynorsk ; nn nob ; nb +noo ; dtd nor ; no npi ; ne nts ; pij +nxu ; bpp nya ; ny oci ; oc ojg ; oj @@ -291,6 +334,7 @@ ory ; or oss ; os oun ; vaj pan ; pa +pat ; kxr pbu ; ps pcr ; adx per ; fa @@ -310,6 +354,7 @@ pus ; ps puz ; pub que ; qu quz ; qu +rmr ; emx rmy ; rom roh ; rm ron ; ro @@ -318,13 +363,16 @@ run ; rn rus ; ru sag ; sg san ; sa +sap ; aqt sca ; hle scc ; sr scr ; hr +sgl ; isk sgn_BR ; bzs sgn_CO ; csn sgn_DE ; gsg sgn_DK ; dsl +sgn_ES ; ssp sgn_FR ; fsl sgn_GB ; bfi sgn_GR ; gss @@ -345,9 +393,11 @@ skk ; oyb slk ; sk slo ; sk slv ; sl +smd ; kmb sme ; se smo ; sm sna ; sn +snb ; iba snd ; sd som ; so sot ; st @@ -358,6 +408,8 @@ src ; sc srd ; sc srp ; sr ssw ; ss +sul ; sgd +sum ; ulw sun ; su swa ; sw swc ; sw_CD @@ -368,12 +420,15 @@ tam ; ta tat ; tt tdu ; dtp tel ; te +tgg ; bjp tgk ; tg tgl ; fil tha ; th thc ; tpo +thw ; ola thx ; oyb tib ; bo +tid ; itd tie ; ras tir ; ti tkk ; twm @@ -735,12 +790,14 @@ und_arevela ; und und_arevmda ; und und_bokmal ; und und_hakka ; und +und_hepburn_heploc ; und_alalc97 und_heploc ; und_alalc97 und_lojban ; und und_nynorsk ; und und_polytoni ; und_polyton und_saaho ; und und_xiang ; und +unp ; wro uok ; ema urd ; ur uzb ; uz @@ -749,6 +806,9 @@ ven ; ve vie ; vi vol ; vo wel ; cy +wgw ; wgb +wit ; nol +wiw ; nwo wln ; wa wol ; wo xba ; cax @@ -756,11 +816,14 @@ xho ; xh xia ; acn xkh ; waw xpe ; kpe +xrq ; dmw xsj ; suj xsl ; den ybd ; rki ydd ; yi +yen ; ynq yid ; yi +yiy ; yrm yma ; lrr ymt ; mtm yor ; yo @@ -772,6 +835,7 @@ zh_hakka ; hak zh_xiang ; hsn zha ; za zho ; zh +zir ; scv zsm ; ms zul ; zu zyb ; za @@ -807,6 +871,9 @@ eng_arevela_arevmda ; en eng_lojban ; en hye_arevela ; hy hye_arevela_arevmda ; hyw +nor_bokmal ; nb +nor_bokmal_nynorsk ; nb +nor_nynorsk ; nn sgn_076 ; bzs sgn_170 ; csn sgn_208 ; dsl @@ -825,6 +892,7 @@ sgn_558 ; ncs sgn_578 ; nsi sgn_620 ; psr sgn_710 ; sfs +sgn_724 ; ssp sgn_752 ; swl sgn_826 ; bfi sgn_840 ; ase @@ -1153,6 +1221,7 @@ aaa_Adlm_AC_arevela_fonipa ; aaa_Adlm_AC_fonipa aaa_Adlm_AC_arevmda_fonipa ; aaa_Adlm_AC_fonipa aaa_Adlm_AC_bokmal_fonipa ; aaa_Adlm_AC_fonipa aaa_Adlm_AC_fonipa_hakka ; aaa_Adlm_AC_fonipa +aaa_Adlm_AC_fonipa_hepburn_heploc ; aaa_Adlm_AC_alalc97_fonipa aaa_Adlm_AC_fonipa_heploc ; aaa_Adlm_AC_alalc97_fonipa aaa_Adlm_AC_fonipa_lojban ; aaa_Adlm_AC_fonipa aaa_Adlm_AC_fonipa_nynorsk ; aaa_Adlm_AC_fonipa @@ -1193,6 +1262,9 @@ aar_Adlm_AC_fonipa_saaho ; ssy_Adlm_AC_fonipa abk_Adlm_AC_fonipa ; ab_Adlm_AC_fonipa adp_Adlm_AC_fonipa ; dz_Adlm_AC_fonipa afr_Adlm_AC_fonipa ; af_Adlm_AC_fonipa +agp_Adlm_AC_fonipa ; apf_Adlm_AC_fonipa +ais_Adlm_AC_fonipa ; ami_Adlm_AC_fonipa +ajt_Adlm_AC_fonipa ; aeb_Adlm_AC_fonipa aju_Adlm_AC_fonipa ; jrb_Adlm_AC_fonipa aka_Adlm_AC_fonipa ; ak_Adlm_AC_fonipa alb_Adlm_AC_fonipa ; sq_Adlm_AC_fonipa @@ -1219,18 +1291,25 @@ azj_Adlm_AC_fonipa ; az_Adlm_AC_fonipa bak_Adlm_AC_fonipa ; ba_Adlm_AC_fonipa bam_Adlm_AC_fonipa ; bm_Adlm_AC_fonipa baq_Adlm_AC_fonipa ; eu_Adlm_AC_fonipa +baz_Adlm_AC_fonipa ; nvo_Adlm_AC_fonipa bcc_Adlm_AC_fonipa ; bal_Adlm_AC_fonipa bcl_Adlm_AC_fonipa ; bik_Adlm_AC_fonipa bel_Adlm_AC_fonipa ; be_Adlm_AC_fonipa ben_Adlm_AC_fonipa ; bn_Adlm_AC_fonipa bgm_Adlm_AC_fonipa ; bcg_Adlm_AC_fonipa bh_Adlm_AC_fonipa ; bho_Adlm_AC_fonipa +bhk_Adlm_AC_fonipa ; fbl_Adlm_AC_fonipa +bic_Adlm_AC_fonipa ; bir_Adlm_AC_fonipa bih_Adlm_AC_fonipa ; bho_Adlm_AC_fonipa bis_Adlm_AC_fonipa ; bi_Adlm_AC_fonipa bjd_Adlm_AC_fonipa ; drl_Adlm_AC_fonipa +bjq_Adlm_AC_fonipa ; bzc_Adlm_AC_fonipa +bkb_Adlm_AC_fonipa ; ebk_Adlm_AC_fonipa +blg_Adlm_AC_fonipa ; iba_Adlm_AC_fonipa bod_Adlm_AC_fonipa ; bo_Adlm_AC_fonipa bos_Adlm_AC_fonipa ; bs_Adlm_AC_fonipa bre_Adlm_AC_fonipa ; br_Adlm_AC_fonipa +btb_Adlm_AC_fonipa ; beb_Adlm_AC_fonipa bul_Adlm_AC_fonipa ; bg_Adlm_AC_fonipa bur_Adlm_AC_fonipa ; my_Adlm_AC_fonipa bxk_Adlm_AC_fonipa ; luy_Adlm_AC_fonipa @@ -1268,7 +1347,9 @@ cre_Adlm_AC_fonipa ; cr_Adlm_AC_fonipa cwd_Adlm_AC_fonipa ; cr_Adlm_AC_fonipa cym_Adlm_AC_fonipa ; cy_Adlm_AC_fonipa cze_Adlm_AC_fonipa ; cs_Adlm_AC_fonipa +daf_Adlm_AC_fonipa ; dnj_Adlm_AC_fonipa dan_Adlm_AC_fonipa ; da_Adlm_AC_fonipa +dap_Adlm_AC_fonipa ; njz_Adlm_AC_fonipa deu_Adlm_AC_fonipa ; de_Adlm_AC_fonipa dgo_Adlm_AC_fonipa ; doi_Adlm_AC_fonipa dhd_Adlm_AC_fonipa ; mwr_Adlm_AC_fonipa @@ -1276,12 +1357,19 @@ dik_Adlm_AC_fonipa ; din_Adlm_AC_fonipa diq_Adlm_AC_fonipa ; zza_Adlm_AC_fonipa dit_Adlm_AC_fonipa ; dif_Adlm_AC_fonipa div_Adlm_AC_fonipa ; dv_Adlm_AC_fonipa +djl_Adlm_AC_fonipa ; dze_Adlm_AC_fonipa +dkl_Adlm_AC_fonipa ; aqd_Adlm_AC_fonipa drh_Adlm_AC_fonipa ; mn_Adlm_AC_fonipa +drr_Adlm_AC_fonipa ; kzk_Adlm_AC_fonipa drw_Adlm_AC_fonipa ; fa_Adlm_AC_fonipa +dud_Adlm_AC_fonipa ; uth_Adlm_AC_fonipa +duj_Adlm_AC_fonipa ; dwu_Adlm_AC_fonipa dut_Adlm_AC_fonipa ; nl_Adlm_AC_fonipa +dwl_Adlm_AC_fonipa ; dbt_Adlm_AC_fonipa dzo_Adlm_AC_fonipa ; dz_Adlm_AC_fonipa ekk_Adlm_AC_fonipa ; et_Adlm_AC_fonipa ell_Adlm_AC_fonipa ; el_Adlm_AC_fonipa +elp_Adlm_AC_fonipa ; amq_Adlm_AC_fonipa emk_Adlm_AC_fonipa ; man_Adlm_AC_fonipa en_Adlm_840_aaland_fonipa ; en_Adlm_US_fonipa en_Adlm_840_fonipa_heploc ; en_Adlm_US_alalc97_fonipa @@ -1321,14 +1409,19 @@ fuc_Adlm_AC_fonipa ; ff_Adlm_AC_fonipa ful_Adlm_AC_fonipa ; ff_Adlm_AC_fonipa gav_Adlm_AC_fonipa ; dev_Adlm_AC_fonipa gaz_Adlm_AC_fonipa ; om_Adlm_AC_fonipa +gbc_Adlm_AC_fonipa ; wny_Adlm_AC_fonipa gbo_Adlm_AC_fonipa ; grb_Adlm_AC_fonipa geo_Adlm_AC_fonipa ; ka_Adlm_AC_fonipa ger_Adlm_AC_fonipa ; de_Adlm_AC_fonipa gfx_Adlm_AC_fonipa ; vaj_Adlm_AC_fonipa ggn_Adlm_AC_fonipa ; gvr_Adlm_AC_fonipa +ggo_Adlm_AC_fonipa ; esg_Adlm_AC_fonipa +ggr_Adlm_AC_fonipa ; gtu_Adlm_AC_fonipa +gio_Adlm_AC_fonipa ; aou_Adlm_AC_fonipa gla_Adlm_AC_fonipa ; gd_Adlm_AC_fonipa gle_Adlm_AC_fonipa ; ga_Adlm_AC_fonipa glg_Adlm_AC_fonipa ; gl_Adlm_AC_fonipa +gli_Adlm_AC_fonipa ; kzk_Adlm_AC_fonipa glv_Adlm_AC_fonipa ; gv_Adlm_AC_fonipa gno_Adlm_AC_fonipa ; gon_Adlm_AC_fonipa gre_Adlm_AC_fonipa ; el_Adlm_AC_fonipa @@ -1366,6 +1459,7 @@ iii_Adlm_AC_fonipa ; ii_Adlm_AC_fonipa ike_Adlm_AC_fonipa ; iu_Adlm_AC_fonipa iku_Adlm_AC_fonipa ; iu_Adlm_AC_fonipa ile_Adlm_AC_fonipa ; ie_Adlm_AC_fonipa +ill_Adlm_AC_fonipa ; ilm_Adlm_AC_fonipa ilw_Adlm_AC_fonipa ; gal_Adlm_AC_fonipa in_Adlm_AC_fonipa ; id_Adlm_AC_fonipa ina_Adlm_AC_fonipa ; ia_Adlm_AC_fonipa @@ -1374,6 +1468,8 @@ ipk_Adlm_AC_fonipa ; ik_Adlm_AC_fonipa isl_Adlm_AC_fonipa ; is_Adlm_AC_fonipa ita_Adlm_AC_fonipa ; it_Adlm_AC_fonipa iw_Adlm_AC_fonipa ; he_Adlm_AC_fonipa +izi_Adlm_AC_fonipa ; eza_Adlm_AC_fonipa +jar_Adlm_AC_fonipa ; jgk_Adlm_AC_fonipa jav_Adlm_AC_fonipa ; jv_Adlm_AC_fonipa jeg_Adlm_AC_fonipa ; oyb_Adlm_AC_fonipa ji_Adlm_AC_fonipa ; yi_Adlm_AC_fonipa @@ -1385,7 +1481,9 @@ kas_Adlm_AC_fonipa ; ks_Adlm_AC_fonipa kat_Adlm_AC_fonipa ; ka_Adlm_AC_fonipa kau_Adlm_AC_fonipa ; kr_Adlm_AC_fonipa kaz_Adlm_AC_fonipa ; kk_Adlm_AC_fonipa +kdv_Adlm_AC_fonipa ; zkd_Adlm_AC_fonipa kgc_Adlm_AC_fonipa ; tdf_Adlm_AC_fonipa +kgd_Adlm_AC_fonipa ; ncq_Adlm_AC_fonipa kgh_Adlm_AC_fonipa ; kml_Adlm_AC_fonipa khk_Adlm_AC_fonipa ; mn_Adlm_AC_fonipa khm_Adlm_AC_fonipa ; km_Adlm_AC_fonipa @@ -1400,6 +1498,7 @@ koj_Adlm_AC_fonipa ; kwv_Adlm_AC_fonipa kom_Adlm_AC_fonipa ; kv_Adlm_AC_fonipa kon_Adlm_AC_fonipa ; kg_Adlm_AC_fonipa kor_Adlm_AC_fonipa ; ko_Adlm_AC_fonipa +kpp_Adlm_AC_fonipa ; jkm_Adlm_AC_fonipa kpv_Adlm_AC_fonipa ; kv_Adlm_AC_fonipa krm_Adlm_AC_fonipa ; bmf_Adlm_AC_fonipa ktr_Adlm_AC_fonipa ; dtp_Adlm_AC_fonipa @@ -1408,12 +1507,16 @@ kur_Adlm_AC_fonipa ; ku_Adlm_AC_fonipa kvs_Adlm_AC_fonipa ; gdj_Adlm_AC_fonipa kwq_Adlm_AC_fonipa ; yam_Adlm_AC_fonipa kxe_Adlm_AC_fonipa ; tvd_Adlm_AC_fonipa +kxl_Adlm_AC_fonipa ; kru_Adlm_AC_fonipa +kzh_Adlm_AC_fonipa ; dgl_Adlm_AC_fonipa kzj_Adlm_AC_fonipa ; dtp_Adlm_AC_fonipa kzt_Adlm_AC_fonipa ; dtp_Adlm_AC_fonipa +lak_Adlm_AC_fonipa ; ksp_Adlm_AC_fonipa lao_Adlm_AC_fonipa ; lo_Adlm_AC_fonipa lat_Adlm_AC_fonipa ; la_Adlm_AC_fonipa lav_Adlm_AC_fonipa ; lv_Adlm_AC_fonipa lbk_Adlm_AC_fonipa ; bnc_Adlm_AC_fonipa +leg_Adlm_AC_fonipa ; enl_Adlm_AC_fonipa lii_Adlm_AC_fonipa ; raq_Adlm_AC_fonipa lim_Adlm_AC_fonipa ; li_Adlm_AC_fonipa lin_Adlm_AC_fonipa ; ln_Adlm_AC_fonipa @@ -1431,18 +1534,22 @@ mao_Adlm_AC_fonipa ; mi_Adlm_AC_fonipa mar_Adlm_AC_fonipa ; mr_Adlm_AC_fonipa may_Adlm_AC_fonipa ; ms_Adlm_AC_fonipa meg_Adlm_AC_fonipa ; cir_Adlm_AC_fonipa +mgx_Adlm_AC_fonipa ; jbk_Adlm_AC_fonipa mhr_Adlm_AC_fonipa ; chm_Adlm_AC_fonipa mkd_Adlm_AC_fonipa ; mk_Adlm_AC_fonipa mlg_Adlm_AC_fonipa ; mg_Adlm_AC_fonipa mlt_Adlm_AC_fonipa ; mt_Adlm_AC_fonipa mnk_Adlm_AC_fonipa ; man_Adlm_AC_fonipa +mnt_Adlm_AC_fonipa ; wnn_Adlm_AC_fonipa mo_Adlm_AC_fonipa ; ro_Adlm_AC_fonipa +mof_Adlm_AC_fonipa ; xnt_Adlm_AC_fonipa mol_Adlm_AC_fonipa ; ro_Adlm_AC_fonipa mon_Adlm_AC_fonipa ; mn_Adlm_AC_fonipa mri_Adlm_AC_fonipa ; mi_Adlm_AC_fonipa msa_Adlm_AC_fonipa ; ms_Adlm_AC_fonipa mst_Adlm_AC_fonipa ; mry_Adlm_AC_fonipa mup_Adlm_AC_fonipa ; raj_Adlm_AC_fonipa +mwd_Adlm_AC_fonipa ; dmw_Adlm_AC_fonipa mwj_Adlm_AC_fonipa ; vaj_Adlm_AC_fonipa mya_Adlm_AC_fonipa ; my_Adlm_AC_fonipa myd_Adlm_AC_fonipa ; aog_Adlm_AC_fonipa @@ -1450,23 +1557,31 @@ myt_Adlm_AC_fonipa ; mry_Adlm_AC_fonipa nad_Adlm_AC_fonipa ; xny_Adlm_AC_fonipa nau_Adlm_AC_fonipa ; na_Adlm_AC_fonipa nav_Adlm_AC_fonipa ; nv_Adlm_AC_fonipa +nbf_Adlm_AC_fonipa ; nru_Adlm_AC_fonipa nbl_Adlm_AC_fonipa ; nr_Adlm_AC_fonipa +nbx_Adlm_AC_fonipa ; ekc_Adlm_AC_fonipa ncp_Adlm_AC_fonipa ; kdz_Adlm_AC_fonipa nde_Adlm_AC_fonipa ; nd_Adlm_AC_fonipa ndo_Adlm_AC_fonipa ; ng_Adlm_AC_fonipa nep_Adlm_AC_fonipa ; ne_Adlm_AC_fonipa nld_Adlm_AC_fonipa ; nl_Adlm_AC_fonipa +nln_Adlm_AC_fonipa ; azd_Adlm_AC_fonipa +nlr_Adlm_AC_fonipa ; nrk_Adlm_AC_fonipa nno_Adlm_AC_fonipa ; nn_Adlm_AC_fonipa nns_Adlm_AC_fonipa ; nbr_Adlm_AC_fonipa nnx_Adlm_AC_fonipa ; ngv_Adlm_AC_fonipa no_Adlm_AC_bokmal_fonipa ; nb_Adlm_AC_fonipa no_Adlm_AC_bokmal_fonipa_nynorsk ; nb_Adlm_AC_fonipa -no_Adlm_AC_fonipa ; no_Adlm_AC_fonipa no_Adlm_AC_fonipa_nynorsk ; nn_Adlm_AC_fonipa nob_Adlm_AC_fonipa ; nb_Adlm_AC_fonipa +noo_Adlm_AC_fonipa ; dtd_Adlm_AC_fonipa +nor_Adlm_AC_bokmal_fonipa ; nb_Adlm_AC_fonipa +nor_Adlm_AC_bokmal_fonipa_nynorsk ; nb_Adlm_AC_fonipa nor_Adlm_AC_fonipa ; no_Adlm_AC_fonipa +nor_Adlm_AC_fonipa_nynorsk ; nn_Adlm_AC_fonipa npi_Adlm_AC_fonipa ; ne_Adlm_AC_fonipa nts_Adlm_AC_fonipa ; pij_Adlm_AC_fonipa +nxu_Adlm_AC_fonipa ; bpp_Adlm_AC_fonipa nya_Adlm_AC_fonipa ; ny_Adlm_AC_fonipa oci_Adlm_AC_fonipa ; oc_Adlm_AC_fonipa ojg_Adlm_AC_fonipa ; oj_Adlm_AC_fonipa @@ -1477,6 +1592,7 @@ ory_Adlm_AC_fonipa ; or_Adlm_AC_fonipa oss_Adlm_AC_fonipa ; os_Adlm_AC_fonipa oun_Adlm_AC_fonipa ; vaj_Adlm_AC_fonipa pan_Adlm_AC_fonipa ; pa_Adlm_AC_fonipa +pat_Adlm_AC_fonipa ; kxr_Adlm_AC_fonipa pbu_Adlm_AC_fonipa ; ps_Adlm_AC_fonipa pcr_Adlm_AC_fonipa ; adx_Adlm_AC_fonipa per_Adlm_AC_fonipa ; fa_Adlm_AC_fonipa @@ -1496,6 +1612,7 @@ pus_Adlm_AC_fonipa ; ps_Adlm_AC_fonipa puz_Adlm_AC_fonipa ; pub_Adlm_AC_fonipa que_Adlm_AC_fonipa ; qu_Adlm_AC_fonipa quz_Adlm_AC_fonipa ; qu_Adlm_AC_fonipa +rmr_Adlm_AC_fonipa ; emx_Adlm_AC_fonipa rmy_Adlm_AC_fonipa ; rom_Adlm_AC_fonipa roh_Adlm_AC_fonipa ; rm_Adlm_AC_fonipa ron_Adlm_AC_fonipa ; ro_Adlm_AC_fonipa @@ -1504,9 +1621,11 @@ run_Adlm_AC_fonipa ; rn_Adlm_AC_fonipa rus_Adlm_AC_fonipa ; ru_Adlm_AC_fonipa sag_Adlm_AC_fonipa ; sg_Adlm_AC_fonipa san_Adlm_AC_fonipa ; sa_Adlm_AC_fonipa +sap_Adlm_AC_fonipa ; aqt_Adlm_AC_fonipa sca_Adlm_AC_fonipa ; hle_Adlm_AC_fonipa scc_Adlm_AC_fonipa ; sr_Adlm_AC_fonipa scr_Adlm_AC_fonipa ; hr_Adlm_AC_fonipa +sgl_Adlm_AC_fonipa ; isk_Adlm_AC_fonipa sgn_Adlm_076_fonipa ; bzs_Adlm_fonipa sgn_Adlm_170_fonipa ; csn_Adlm_fonipa sgn_Adlm_208_fonipa ; dsl_Adlm_fonipa @@ -1525,6 +1644,7 @@ sgn_Adlm_558_fonipa ; ncs_Adlm_fonipa sgn_Adlm_578_fonipa ; nsi_Adlm_fonipa sgn_Adlm_620_fonipa ; psr_Adlm_fonipa sgn_Adlm_710_fonipa ; sfs_Adlm_fonipa +sgn_Adlm_724_fonipa ; ssp_Adlm_fonipa sgn_Adlm_752_fonipa ; swl_Adlm_fonipa sgn_Adlm_826_fonipa ; bfi_Adlm_fonipa sgn_Adlm_840_fonipa ; ase_Adlm_fonipa @@ -1533,6 +1653,7 @@ sgn_Adlm_CO_fonipa ; csn_Adlm_fonipa sgn_Adlm_DD_fonipa ; gsg_Adlm_fonipa sgn_Adlm_DE_fonipa ; gsg_Adlm_fonipa sgn_Adlm_DK_fonipa ; dsl_Adlm_fonipa +sgn_Adlm_ES_fonipa ; ssp_Adlm_fonipa sgn_Adlm_FR_fonipa ; fsl_Adlm_fonipa sgn_Adlm_FX_fonipa ; fsl_Adlm_fonipa sgn_Adlm_GB_fonipa ; bfi_Adlm_fonipa @@ -1555,9 +1676,11 @@ skk_Adlm_AC_fonipa ; oyb_Adlm_AC_fonipa slk_Adlm_AC_fonipa ; sk_Adlm_AC_fonipa slo_Adlm_AC_fonipa ; sk_Adlm_AC_fonipa slv_Adlm_AC_fonipa ; sl_Adlm_AC_fonipa +smd_Adlm_AC_fonipa ; kmb_Adlm_AC_fonipa sme_Adlm_AC_fonipa ; se_Adlm_AC_fonipa smo_Adlm_AC_fonipa ; sm_Adlm_AC_fonipa sna_Adlm_AC_fonipa ; sn_Adlm_AC_fonipa +snb_Adlm_AC_fonipa ; iba_Adlm_AC_fonipa snd_Adlm_AC_fonipa ; sd_Adlm_AC_fonipa som_Adlm_AC_fonipa ; so_Adlm_AC_fonipa sot_Adlm_AC_fonipa ; st_Adlm_AC_fonipa @@ -1568,6 +1691,8 @@ src_Adlm_AC_fonipa ; sc_Adlm_AC_fonipa srd_Adlm_AC_fonipa ; sc_Adlm_AC_fonipa srp_Adlm_AC_fonipa ; sr_Adlm_AC_fonipa ssw_Adlm_AC_fonipa ; ss_Adlm_AC_fonipa +sul_Adlm_AC_fonipa ; sgd_Adlm_AC_fonipa +sum_Adlm_AC_fonipa ; ulw_Adlm_AC_fonipa sun_Adlm_AC_fonipa ; su_Adlm_AC_fonipa swa_Adlm_AC_fonipa ; sw_Adlm_AC_fonipa swc_Adlm_AC_fonipa ; sw_Adlm_AC_fonipa @@ -1578,12 +1703,15 @@ tam_Adlm_AC_fonipa ; ta_Adlm_AC_fonipa tat_Adlm_AC_fonipa ; tt_Adlm_AC_fonipa tdu_Adlm_AC_fonipa ; dtp_Adlm_AC_fonipa tel_Adlm_AC_fonipa ; te_Adlm_AC_fonipa +tgg_Adlm_AC_fonipa ; bjp_Adlm_AC_fonipa tgk_Adlm_AC_fonipa ; tg_Adlm_AC_fonipa tgl_Adlm_AC_fonipa ; fil_Adlm_AC_fonipa tha_Adlm_AC_fonipa ; th_Adlm_AC_fonipa thc_Adlm_AC_fonipa ; tpo_Adlm_AC_fonipa +thw_Adlm_AC_fonipa ; ola_Adlm_AC_fonipa thx_Adlm_AC_fonipa ; oyb_Adlm_AC_fonipa tib_Adlm_AC_fonipa ; bo_Adlm_AC_fonipa +tid_Adlm_AC_fonipa ; itd_Adlm_AC_fonipa tie_Adlm_AC_fonipa ; ras_Adlm_AC_fonipa tir_Adlm_AC_fonipa ; ti_Adlm_AC_fonipa tkk_Adlm_AC_fonipa ; twm_Adlm_AC_fonipa @@ -1604,6 +1732,7 @@ twi_Adlm_AC_fonipa ; ak_Adlm_AC_fonipa uig_Adlm_AC_fonipa ; ug_Adlm_AC_fonipa ukr_Adlm_AC_fonipa ; uk_Adlm_AC_fonipa umu_Adlm_AC_fonipa ; del_Adlm_AC_fonipa +unp_Adlm_AC_fonipa ; wro_Adlm_AC_fonipa uok_Adlm_AC_fonipa ; ema_Adlm_AC_fonipa urd_Adlm_AC_fonipa ; ur_Adlm_AC_fonipa uzb_Adlm_AC_fonipa ; uz_Adlm_AC_fonipa @@ -1612,6 +1741,9 @@ ven_Adlm_AC_fonipa ; ve_Adlm_AC_fonipa vie_Adlm_AC_fonipa ; vi_Adlm_AC_fonipa vol_Adlm_AC_fonipa ; vo_Adlm_AC_fonipa wel_Adlm_AC_fonipa ; cy_Adlm_AC_fonipa +wgw_Adlm_AC_fonipa ; wgb_Adlm_AC_fonipa +wit_Adlm_AC_fonipa ; nol_Adlm_AC_fonipa +wiw_Adlm_AC_fonipa ; nwo_Adlm_AC_fonipa wln_Adlm_AC_fonipa ; wa_Adlm_AC_fonipa wol_Adlm_AC_fonipa ; wo_Adlm_AC_fonipa xba_Adlm_AC_fonipa ; cax_Adlm_AC_fonipa @@ -1619,11 +1751,14 @@ xho_Adlm_AC_fonipa ; xh_Adlm_AC_fonipa xia_Adlm_AC_fonipa ; acn_Adlm_AC_fonipa xkh_Adlm_AC_fonipa ; waw_Adlm_AC_fonipa xpe_Adlm_AC_fonipa ; kpe_Adlm_AC_fonipa +xrq_Adlm_AC_fonipa ; dmw_Adlm_AC_fonipa xsj_Adlm_AC_fonipa ; suj_Adlm_AC_fonipa xsl_Adlm_AC_fonipa ; den_Adlm_AC_fonipa ybd_Adlm_AC_fonipa ; rki_Adlm_AC_fonipa ydd_Adlm_AC_fonipa ; yi_Adlm_AC_fonipa +yen_Adlm_AC_fonipa ; ynq_Adlm_AC_fonipa yid_Adlm_AC_fonipa ; yi_Adlm_AC_fonipa +yiy_Adlm_AC_fonipa ; yrm_Adlm_AC_fonipa yma_Adlm_AC_fonipa ; lrr_Adlm_AC_fonipa ymt_Adlm_AC_fonipa ; mtm_Adlm_AC_fonipa yor_Adlm_AC_fonipa ; yo_Adlm_AC_fonipa @@ -1642,6 +1777,7 @@ zho_Adlm_AC_fonipa_guoyu_hakka_xiang ; hak_Adlm_AC_fonipa zho_Adlm_AC_fonipa_hakka ; hak_Adlm_AC_fonipa zho_Adlm_AC_fonipa_hakka_xiang ; hak_Adlm_AC_fonipa zho_Adlm_AC_fonipa_xiang ; hsn_Adlm_AC_fonipa +zir_Adlm_AC_fonipa ; scv_Adlm_AC_fonipa zsm_Adlm_AC_fonipa ; ms_Adlm_AC_fonipa zul_Adlm_AC_fonipa ; zu_Adlm_AC_fonipa zyb_Adlm_AC_fonipa ; za_Adlm_AC_fonipa From abda4ea42b602ff26fb0678b132edfe4c43e0e85 Mon Sep 17 00:00:00 2001 From: macchiati Date: Mon, 13 Mar 2023 16:27:12 -0700 Subject: [PATCH 4/5] CLDR-16467 Add unit tests. Part of this is a change to the code to avoid having to copy text into files. (More work needs doing.) --- common/testData/units/unitPreferencesTest.txt | 125 ++++---------- common/testData/units/unitsTest.txt | 14 +- .../org/unicode/cldr/unittest/TestUnits.java | 156 +++++++++--------- 3 files changed, 122 insertions(+), 173 deletions(-) diff --git a/common/testData/units/unitPreferencesTest.txt b/common/testData/units/unitPreferencesTest.txt index 7df25542923..8ceb40bc6d8 100644 --- a/common/testData/units/unitPreferencesTest.txt +++ b/common/testData/units/unitPreferencesTest.txt @@ -1,7 +1,8 @@ + # Test data for unit preferences -# Copyright © 1991-2021 Unicode, Inc. +# Copyright © 1991-2023 Unicode, Inc. # For terms of use, see http://www.unicode.org/copyright.html -# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# SPDX-License-Identifier: Unicode-DFS-2016 # CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) # # Format: @@ -15,7 +16,7 @@ # The Output amount and Unit are repeated for mixed units. In such a case, only the smallest unit will have # both a rational and decimal amount; the others will have a single integer value, such as: # length; person-height; CA; 3429 / 12500; 0.27432; meter; 2; foot; 54 / 5; 10.8; inch -# The input and output units are unit identifiers; in particular, the output does not have further processing: +# The input and output units are unit identifers; in particular, the output does not have further processing: # • no localization # • no adjustment for pluralization # • no formatted with the skeleton @@ -32,7 +33,6 @@ area; default; 001; 1; 1.0; square-meter; 1; 1.0; square-meter area; default; 001; 9 / 10; 0.9; square-meter; 9000; 9000.0; square-centimeter area; default; 001; 1 / 10000; 1.0E-4; square-meter; 1; 1.0; square-centimeter area; default; 001; 9 / 100000; 9.0E-5; square-meter; 9 / 10; 0.9; square-centimeter - area; default; GB; 222577103232 / 78125; 2848986.9213696; square-meter; 11 / 10; 1.1; square-mile area; default; GB; 40468564224 / 15625; 2589988.110336; square-meter; 1; 1.0; square-mile area; default; GB; 182108539008 / 78125; 2330989.2993024; square-meter; 576; 576.0; acre @@ -42,55 +42,48 @@ area; default; GB; 145161 / 1562500; 0.09290304; square-meter; 1; 1.0; square-fo area; default; GB; 1306449 / 15625000; 0.083612736; square-meter; 648 / 5; 129.6; square-inch area; default; GB; 16129 / 25000000; 6.4516E-4; square-meter; 1; 1.0; square-inch area; default; GB; 145161 / 250000000; 5.80644E-4; square-meter; 9 / 10; 0.9; square-inch - +area; floor; 001; 11 / 10; 1.1; square-meter; 11 / 10; 1.1; square-meter +area; floor; 001; 1; 1.0; square-meter; 1; 1.0; square-meter +area; floor; 001; 9 / 10; 0.9; square-meter; 9 / 10; 0.9; square-meter +area; floor; CA; 1596771 / 15625000; 0.102193344; square-meter; 11 / 10; 1.1; square-foot +area; floor; CA; 145161 / 1562500; 0.09290304; square-meter; 1; 1.0; square-foot +area; floor; CA; 1306449 / 15625000; 0.083612736; square-meter; 9 / 10; 0.9; square-foot area; geograph; 001; 1100000; 1100000.0; square-meter; 11 / 10; 1.1; square-kilometer area; geograph; 001; 1000000; 1000000.0; square-meter; 1; 1.0; square-kilometer area; geograph; 001; 900000; 900000.0; square-meter; 9 / 10; 0.9; square-kilometer - area; geograph; GB; 222577103232 / 78125; 2848986.9213696; square-meter; 11 / 10; 1.1; square-mile area; geograph; GB; 40468564224 / 15625; 2589988.110336; square-meter; 1; 1.0; square-mile area; geograph; GB; 182108539008 / 78125; 2330989.2993024; square-meter; 9 / 10; 0.9; square-mile - area; land; 001; 11000; 11000.0; square-meter; 11 / 10; 1.1; hectare area; land; 001; 10000; 10000.0; square-meter; 1; 1.0; hectare area; land; 001; 9000; 9000.0; square-meter; 9 / 10; 0.9; hectare - area; land; GB; 1738883619 / 390625; 4451.54206464; square-meter; 11 / 10; 1.1; acre area; land; GB; 316160658 / 78125; 4046.8564224; square-meter; 1; 1.0; acre area; land; GB; 1422722961 / 390625; 3642.17078016; square-meter; 9 / 10; 0.9; acre - concentration; blood-glucose; AG; 662435483600000000000000; 6.624354836E23; item-per-cubic-meter; 11 / 10; 1.1; millimole-per-liter concentration; blood-glucose; AG; 602214076000000000000000; 6.02214076E23; item-per-cubic-meter; 1; 1.0; millimole-per-liter concentration; blood-glucose; AG; 541992668400000000000000; 5.419926684E23; item-per-cubic-meter; 9 / 10; 0.9; millimole-per-liter - concentration; blood-glucose; 001; 66243548360000000000000000000 / 1801557; 3.67701651182838E22; item-per-cubic-meter; 11 / 10; 1.1; milligram-ofglucose-per-deciliter concentration; blood-glucose; 001; 60221407600000000000000000000 / 1801557; 3.342742283480345E22; item-per-cubic-meter; 1; 1.0; milligram-ofglucose-per-deciliter concentration; blood-glucose; 001; 6022140760000000000000000000 / 200173; 3.008468055132311E22; item-per-cubic-meter; 9 / 10; 0.9; milligram-ofglucose-per-deciliter - concentration; default; 001; 11 / 10; 1.1; item-per-cubic-meter; 11 / 10; 1.1; item-per-cubic-meter concentration; default; 001; 1; 1.0; item-per-cubic-meter; 1; 1.0; item-per-cubic-meter concentration; default; 001; 9 / 10; 0.9; item-per-cubic-meter; 9 / 10; 0.9; item-per-cubic-meter - consumption; default; 001; 11 / 1000000000; 1.1E-8; cubic-meter-per-meter; 11 / 10; 1.1; liter-per-100-kilometer consumption; default; 001; 1 / 100000000; 1.0E-8; cubic-meter-per-meter; 1; 1.0; liter-per-100-kilometer consumption; default; 001; 9 / 1000000000; 9.0E-9; cubic-meter-per-meter; 9 / 10; 0.9; liter-per-100-kilometer - consumption; vehicle-fuel; 001; 11 / 1000000000; 1.1E-8; cubic-meter-per-meter; 11 / 10; 1.1; liter-per-100-kilometer consumption; vehicle-fuel; 001; 1 / 100000000; 1.0E-8; cubic-meter-per-meter; 1; 1.0; liter-per-100-kilometer consumption; vehicle-fuel; 001; 9 / 1000000000; 9.0E-9; cubic-meter-per-meter; 9 / 10; 0.9; liter-per-100-kilometer - consumption; vehicle-fuel; BR; 11 / 10000000; 1.1E-6; cubic-meter-per-meter; 11 / 10; 1.1; liter-per-kilometer consumption; vehicle-fuel; BR; 1 / 1000000; 1.0E-6; cubic-meter-per-meter; 1; 1.0; liter-per-kilometer consumption; vehicle-fuel; BR; 9 / 10000000; 9.0E-7; cubic-meter-per-meter; 9 / 10; 0.9; liter-per-kilometer - -consumption; vehicle-fuel; US; 112903 / 52800000000; 2.1383143939394E-6; cubic-meter-per-meter; 11 / 10; 1.1; mile-per-gallon -consumption; vehicle-fuel; US; 112903 / 48000000000; 2.3521458333333E-6; cubic-meter-per-meter; 1; 1.0; mile-per-gallon -consumption; vehicle-fuel; US; 112903 / 43200000000; 2.6134953703704E-6; cubic-meter-per-meter; 9 / 10; 0.9; mile-per-gallon - -consumption; vehicle-fuel; CA; 454609 / 177027840000; 2.5680085121075E-6; cubic-meter-per-meter; 11 / 10; 1.1; mile-per-gallon-imperial -consumption; vehicle-fuel; CA; 454609 / 160934400000; 2.8248093633182E-6; cubic-meter-per-meter; 1; 1.0; mile-per-gallon-imperial -consumption; vehicle-fuel; CA; 454609 / 144840960000; 3.1386770703536E-6; cubic-meter-per-meter; 9 / 10; 0.9; mile-per-gallon-imperial - +consumption; vehicle-fuel; US; 112903 / 43200000000; 2.61349537037037E-6; cubic-meter-per-meter; 9 / 10; 0.9; mile-per-gallon +consumption; vehicle-fuel; US; 112903 / 48000000000; 2.352145833333333E-6; cubic-meter-per-meter; 1; 1.0; mile-per-gallon +consumption; vehicle-fuel; US; 112903 / 52800000000; 2.138314393939394E-6; cubic-meter-per-meter; 11 / 10; 1.1; mile-per-gallon +consumption; vehicle-fuel; CA; 454609 / 144840960000; 3.13867707035358E-6; cubic-meter-per-meter; 9 / 10; 0.9; mile-per-gallon-imperial +consumption; vehicle-fuel; CA; 454609 / 160934400000; 2.824809363318222E-6; cubic-meter-per-meter; 1; 1.0; mile-per-gallon-imperial +consumption; vehicle-fuel; CA; 454609 / 177027840000; 2.568008512107474E-6; cubic-meter-per-meter; 11 / 10; 1.1; mile-per-gallon-imperial duration; default; 001; 95040; 95040.0; second; 11 / 10; 1.1; day duration; default; 001; 86400; 86400.0; second; 1; 1.0; day duration; default; 001; 77760; 77760.0; second; 108 / 5; 21.6; hour @@ -106,25 +99,20 @@ duration; default; 001; 1 / 1000000; 1.0E-6; second; 1; 1.0; microsecond duration; default; 001; 9 / 10000000; 9.0E-7; second; 900; 900.0; nanosecond duration; default; 001; 1 / 1000000000; 1.0E-9; second; 1; 1.0; nanosecond duration; default; 001; 9 / 10000000000; 9.0E-10; second; 9 / 10; 0.9; nanosecond - duration; media; 001; 66; 66.0; second; 1; minute; 6; 6.0; second duration; media; 001; 60; 60.0; second; 1; minute; 0; 0.0; second duration; media; 001; 54; 54.0; second; 54; 54.0; second duration; media; 001; 1; 1.0; second; 1; 1.0; second duration; media; 001; 9 / 10; 0.9; second; 9 / 10; 0.9; second - energy; default; 001; 3960000; 3960000.0; kilogram-square-meter-per-square-second; 11 / 10; 1.1; kilowatt-hour energy; default; 001; 3600000; 3600000.0; kilogram-square-meter-per-square-second; 1; 1.0; kilowatt-hour energy; default; 001; 3240000; 3240000.0; kilogram-square-meter-per-square-second; 9 / 10; 0.9; kilowatt-hour - energy; food; US; 23012 / 5; 4602.4; kilogram-square-meter-per-square-second; 11 / 10; 1.1; foodcalorie energy; food; US; 4184; 4184.0; kilogram-square-meter-per-square-second; 1; 1.0; foodcalorie energy; food; US; 18828 / 5; 3765.6; kilogram-square-meter-per-square-second; 9 / 10; 0.9; foodcalorie - energy; food; 001; 23012 / 5; 4602.4; kilogram-square-meter-per-square-second; 11 / 10; 1.1; kilocalorie energy; food; 001; 4184; 4184.0; kilogram-square-meter-per-square-second; 1; 1.0; kilocalorie energy; food; 001; 18828 / 5; 3765.6; kilogram-square-meter-per-square-second; 9 / 10; 0.9; kilocalorie - length; default; 001; 1100; 1100.0; meter; 11 / 10; 1.1; kilometer length; default; 001; 1000; 1000.0; meter; 1; 1.0; kilometer length; default; 001; 900; 900.0; meter; 900; 900.0; meter @@ -132,7 +120,6 @@ length; default; 001; 1; 1.0; meter; 1; 1.0; meter length; default; 001; 9 / 10; 0.9; meter; 90; 90.0; centimeter length; default; 001; 1 / 100; 0.01; meter; 1; 1.0; centimeter length; default; 001; 9 / 1000; 0.009; meter; 9 / 10; 0.9; centimeter - length; default; GB; 1106424 / 625; 1770.2784; meter; 11 / 10; 1.1; mile length; default; GB; 201168 / 125; 1609.344; meter; 1; 1.0; mile length; default; GB; 905256 / 625; 1448.4096; meter; 4752; 4752.0; foot @@ -140,45 +127,35 @@ length; default; GB; 381 / 1250; 0.3048; meter; 1; 1.0; foot length; default; GB; 3429 / 12500; 0.27432; meter; 54 / 5; 10.8; inch length; default; GB; 127 / 5000; 0.0254; meter; 1; 1.0; inch length; default; GB; 1143 / 50000; 0.02286; meter; 9 / 10; 0.9; inch - length; focal-length; 001; 11 / 10000; 0.0011; meter; 11 / 10; 1.1; millimeter length; focal-length; 001; 1 / 1000; 0.001; meter; 1; 1.0; millimeter length; focal-length; 001; 9 / 10000; 9.0E-4; meter; 9 / 10; 0.9; millimeter - length; person; 001; 11 / 1000; 0.011; meter; 11 / 10; 1.1; centimeter length; person; 001; 1 / 100; 0.01; meter; 1; 1.0; centimeter length; person; 001; 9 / 1000; 0.009; meter; 9 / 10; 0.9; centimeter - length; person; CA; 1397 / 50000; 0.02794; meter; 11 / 10; 1.1; inch length; person; CA; 127 / 5000; 0.0254; meter; 1; 1.0; inch length; person; CA; 1143 / 50000; 0.02286; meter; 9 / 10; 0.9; inch - length; person-height; 001; 11 / 1000; 0.011; meter; 11 / 10; 1.1; centimeter length; person-height; 001; 1 / 100; 0.01; meter; 1; 1.0; centimeter length; person-height; 001; 9 / 1000; 0.009; meter; 9 / 10; 0.9; centimeter - length; person-height; CA; 11811 / 12500; 0.94488; meter; 3; foot; 6 / 5; 1.2; inch length; person-height; CA; 1143 / 1250; 0.9144; meter; 3; foot; 0; 0.0; inch length; person-height; CA; 11049 / 12500; 0.88392; meter; 174 / 5; 34.8; inch length; person-height; CA; 127 / 5000; 0.0254; meter; 1; 1.0; inch length; person-height; CA; 1143 / 50000; 0.02286; meter; 9 / 10; 0.9; inch - length; person-height; AT; 11 / 10; 1.1; meter; 1; meter; 10; 10.0; centimeter length; person-height; AT; 1; 1.0; meter; 1; meter; 0; 0.0; centimeter length; person-height; AT; 9 / 10; 0.9; meter; 0; meter; 90; 90.0; centimeter - length; rainfall; BR; 11 / 1000; 0.011; meter; 11 / 10; 1.1; centimeter length; rainfall; BR; 1 / 100; 0.01; meter; 1; 1.0; centimeter length; rainfall; BR; 9 / 1000; 0.009; meter; 9 / 10; 0.9; centimeter - length; rainfall; US; 1397 / 50000; 0.02794; meter; 11 / 10; 1.1; inch length; rainfall; US; 127 / 5000; 0.0254; meter; 1; 1.0; inch length; rainfall; US; 1143 / 50000; 0.02286; meter; 9 / 10; 0.9; inch - length; rainfall; 001; 11 / 10000; 0.0011; meter; 11 / 10; 1.1; millimeter length; rainfall; 001; 1 / 1000; 0.001; meter; 1; 1.0; millimeter length; rainfall; 001; 9 / 10000; 9.0E-4; meter; 9 / 10; 0.9; millimeter - length; road; 001; 1000; 1000.0; meter; 1; 1.0; kilometer length; road; 001; 900; 900.0; meter; 9 / 10; 0.9; kilometer length; road; 001; 800; 800.0; meter; 800; 800.0; meter @@ -188,7 +165,6 @@ length; road; 001; 10; 10.0; meter; 10; 10.0; meter length; road; 001; 99 / 10; 9.9; meter; 99 / 10; 9.9; meter length; road; 001; 1; 1.0; meter; 1; 1.0; meter length; road; 001; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter - length; road; US; 603504 / 625; 965.6064; meter; 3 / 5; 0.6; mile length; road; US; 100584 / 125; 804.672; meter; 1 / 2; 0.5; mile length; road; US; 402336 / 625; 643.7376; meter; 2112; 2112.0; foot @@ -198,7 +174,6 @@ length; road; US; 381 / 125; 3.048; meter; 10; 10.0; foot length; road; US; 37719 / 12500; 3.01752; meter; 99 / 10; 9.9; foot length; road; US; 381 / 1250; 0.3048; meter; 1; 1.0; foot length; road; US; 3429 / 12500; 0.27432; meter; 9 / 10; 0.9; foot - length; road; GB; 603504 / 625; 965.6064; meter; 3 / 5; 0.6; mile length; road; GB; 100584 / 125; 804.672; meter; 1 / 2; 0.5; mile length; road; GB; 402336 / 625; 643.7376; meter; 704; 704.0; yard @@ -208,7 +183,6 @@ length; road; GB; 1143 / 125; 9.144; meter; 10; 10.0; yard length; road; GB; 113157 / 12500; 9.05256; meter; 99 / 10; 9.9; yard length; road; GB; 1143 / 1250; 0.9144; meter; 1; 1.0; yard length; road; GB; 10287 / 12500; 0.82296; meter; 9 / 10; 0.9; yard - length; road; SE; 11000; 11000.0; meter; 11 / 10; 1.1; mile-scandinavian length; road; SE; 10000; 10000.0; meter; 1; 1.0; mile-scandinavian length; road; SE; 9000; 9000.0; meter; 9; 9.0; kilometer @@ -220,43 +194,31 @@ length; road; SE; 10; 10.0; meter; 10; 10.0; meter length; road; SE; 99 / 10; 9.9; meter; 99 / 10; 9.9; meter length; road; SE; 1; 1.0; meter; 1; 1.0; meter length; road; SE; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter - length; snowfall; 001; 11 / 1000; 0.011; meter; 11 / 10; 1.1; centimeter length; snowfall; 001; 1 / 100; 0.01; meter; 1; 1.0; centimeter length; snowfall; 001; 9 / 1000; 0.009; meter; 9 / 10; 0.9; centimeter - length; snowfall; US; 1397 / 50000; 0.02794; meter; 11 / 10; 1.1; inch length; snowfall; US; 127 / 5000; 0.0254; meter; 1; 1.0; inch length; snowfall; US; 1143 / 50000; 0.02286; meter; 9 / 10; 0.9; inch - length; vehicle; GB; 4191 / 12500; 0.33528; meter; 1; foot; 6 / 5; 1.2; inch length; vehicle; GB; 381 / 1250; 0.3048; meter; 1; foot; 0; 0.0; inch length; vehicle; GB; 3429 / 12500; 0.27432; meter; 0; foot; 54 / 5; 10.8; inch - length; vehicle; 001; 11 / 10; 1.1; meter; 11 / 10; 1.1; meter length; vehicle; 001; 1; 1.0; meter; 1; 1.0; meter length; vehicle; 001; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter - -length; vehicle; MX; 11 / 10; 1.1; meter; 11 / 10; 1.1; meter -length; vehicle; MX; 1; 1.0; meter; 1; 1.0; meter -length; vehicle; MX; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter - length; visiblty; 001; 200; 200.0; meter; 1 / 5; 0.2; kilometer length; visiblty; 001; 100; 100.0; meter; 1 / 10; 0.1; kilometer length; visiblty; 001; 1; 1.0; meter; 1; 1.0; meter length; visiblty; 001; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter length; visiblty; 001; 0; 0.0; meter; 0; 0.0; meter - length; visiblty; DE; 11 / 10; 1.1; meter; 11 / 10; 1.1; meter length; visiblty; DE; 1; 1.0; meter; 1; 1.0; meter length; visiblty; DE; 9 / 10; 0.9; meter; 9 / 10; 0.9; meter - length; visiblty; GB; 1106424 / 625; 1770.2784; meter; 11 / 10; 1.1; mile length; visiblty; GB; 201168 / 125; 1609.344; meter; 1; 1.0; mile length; visiblty; GB; 905256 / 625; 1448.4096; meter; 4752; 4752.0; foot length; visiblty; GB; 381 / 1250; 0.3048; meter; 1; 1.0; foot length; visiblty; GB; 3429 / 12500; 0.27432; meter; 9 / 10; 0.9; foot - mass; default; 001; 1100; 1100.0; kilogram; 11 / 10; 1.1; tonne mass; default; 001; 1000; 1000.0; kilogram; 1; 1.0; tonne mass; default; 001; 900; 900.0; kilogram; 900; 900.0; kilogram @@ -268,7 +230,6 @@ mass; default; 001; 1 / 1000000; 1.0E-6; kilogram; 1; 1.0; milligram mass; default; 001; 9 / 10000000; 9.0E-7; kilogram; 900; 900.0; microgram mass; default; 001; 1 / 1000000000; 1.0E-9; kilogram; 1; 1.0; microgram mass; default; 001; 9 / 10000000000; 9.0E-10; kilogram; 9 / 10; 0.9; microgram - mass; default; GB; 498951607 / 500000; 997.903214; kilogram; 11 / 10; 1.1; ton mass; default; GB; 45359237 / 50000; 907.18474; kilogram; 1; 1.0; ton mass; default; GB; 408233133 / 500000; 816.466266; kilogram; 1800; 1800.0; pound @@ -276,35 +237,25 @@ mass; default; GB; 45359237 / 100000000; 0.45359237; kilogram; 1; 1.0; pound mass; default; GB; 408233133 / 1000000000; 0.408233133; kilogram; 72 / 5; 14.4; ounce mass; default; GB; 45359237 / 1600000000; 0.028349523125; kilogram; 1; 1.0; ounce mass; default; GB; 408233133 / 16000000000; 0.0255145708125; kilogram; 9 / 10; 0.9; ounce - mass; person; 001; 11 / 10; 1.1; kilogram; 11 / 10; 1.1; kilogram mass; person; 001; 1; 1.0; kilogram; 1; 1.0; kilogram mass; person; 001; 9 / 10; 0.9; kilogram; 900; 900.0; gram mass; person; 001; 1 / 1000; 0.001; kilogram; 1; 1.0; gram mass; person; 001; 9 / 10000; 9.0E-4; kilogram; 9 / 10; 0.9; gram - -mass; person; DZ; 11 / 10; 1.1; kilogram; 11 / 10; 1.1; kilogram -mass; person; DZ; 1; 1.0; kilogram; 1; 1.0; kilogram -mass; person; DZ; 9 / 10; 0.9; kilogram; 900; 900.0; gram - mass; person; US; 498951607 / 1000000000; 0.498951607; kilogram; 11 / 10; 1.1; pound mass; person; US; 45359237 / 100000000; 0.45359237; kilogram; 1; 1.0; pound mass; person; US; 408233133 / 1000000000; 0.408233133; kilogram; 0; pound; 72 / 5; 14.4; ounce - mass; person; GB; 3492661249 / 500000000; 6.985322498; kilogram; 1; stone; 7 / 5; 1.4; pound mass; person; GB; 317514659 / 50000000; 6.35029318; kilogram; 1; stone; 0; 0.0; pound mass; person; GB; 2857631931 / 500000000; 5.715263862; kilogram; 12; pound; 48 / 5; 9.6; ounce mass; person; GB; 45359237 / 100000000; 0.45359237; kilogram; 1; pound; 0; 0.0; ounce mass; person; GB; 408233133 / 1000000000; 0.408233133; kilogram; 0; pound; 72 / 5; 14.4; ounce - mass; person; HK; 498951607 / 1000000000; 0.498951607; kilogram; 1; pound; 8 / 5; 1.6; ounce mass; person; HK; 45359237 / 100000000; 0.45359237; kilogram; 1; pound; 0; 0.0; ounce mass; person; HK; 408233133 / 1000000000; 0.408233133; kilogram; 0; pound; 72 / 5; 14.4; ounce - mass-density; default; 001; 11 / 10; 1.1; kilogram-per-cubic-meter; 11 / 10; 1.1; kilogram-per-cubic-meter mass-density; default; 001; 1; 1.0; kilogram-per-cubic-meter; 1; 1.0; kilogram-per-cubic-meter mass-density; default; 001; 9 / 10; 0.9; kilogram-per-cubic-meter; 9 / 10; 0.9; kilogram-per-cubic-meter - power; default; 001; 1100000000; 1.1E9; kilogram-square-meter-per-cubic-second; 11 / 10; 1.1; gigawatt power; default; 001; 1000000000; 1.0E9; kilogram-square-meter-per-cubic-second; 1; 1.0; gigawatt power; default; 001; 900000000; 9.0E8; kilogram-square-meter-per-cubic-second; 900; 900.0; megawatt @@ -316,95 +267,89 @@ power; default; 001; 1; 1.0; kilogram-square-meter-per-cubic-second; 1; 1.0; wat power; default; 001; 9 / 10; 0.9; kilogram-square-meter-per-cubic-second; 900; 900.0; milliwatt power; default; 001; 1 / 1000; 0.001; kilogram-square-meter-per-cubic-second; 1; 1.0; milliwatt power; default; 001; 9 / 10000; 9.0E-4; kilogram-square-meter-per-cubic-second; 9 / 10; 0.9; milliwatt - power; engine; 001; 1100; 1100.0; kilogram-square-meter-per-cubic-second; 11 / 10; 1.1; kilowatt power; engine; 001; 1000; 1000.0; kilogram-square-meter-per-cubic-second; 1; 1.0; kilowatt power; engine; 001; 900; 900.0; kilogram-square-meter-per-cubic-second; 9 / 10; 0.9; kilowatt - power; engine; GB; 410134929370248621 / 500000000000000; 820.2698587404972; kilogram-square-meter-per-cubic-second; 11 / 10; 1.1; horsepower power; engine; GB; 37284993579113511 / 50000000000000; 745.6998715822702; kilogram-square-meter-per-cubic-second; 1; 1.0; horsepower power; engine; GB; 335564942212021599 / 500000000000000; 671.1298844240432; kilogram-square-meter-per-cubic-second; 9 / 10; 0.9; horsepower - pressure; baromtrc; 001; 110; 110.0; kilogram-per-meter-square-second; 11 / 10; 1.1; hectopascal pressure; baromtrc; 001; 100; 100.0; kilogram-per-meter-square-second; 1; 1.0; hectopascal pressure; baromtrc; 001; 90; 90.0; kilogram-per-meter-square-second; 9 / 10; 0.9; hectopascal - pressure; baromtrc; IN; 37250275043751 / 10000000000; 3725.0275043751; kilogram-per-meter-square-second; 11 / 10; 1.1; inch-ofhg pressure; baromtrc; IN; 3386388640341 / 1000000000; 3386.388640341; kilogram-per-meter-square-second; 1; 1.0; inch-ofhg pressure; baromtrc; IN; 30477497763069 / 10000000000; 3047.7497763069; kilogram-per-meter-square-second; 9 / 10; 0.9; inch-ofhg - pressure; baromtrc; BR; 110; 110.0; kilogram-per-meter-square-second; 11 / 10; 1.1; millibar pressure; baromtrc; BR; 100; 100.0; kilogram-per-meter-square-second; 1; 1.0; millibar pressure; baromtrc; BR; 90; 90.0; kilogram-per-meter-square-second; 9 / 10; 0.9; millibar - pressure; baromtrc; MX; 293309252313 / 2000000000; 146.6546261565; kilogram-per-meter-square-second; 11 / 10; 1.1; millimeter-ofhg pressure; baromtrc; MX; 26664477483 / 200000000; 133.322387415; kilogram-per-meter-square-second; 1; 1.0; millimeter-ofhg pressure; baromtrc; MX; 239980297347 / 2000000000; 119.9901486735; kilogram-per-meter-square-second; 9 / 10; 0.9; millimeter-ofhg - pressure; default; 001; 1100000; 1100000.0; kilogram-per-meter-square-second; 11 / 10; 1.1; megapascal pressure; default; 001; 1000000; 1000000.0; kilogram-per-meter-square-second; 1; 1.0; megapascal pressure; default; 001; 900000; 900000.0; kilogram-per-meter-square-second; 900000; 900000.0; pascal pressure; default; 001; 1; 1.0; kilogram-per-meter-square-second; 1; 1.0; pascal pressure; default; 001; 9 / 10; 0.9; kilogram-per-meter-square-second; 9 / 10; 0.9; pascal - pressure; default; GB; 97860875535731 / 12903200000; 7584.233022485197; kilogram-per-meter-square-second; 11 / 10; 1.1; pound-force-per-square-inch pressure; default; GB; 8896443230521 / 1290320000; 6894.757293168361; kilogram-per-meter-square-second; 1; 1.0; pound-force-per-square-inch pressure; default; GB; 80067989074689 / 12903200000; 6205.281563851525; kilogram-per-meter-square-second; 9 / 10; 0.9; pound-force-per-square-inch - speed; default; 001; 11 / 36; 0.3055555555555556; meter-per-second; 11 / 10; 1.1; kilometer-per-hour speed; default; 001; 5 / 18; 0.2777777777777778; meter-per-second; 1; 1.0; kilometer-per-hour speed; default; 001; 1 / 4; 0.25; meter-per-second; 9 / 10; 0.9; kilometer-per-hour - speed; default; GB; 15367 / 31250; 0.491744; meter-per-second; 11 / 10; 1.1; mile-per-hour speed; default; GB; 1397 / 3125; 0.44704; meter-per-second; 1; 1.0; mile-per-hour speed; default; GB; 12573 / 31250; 0.402336; meter-per-second; 9 / 10; 0.9; mile-per-hour - +speed; rainfall; 001; 11 / 36000000; 3.055555555555556E-7; meter-per-second; 11 / 10; 1.1; millimeter-per-hour +speed; rainfall; 001; 1 / 3600000; 2.777777777777778E-7; meter-per-second; 1; 1.0; millimeter-per-hour +speed; rainfall; 001; 1 / 4000000; 2.5E-7; meter-per-second; 9 / 10; 0.9; millimeter-per-hour +speed; rainfall; BR; 11 / 3600000; 3.055555555555556E-6; meter-per-second; 11 / 10; 1.1; centimeter-per-hour +speed; rainfall; BR; 1 / 360000; 2.777777777777778E-6; meter-per-second; 1; 1.0; centimeter-per-hour +speed; rainfall; BR; 1 / 400000; 2.5E-6; meter-per-second; 9 / 10; 0.9; centimeter-per-hour +speed; rainfall; US; 1397 / 180000000; 7.761111111111112E-6; meter-per-second; 11 / 10; 1.1; inch-per-hour +speed; rainfall; US; 127 / 18000000; 7.055555555555556E-6; meter-per-second; 1; 1.0; inch-per-hour +speed; rainfall; US; 127 / 20000000; 6.35E-6; meter-per-second; 9 / 10; 0.9; inch-per-hour +speed; snowfall; 001; 11 / 3600000; 3.055555555555556E-6; meter-per-second; 11 / 10; 1.1; centimeter-per-hour +speed; snowfall; 001; 1 / 360000; 2.777777777777778E-6; meter-per-second; 1; 1.0; centimeter-per-hour +speed; snowfall; 001; 1 / 400000; 2.5E-6; meter-per-second; 9 / 10; 0.9; centimeter-per-hour +speed; snowfall; US; 1397 / 180000000; 7.761111111111112E-6; meter-per-second; 11 / 10; 1.1; inch-per-hour +speed; snowfall; US; 127 / 18000000; 7.055555555555556E-6; meter-per-second; 1; 1.0; inch-per-hour +speed; snowfall; US; 127 / 20000000; 6.35E-6; meter-per-second; 9 / 10; 0.9; inch-per-hour speed; wind; 001; 11 / 36; 0.3055555555555556; meter-per-second; 11 / 10; 1.1; kilometer-per-hour speed; wind; 001; 5 / 18; 0.2777777777777778; meter-per-second; 1; 1.0; kilometer-per-hour speed; wind; 001; 1 / 4; 0.25; meter-per-second; 9 / 10; 0.9; kilometer-per-hour - speed; wind; FI; 11 / 10; 1.1; meter-per-second; 11 / 10; 1.1; meter-per-second speed; wind; FI; 1; 1.0; meter-per-second; 1; 1.0; meter-per-second speed; wind; FI; 9 / 10; 0.9; meter-per-second; 9 / 10; 0.9; meter-per-second - speed; wind; US; 15367 / 31250; 0.491744; meter-per-second; 11 / 10; 1.1; mile-per-hour speed; wind; US; 1397 / 3125; 0.44704; meter-per-second; 1; 1.0; mile-per-hour speed; wind; US; 12573 / 31250; 0.402336; meter-per-second; 9 / 10; 0.9; mile-per-hour - temperature; default; 001; 1097 / 4; 274.25; kelvin; 11 / 10; 1.1; celsius temperature; default; 001; 5483 / 20; 274.15; kelvin; 1; 1.0; celsius temperature; default; 001; 5481 / 20; 274.05; kelvin; 9 / 10; 0.9; celsius - temperature; default; US; 15359 / 60; 255.9833333333333; kelvin; 11 / 10; 1.1; fahrenheit temperature; default; US; 46067 / 180; 255.9277777777778; kelvin; 1; 1.0; fahrenheit temperature; default; US; 46057 / 180; 255.8722222222222; kelvin; 9 / 10; 0.9; fahrenheit - temperature; weather; 001; 1097 / 4; 274.25; kelvin; 11 / 10; 1.1; celsius temperature; weather; 001; 5483 / 20; 274.15; kelvin; 1; 1.0; celsius temperature; weather; 001; 5481 / 20; 274.05; kelvin; 9 / 10; 0.9; celsius - temperature; weather; BS; 15359 / 60; 255.9833333333333; kelvin; 11 / 10; 1.1; fahrenheit temperature; weather; BS; 46067 / 180; 255.9277777777778; kelvin; 1; 1.0; fahrenheit temperature; weather; BS; 46057 / 180; 255.8722222222222; kelvin; 9 / 10; 0.9; fahrenheit - volume; default; 001; 11 / 10; 1.1; cubic-meter; 11 / 10; 1.1; cubic-meter volume; default; 001; 1; 1.0; cubic-meter; 1; 1.0; cubic-meter volume; default; 001; 9 / 10; 0.9; cubic-meter; 900000; 900000.0; cubic-centimeter volume; default; 001; 1 / 1000000; 1.0E-6; cubic-meter; 1; 1.0; cubic-centimeter volume; default; 001; 9 / 10000000; 9.0E-7; cubic-meter; 9 / 10; 0.9; cubic-centimeter - volume; default; GB; 608369751 / 19531250000; 0.0311485312512; cubic-meter; 11 / 10; 1.1; cubic-foot volume; default; GB; 55306341 / 1953125000; 0.028316846592; cubic-meter; 1; 1.0; cubic-foot volume; default; GB; 497757069 / 19531250000; 0.0254851619328; cubic-meter; 7776 / 5; 1555.2; cubic-inch volume; default; GB; 2048383 / 125000000000; 1.6387064E-5; cubic-meter; 1; 1.0; cubic-inch volume; default; GB; 18435447 / 1250000000000; 1.47483576E-5; cubic-meter; 9 / 10; 0.9; cubic-inch - volume; fluid; 001; 11 / 10000; 0.0011; cubic-meter; 11 / 10; 1.1; liter volume; fluid; 001; 1 / 1000; 0.001; cubic-meter; 1; 1.0; liter volume; fluid; 001; 9 / 10000; 9.0E-4; cubic-meter; 900; 900.0; milliliter volume; fluid; 001; 1 / 1000000; 1.0E-6; cubic-meter; 1; 1.0; milliliter volume; fluid; 001; 9 / 10000000; 9.0E-7; cubic-meter; 9 / 10; 0.9; milliliter - volume; fluid; US; 5204941203 / 1250000000000; 0.0041639529624; cubic-meter; 11 / 10; 1.1; gallon volume; fluid; US; 473176473 / 125000000000; 0.003785411784; cubic-meter; 1; 1.0; gallon volume; fluid; US; 4258588257 / 1250000000000; 0.0034068706056; cubic-meter; 18 / 5; 3.6; quart @@ -420,35 +365,29 @@ volume; fluid; US; 473176473 / 32000000000000; 1.478676478125E-5; cubic-meter; 1 volume; fluid; US; 4258588257 / 320000000000000; 1.3308088303125E-5; cubic-meter; 27 / 10; 2.7; teaspoon volume; fluid; US; 157725491 / 32000000000000; 4.92892159375E-6; cubic-meter; 1; 1.0; teaspoon volume; fluid; US; 1419529419 / 320000000000000; 4.436029434375E-6; cubic-meter; 9 / 10; 0.9; teaspoon - volume; fluid; GB; 5000699 / 1000000000; 0.005000699; cubic-meter; 11 / 10; 1.1; gallon-imperial volume; fluid; GB; 454609 / 100000000; 0.00454609; cubic-meter; 1; 1.0; gallon-imperial volume; fluid; GB; 4091481 / 1000000000; 0.004091481; cubic-meter; 144; 144.0; fluid-ounce-imperial volume; fluid; GB; 454609 / 16000000000; 2.84130625E-5; cubic-meter; 1; 1.0; fluid-ounce-imperial volume; fluid; GB; 4091481 / 160000000000; 2.557175625E-5; cubic-meter; 9 / 10; 0.9; fluid-ounce-imperial - volume; oil; 001; 109303765263 / 625000000000; 0.1748860244208; cubic-meter; 11 / 10; 1.1; barrel volume; oil; 001; 9936705933 / 62500000000; 0.158987294928; cubic-meter; 1; 1.0; barrel volume; oil; 001; 89430353397 / 625000000000; 0.1430885654352; cubic-meter; 9 / 10; 0.9; barrel - volume; vehicle; US; 5204941203 / 1250000000000; 0.0041639529624; cubic-meter; 11 / 10; 1.1; gallon volume; vehicle; US; 473176473 / 125000000000; 0.003785411784; cubic-meter; 1; 1.0; gallon volume; vehicle; US; 4258588257 / 1250000000000; 0.0034068706056; cubic-meter; 9 / 10; 0.9; gallon - volume; vehicle; 001; 11 / 10000; 0.0011; cubic-meter; 11 / 10; 1.1; liter volume; vehicle; 001; 1 / 1000; 0.001; cubic-meter; 1; 1.0; liter volume; vehicle; 001; 9 / 10000; 9.0E-4; cubic-meter; 9 / 10; 0.9; liter - year-duration; default; 001; 11 / 10; 1.1; year; 11 / 10; 1.1; year year-duration; default; 001; 1; 1.0; year; 1; 1.0; year year-duration; default; 001; 9 / 10; 0.9; year; 54 / 5; 10.8; month year-duration; default; 001; 1 / 12; 0.08333333333333333; year; 1; 1.0; month year-duration; default; 001; 3 / 40; 0.075; year; 9 / 10; 0.9; month - year-duration; person-age; 001; 13 / 5; 2.6; year; 13 / 5; 2.6; year-person year-duration; person-age; 001; 5 / 2; 2.5; year; 5 / 2; 2.5; year-person year-duration; person-age; 001; 12 / 5; 2.4; year; 2; year-person; 24 / 5; 4.8; month-person year-duration; person-age; 001; 1; 1.0; year; 1; year-person; 0; 0.0; month-person year-duration; person-age; 001; 9 / 10; 0.9; year; 54 / 5; 10.8; month-person year-duration; person-age; 001; 1 / 12; 0.08333333333333333; year; 1; 1.0; month-person -year-duration; person-age; 001; 3 / 40; 0.075; year; 9 / 10; 0.9; month-person \ No newline at end of file +year-duration; person-age; 001; 3 / 40; 0.075; year; 9 / 10; 0.9; month-person diff --git a/common/testData/units/unitsTest.txt b/common/testData/units/unitsTest.txt index f24f0526499..acf936a69d8 100644 --- a/common/testData/units/unitsTest.txt +++ b/common/testData/units/unitsTest.txt @@ -1,7 +1,7 @@ # Test data for unit conversions -# Copyright © 1991-2021 Unicode, Inc. +# Copyright © 1991-2023 Unicode, Inc. # For terms of use, see http://www.unicode.org/copyright.html -# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# SPDX-License-Identifier: Unicode-DFS-2016 # CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) # # Format: @@ -76,6 +76,7 @@ energy ; kilowatt-hour ; kilogram-square-meter-second-per-cubic-second ; 3,600,0 energy ; therm-us ; kilogram-square-meter-per-square-second ; 105,480,400 * x ; 1.054804E11 force ; newton ; kilogram-meter-per-square-second ; 1 * x ; 1000.0 force ; pound-force ; kilogram-meter-per-square-second ; 4.4482216152605 * x ; 4448.222 +force ; kilowatt-hour-per-100-kilometer ; kilogram-square-meter-second-per-meter-cubic-second ; 36 * x ; 36000.0 frequency ; hertz ; revolution-per-second ; 1 * x ; 1000.0 frequency ; kilohertz ; revolution-per-second ; 1,000 * x ; 1000000.0 frequency ; megahertz ; revolution-per-second ; 1,000,000 * x ; 1.0E9 @@ -104,9 +105,9 @@ length ; mile-scandinavian ; meter ; 10,000 * x ; 1.0E7 length ; 100-kilometer ; meter ; 100,000 * x ; 1.0E8 length ; earth-radius ; meter ; 6,378,100 * x ; 6.3781E9 length ; solar-radius ; meter ; 695,700,000 * x ; 6.957E11 -length ; astronomical-unit ; meter ; 149,597,900,000 * x ; 1.495979E14 -length ; light-year ; meter ; 9,460,730,000,000,000 * x ; 9.46073E18 -length ; parsec ; meter ; 30,856,780,000,000,000 * x ; 3.085678E19 +length ; astronomical-unit ; meter ; 149,597,870,700 * x ; 1.495979E14 +length ; light-year ; meter ; 9,460,730,472,580,800 * x ; 9.46073E18 +length ; parsec ; meter ; 12,699,352,539,696,155,673,600,000/411,557,987 * x ; 3.085678E19 luminous-flux ; lumen ; candela-square-meter-per-square-meter ; 1 * x ; 1000.0 luminous-intensity ; candela ; candela ; 1 * x ; 1,000.00 mass ; microgram ; kilogram ; 0.000000001 * x ; 1.0E-6 @@ -198,7 +199,8 @@ volume ; cubic-kilometer ; cubic-meter ; 1,000,000,000 * x ; 1.0E12 volume ; cubic-mile ; cubic-meter ; 4,168,181,825.440579584 * x ; 4.168182E12 year-duration ; month ; year ; 0.25/3 * x ; 83.33333 year-duration ; month-person ; year ; 0.25/3 * x ; 83.33333 +year-duration ; quarter ; year ; 0.25 * x ; 250.0 year-duration ; year ; year ; 1 * x ; 1,000.00 year-duration ; year-person ; year ; 1 * x ; 1000.0 year-duration ; decade ; year ; 10 * x ; 10000.0 -year-duration ; century ; year ; 100 * x ; 100000.0 \ No newline at end of file +year-duration ; century ; year ; 100 * x ; 100000.0 diff --git a/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnits.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnits.java index 1448d9194df..6aed4d561b6 100644 --- a/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnits.java +++ b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestUnits.java @@ -37,6 +37,7 @@ import org.unicode.cldr.test.ExampleGenerator; import org.unicode.cldr.util.CLDRConfig; import org.unicode.cldr.util.CLDRFile; +import org.unicode.cldr.util.CLDRPaths; import org.unicode.cldr.util.ChainedMap; import org.unicode.cldr.util.ChainedMap.M3; import org.unicode.cldr.util.ChainedMap.M4; @@ -67,6 +68,7 @@ import org.unicode.cldr.util.SupplementalDataInfo.PluralInfo.Count; import org.unicode.cldr.util.SupplementalDataInfo.PluralType; import org.unicode.cldr.util.SupplementalDataInfo.UnitIdComponentType; +import org.unicode.cldr.util.TempPrintWriter; import org.unicode.cldr.util.UnitConverter; import org.unicode.cldr.util.UnitConverter.Continuation; import org.unicode.cldr.util.UnitConverter.Continuation.UnitIterator; @@ -543,22 +545,25 @@ public void TestParseUnit() { checkUnitConvertability(converter, compoundBaseUnit, badUnits, noQuantity, type, unit, testPrintout); } if (GENERATE_TESTS) { // test data - System.out.println( - "# Test data for unit conversions\n" - + CldrUtility.getCopyrightString("# ") + "\n" - + "#\n" - + "# Format:\n" - + "#\tQuantity\t;\tx\t;\ty\t;\tconversion to y (rational)\t;\ttest: 1000 x ⟹ y\n" - + "#\n" - + "# Use: convert 1000 x units to the y unit; the result should match the final column,\n" - + "# at the given precision. For example, when the last column is 159.1549,\n" - + "# round to 4 decimal digits before comparing.\n" - + "# Note that certain conversions are approximate, such as degrees to radians\n" - + "#\n" - + "# Generation: Set GENERATE_TESTS in TestUnits.java, and look at TestParseUnit results.\n" - ); - for (Entry, String> entry : testPrintout.entries()) { - System.out.println(entry.getValue()); + try (TempPrintWriter pw = TempPrintWriter.openUTF8Writer(CLDRPaths.TEST_DATA + "units", "unitsTest.txt")) { + + pw.println( + "# Test data for unit conversions\n" + + CldrUtility.getCopyrightString("# ") + "\n" + + "#\n" + + "# Format:\n" + + "#\tQuantity\t;\tx\t;\ty\t;\tconversion to y (rational)\t;\ttest: 1000 x ⟹ y\n" + + "#\n" + + "# Use: convert 1000 x units to the y unit; the result should match the final column,\n" + + "# at the given precision. For example, when the last column is 159.1549,\n" + + "# round to 4 decimal digits before comparing.\n" + + "# Note that certain conversions are approximate, such as degrees to radians\n" + + "#\n" + + "# Generation: Set GENERATE_TESTS in TestUnits.java, and look at TestParseUnit results.\n" + ); + for (Entry, String> entry : testPrintout.entries()) { + pw.println(entry.getValue()); + } } } assertEquals("Unconvertable units", Collections.emptySet(), badUnits); @@ -1470,85 +1475,88 @@ public void TestUnitPreferences() { prefs.getFastMap(converter); // call just to make sure we don't get an exception if (GENERATE_TESTS) { - System.out.println( - "\n# Test data for unit preferences\n" - + CldrUtility.getCopyrightString("# ") + "\n" - + "#\n" - + "# Format:\n" - + "#\tQuantity;\tUsage;\tRegion;\tInput (r);\tInput (d);\tInput Unit;\tOutput (r);\tOutput (d);\tOutput Unit\n" - + "#\n" - + "# Use: Convert the Input amount & unit according to the Usage and Region.\n" - + "#\t The result should match the Output amount and unit.\n" - + "#\t Both rational (r) and double64 (d) forms of the input and output amounts are supplied so that implementations\n" - + "#\t have two options for testing based on the precision in their implementations. For example:\n" - + "#\t 3429 / 12500; 0.27432; meter;\n" - + "#\t The Output amount and Unit are repeated for mixed units. In such a case, only the smallest unit will have\n" - + "#\t both a rational and decimal amount; the others will have a single integer value, such as:\n" - + "#\t length; person-height; CA; 3429 / 12500; 0.27432; meter; 2; foot; 54 / 5; 10.8; inch\n" - + "#\t The input and output units are unit identifers; in particular, the output does not have further processing:\n" - + "#\t\t • no localization\n" - + "#\t\t • no adjustment for pluralization\n" - + "#\t\t • no formatted with the skeleton\n" - + "#\t\t • no suppression of zero values (for secondary -and- units such as pound in stone-and-pound)\n" - + "#\n" - + "# Generation: Set GENERATE_TESTS in TestUnits.java, and look at TestUnitPreferences results.\n" - ); - Rational ONE_TENTH = Rational.of(1,10); - - // Note that for production usage, precomputed data like the prefs.getFastMap(converter) would be used instead of the raw data. - - for (Entry, UnitPreference>>> entry : prefs.getData().entrySet()) { - String quantity = entry.getKey(); - String baseUnit = converter.getBaseUnitFromQuantity(quantity); - for (Entry, UnitPreference>> entry2 : entry.getValue().entrySet()) { - String usage = entry2.getKey(); - - // collect samples of base units - for (Entry, Collection> entry3 : entry2.getValue().asMap().entrySet()) { - boolean first = true; - Set samples = new TreeSet<>(Comparator.reverseOrder()); - for (UnitPreference pref : entry3.getValue()) { - final String topUnit = UnitPreferences.SPLIT_AND.split(pref.unit).iterator().next(); - if (first) { - samples.add(converter.convert(pref.geq.add(ONE_TENTH), topUnit, baseUnit, false)); - first = false; + try (TempPrintWriter pw = TempPrintWriter.openUTF8Writer(CLDRPaths.TEST_DATA + "units", "unitPreferencesTest.txt")) { + + pw.println( + "\n# Test data for unit preferences\n" + + CldrUtility.getCopyrightString("# ") + "\n" + + "#\n" + + "# Format:\n" + + "#\tQuantity;\tUsage;\tRegion;\tInput (r);\tInput (d);\tInput Unit;\tOutput (r);\tOutput (d);\tOutput Unit\n" + + "#\n" + + "# Use: Convert the Input amount & unit according to the Usage and Region.\n" + + "#\t The result should match the Output amount and unit.\n" + + "#\t Both rational (r) and double64 (d) forms of the input and output amounts are supplied so that implementations\n" + + "#\t have two options for testing based on the precision in their implementations. For example:\n" + + "#\t 3429 / 12500; 0.27432; meter;\n" + + "#\t The Output amount and Unit are repeated for mixed units. In such a case, only the smallest unit will have\n" + + "#\t both a rational and decimal amount; the others will have a single integer value, such as:\n" + + "#\t length; person-height; CA; 3429 / 12500; 0.27432; meter; 2; foot; 54 / 5; 10.8; inch\n" + + "#\t The input and output units are unit identifers; in particular, the output does not have further processing:\n" + + "#\t\t • no localization\n" + + "#\t\t • no adjustment for pluralization\n" + + "#\t\t • no formatted with the skeleton\n" + + "#\t\t • no suppression of zero values (for secondary -and- units such as pound in stone-and-pound)\n" + + "#\n" + + "# Generation: Set GENERATE_TESTS in TestUnits.java, and look at TestUnitPreferences results.\n" + ); + Rational ONE_TENTH = Rational.of(1,10); + + // Note that for production usage, precomputed data like the prefs.getFastMap(converter) would be used instead of the raw data. + + for (Entry, UnitPreference>>> entry : prefs.getData().entrySet()) { + String quantity = entry.getKey(); + String baseUnit = converter.getBaseUnitFromQuantity(quantity); + for (Entry, UnitPreference>> entry2 : entry.getValue().entrySet()) { + String usage = entry2.getKey(); + + // collect samples of base units + for (Entry, Collection> entry3 : entry2.getValue().asMap().entrySet()) { + boolean first = true; + Set samples = new TreeSet<>(Comparator.reverseOrder()); + for (UnitPreference pref : entry3.getValue()) { + final String topUnit = UnitPreferences.SPLIT_AND.split(pref.unit).iterator().next(); + if (first) { + samples.add(converter.convert(pref.geq.add(ONE_TENTH), topUnit, baseUnit, false)); + first = false; + } + samples.add(converter.convert(pref.geq, topUnit, baseUnit, false)); + samples.add(converter.convert(pref.geq.subtract(ONE_TENTH), topUnit, baseUnit, false)); } - samples.add(converter.convert(pref.geq, topUnit, baseUnit, false)); - samples.add(converter.convert(pref.geq.subtract(ONE_TENTH), topUnit, baseUnit, false)); - } - // show samples - Set regions = entry3.getKey(); - String sampleRegion = regions.iterator().next(); - Collection uprefs = entry3.getValue(); - for (Rational sample : samples) { - showSample(quantity, usage, sampleRegion, sample, baseUnit, uprefs); + // show samples + Set regions = entry3.getKey(); + String sampleRegion = regions.iterator().next(); + Collection uprefs = entry3.getValue(); + for (Rational sample : samples) { + showSample(quantity, usage, sampleRegion, sample, baseUnit, uprefs, pw); + } + pw.println(); } - System.out.println(); } } } } } - private void showSample(String quantity, String usage, String sampleRegion, Rational sampleBaseValue, String baseUnit, Collection prefs) { + private void showSample(String quantity, String usage, String sampleRegion, Rational sampleBaseValue, String baseUnit, Collection prefs, TempPrintWriter pw) { String lastUnit = null; boolean gotOne = false; for (UnitPreference pref : prefs) { final String topUnit = UnitPreferences.SPLIT_AND.split(pref.unit).iterator().next(); Rational baseGeq = converter.convert(pref.geq, topUnit, baseUnit, false); if (sampleBaseValue.compareTo(baseGeq) >= 0) { - showSample2(quantity, usage, sampleRegion, sampleBaseValue, baseUnit, pref.unit); + showSample2(quantity, usage, sampleRegion, sampleBaseValue, baseUnit, pref.unit, pw); gotOne = true; break; } lastUnit = pref.unit; } if (!gotOne) { - showSample2(quantity, usage, sampleRegion, sampleBaseValue, baseUnit, lastUnit); + showSample2(quantity, usage, sampleRegion, sampleBaseValue, baseUnit, lastUnit, pw); } } - private void showSample2(String quantity, String usage, String sampleRegion, Rational sampleBaseValue, String baseUnit, String lastUnit) { + private void showSample2(String quantity, String usage, String sampleRegion, Rational sampleBaseValue, String baseUnit, String lastUnit, TempPrintWriter pw) { Rational originalSampleBaseValue = sampleBaseValue; // Known slow algorithm for mixed values, but for generating tests we don't care. final List units = UnitPreferences.SPLIT_AND.splitToList(lastUnit); @@ -1569,7 +1577,7 @@ private void showSample2(String quantity, String usage, String sampleRegion, Rat formattedUnit.append(sample + TEST_SEP + sample.doubleValue() + TEST_SEP + unit); } } - System.out.println(quantity + TEST_SEP + usage + TEST_SEP + sampleRegion + pw.println(quantity + TEST_SEP + usage + TEST_SEP + sampleRegion + TEST_SEP + originalSampleBaseValue + TEST_SEP + originalSampleBaseValue.doubleValue() + TEST_SEP + baseUnit + TEST_SEP + formattedUnit); } @@ -2826,7 +2834,7 @@ public void TestUnitParser() { private List> checkParse(UnitParser up, String shortUnit) { up.set(shortUnit); List> results = new ArrayList<>(); - Output type = new Output<>(); + Output type = new Output<>(); while (true) { String result = up.nextParse(type); if (result == null) { From 02332af2928e29e0c708f43816915be8f9b72689 Mon Sep 17 00:00:00 2001 From: macchiati Date: Mon, 13 Mar 2023 22:31:24 -0700 Subject: [PATCH 5/5] CLDR-16467 Update localeDisplayName.txt test (rewriting) --- .../localeIdentifiers/localeDisplayName.txt | 26 +++-- .../cldr/tool/GenerateLocaleIDTestData.java | 99 ++++++++++++++++++- 2 files changed, 116 insertions(+), 9 deletions(-) diff --git a/common/testData/localeIdentifiers/localeDisplayName.txt b/common/testData/localeIdentifiers/localeDisplayName.txt index 4541e17f6b9..4786e67f786 100644 --- a/common/testData/localeIdentifiers/localeDisplayName.txt +++ b/common/testData/localeIdentifiers/localeDisplayName.txt @@ -1,7 +1,7 @@ # Test data for locale display name generation -# Copyright © 1991-2020 Unicode, Inc. +# Copyright © 1991-2023 Unicode, Inc. # For terms of use, see http://www.unicode.org/copyright.html -# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# SPDX-License-Identifier: Unicode-DFS-2016 # CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) # Format: # @locale= @@ -11,6 +11,7 @@ @locale=en @compound=false + # Simple cases: Language, script, region, variants es; Spanish @@ -23,7 +24,7 @@ hi-Latn; Hindi (Latin) en-Latn-GB-scouse-fonipa; English (Latin, United Kingdom, IPA Phonetics, Scouse) # Add extensions, and verify their order - + en-u-nu-thai-ca-islamic-civil; English (Islamic Calendar [tabular, civil epoch], Thai Digits) hi-u-nu-latn-t-en-h0-hybrid; Hindi (Hybrid: English, Western Digits) en-u-nu-deva-t-de; English (Transform: German, Devanagari Digits) @@ -32,7 +33,7 @@ en-u-nu-deva-t-de; English (Transform: German, Devanagari Digits) fr-z-zz-zzz-v-vv-vvv-u-uu-uuu-t-ru-Cyrl-s-ss-sss-a-aa-aaa-x-u-x; French (Transform: Russian [Cyrillic], uu: uuu, a: aa-aaa, s: ss-sss, v: vv-vvv, x: u-x, z: zz-zzz) -# Comprehensive list (mostly: currencies, subdivisions, timezones have abbreviated lists) +# Comprehensive list (mostly comprehensive: currencies, subdivisions, timezones have abbreviated lists) en-u-ca-buddhist; English (Buddhist Calendar) en-u-ca-chinese; English (Chinese Calendar) @@ -99,6 +100,7 @@ en-t-d0-remove; English (To Empty String) en-t-d0-title; English (To Titlecase) en-t-d0-upper; English (To Uppercase) en-t-d0-zawgyi; English (To Zawgyi Myanmar Encoding) +en-u-dx-thai; English (Dictionary Break Exclusions: thai) en-u-em-default; English (Use Default Presentation For Emoji Characters) en-u-em-emoji; English (Prefer Emoji Presentation For Emoji Characters) en-u-em-text; English (Prefer Text Presentation For Emoji Characters) @@ -182,6 +184,7 @@ en-u-lb-strict; English (Strict Line Break Style) en-u-lw-breakall; English (Allow Line Breaks In All Words) en-u-lw-keepall; English (Prevent Line Breaks In All Words) en-u-lw-normal; English (Normal Line Breaks For Words) +en-u-lw-phrase; English (Prevent Line Breaks In Phrases) en-t-m0-aethiopi; English (Encylopedia Aethiopica Transliteration) en-t-m0-alaloc; English (US ALA-LOC Transliteration) en-t-m0-betamets; English (Beta Maṣāḥǝft Transliteration) @@ -212,11 +215,14 @@ en-t-m0-tekieali; English (Tekie Alibekit Blin-Latin Transliteration) en-t-m0-ungegn; English (UN GEGN Transliteration) en-t-m0-unicode; English (Hex transform using Unicode syntax) en-t-m0-xaleget; English (Eritrean Ministry of Education Blin-Latin Transliteration) -en-t-m0-xml10; English (Hex transform using XML decimal syntax) en-t-m0-xml; English (Hex transform using XML syntax) +en-t-m0-xml10; English (Hex transform using XML decimal syntax) en-u-ms-metric; English (Metric System) en-u-ms-uksystem; English (Imperial Measurement System) en-u-ms-ussystem; English (US Measurement System) +en-u-mu-celsius; English (Celsius) +en-u-mu-fahrenhe; English (Fahrenheit) +en-u-mu-kelvin; English (Kelvin) en-u-nu-adlm; English (Adlam Digits) en-u-nu-ahom; English (Ahom Digits) en-u-nu-arab; English (Arabic-Indic Digits) @@ -231,6 +237,7 @@ en-u-nu-cakm; English (Chakma Digits) en-u-nu-cham; English (Cham Digits) en-u-nu-cyrl; English (Cyrillic Numerals) en-u-nu-deva; English (Devanagari Digits) +en-u-nu-diak; English (Dives Akuru Digits) en-u-nu-ethi; English (Ethiopic Numerals) en-u-nu-finance; English (Financial Numerals) en-u-nu-fullwide; English (Full-Width Digits) @@ -255,6 +262,7 @@ en-u-nu-jpan; English (Japanese Numerals) en-u-nu-jpanfin; English (Japanese Financial Numerals) en-u-nu-jpanyear; English (Japanese Calendar Gannen Year Numerals) en-u-nu-kali; English (Kayah Li Digits) +en-u-nu-kawi; English (Kawi Digits) en-u-nu-khmr; English (Khmer Digits) en-u-nu-knda; English (Kannada Digits) en-u-nu-lana; English (Tai Tham Hora Digits) @@ -276,6 +284,7 @@ en-u-nu-mtei; English (Meetei Mayek Digits) en-u-nu-mymr; English (Myanmar Digits) en-u-nu-mymrshan; English (Myanmar Shan Digits) en-u-nu-mymrtlng; English (Myanmar Tai Laing Digits) +en-u-nu-nagm; English (Nag Mundari Digits) en-u-nu-native; English (Native Digits) en-u-nu-newa; English (Newa Digits) en-u-nu-nkoo; English (N’Ko Digits) @@ -286,6 +295,7 @@ en-u-nu-rohg; English (Hanifi Rohingya digits) en-u-nu-roman; English (Roman Numerals) en-u-nu-romanlow; English (Roman Lowercase Numerals) en-u-nu-saur; English (Saurashtra Digits) +en-u-nu-segment; English (Segmented Digits) en-u-nu-shrd; English (Sharada Digits) en-u-nu-sind; English (Khudawadi Digits) en-u-nu-sinh; English (Sinhala Lith Digits) @@ -299,11 +309,12 @@ en-u-nu-telu; English (Telugu Digits) en-u-nu-thai; English (Thai Digits) en-u-nu-tibt; English (Tibetan Digits) en-u-nu-tirh; English (Tirhuta Digits) +en-u-nu-tnsa; English (Tangsa Digits) en-u-nu-traditio; English (Traditional Numerals) en-u-nu-vaii; English (Vai Digits) en-u-nu-wara; English (Warang Citi Digits) en-u-nu-wcho; English (Wancho Digits) -en-u-rg-ustx; English (Region For Supplemental Data: Texas) +en-u-rg-gbsct; English (Region For Supplemental Data: Scotland) en-u-rg-gbeng; English (Region For Supplemental Data: England) en-t-s0-accents; English (From Accented Characters To ASCII Sequence) en-t-s0-ascii; English (From ASCII) @@ -312,9 +323,8 @@ en-t-s0-morse; English (From Morse Code) en-t-s0-npinyin; English (From Pinyin With Numeric Tones) en-t-s0-publish; English (From Publishing Punctuation To ASCII) en-t-s0-zawgyi; English (From Zawgyi Myanmar Encoding) -en-u-sd-usca; English (Region Subdivision: California) en-u-sd-gbsct; English (Region Subdivision: Scotland) -en-u-sd-frnor; English (Region Subdivision: Normandie) +en-u-sd-gbwls; English (Region Subdivision: Wales) en-u-ss-none; English (Sentence Breaks Without Abbreviation Handling) en-u-ss-standard; English (Suppress Sentence Breaks After Standard Abbreviations) en-t-t0-und; English (Unspecified Machine Translation) diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java index 51dc3833e2f..5409eeb44d8 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLocaleIDTestData.java @@ -1,18 +1,34 @@ package org.unicode.cldr.tool; import java.io.IOException; +import java.util.Arrays; +import java.util.Collection; import java.util.Map; import java.util.Map.Entry; +import org.unicode.cldr.util.CLDRConfig; +import org.unicode.cldr.util.CLDRFile; import org.unicode.cldr.util.CLDRPaths; import org.unicode.cldr.util.CldrUtility; import org.unicode.cldr.util.LsrvCanonicalizer; import org.unicode.cldr.util.LsrvCanonicalizer.TestDataTypes; import org.unicode.cldr.util.StandardCodes.LstrType; +import org.unicode.cldr.util.SupplementalDataInfo; import org.unicode.cldr.util.TempPrintWriter; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.ImmutableSortedSet; +import com.google.common.collect.Multimap; +import com.google.common.collect.TreeMultimap; +import com.ibm.icu.impl.Relation; +import com.ibm.icu.impl.Row; +import com.ibm.icu.impl.Row.R2; +import com.ibm.icu.text.UnicodeSet; + public class GenerateLocaleIDTestData { - static final LsrvCanonicalizer rrs = LsrvCanonicalizer.getInstance(); + private static final LsrvCanonicalizer rrs = LsrvCanonicalizer.getInstance(); + private static final CLDRConfig CLDR_CONFIG = CLDRConfig.getInstance(); + private static final CLDRFile ENGLISH = CLDR_CONFIG.getEnglish(); public static void main(String[] args) throws IOException { try (TempPrintWriter pw = TempPrintWriter.openUTF8Writer(CLDRPaths.TEST_DATA + "localeIdentifiers", "localeCanonicalization.txt")) { @@ -43,5 +59,86 @@ public static void main(String[] args) throws IOException { } } } + + try (TempPrintWriter pw = TempPrintWriter.openUTF8Writer(CLDRPaths.TEST_DATA + "localeIdentifiers", "localeDisplayName.txt")) { + pw.println("# Test data for locale display name generation\n" + + CldrUtility.getCopyrightString("# ") + + "\n# Format:\n" + + "# @locale=\n" + + "# @compound=\n" + + "# ; \n" + + "\n" + + "@locale=en\n" + + "@compound=false\n"); + pw.println("\n# Simple cases: Language, script, region, variants\n"); + showDisplayNames(pw, "es", "es-419", "es-Cyrl-MX", "hi-Latn"); + pw.println("\n#Note that the order of the variants is alphabetized before generating names\n"); + showDisplayNames(pw, "en-Latn-GB-scouse-fonipa"); + pw.println("\n# Add extensions, and verify their order\n"); + showDisplayNames(pw, "en-u-nu-thai-ca-islamic-civil", "hi-u-nu-latn-t-en-h0-hybrid", "en-u-nu-deva-t-de"); + pw.println("\n# Test ordering of extensions (include well-formed but invalid cases)\n"); + showDisplayNames(pw, "fr-z-zz-zzz-v-vv-vvv-u-uu-uuu-t-ru-Cyrl-s-ss-sss-a-aa-aaa-x-u-x"); + + pw.println("\n# Comprehensive list (mostly comprehensive: currencies, subdivisions, timezones have abbreviated lists)\n"); + SupplementalDataInfo SDI = CLDR_CONFIG.getSupplementalDataInfo(); + Relation extensionToKeys = SDI.getBcp47Extension2Keys(); + Multimap keyToExtensions = TreeMultimap.create(); + for (Entry entry : extensionToKeys.entrySet()) { + keyToExtensions.put(entry.getValue(), entry.getKey()); + } + final Relation keyToValues = SDI.getBcp47Keys(); + Map, String> deprecated = SDI.getBcp47Deprecated(); + + ImmutableMultimap overrides = ImmutableMultimap.builder() + .putAll("cu", "eur", "jpy", "usd", "chf") + .putAll("rg", "gbsct", "gbeng") + .putAll("sd", "gbsct", "gbwls") + .putAll("tz", "uslax", "gblon", "chzrh") + .putAll("dx", "thai") + .putAll("vt", "abcd") + .putAll("x0", "foobar2") + .putAll("kr", "arab", "digit-deva-latn", "currency", "digit", "punct", "space", "symbol") + .build(); + + final UnicodeSet upper = new UnicodeSet("[A-Z]").freeze(); + + for (String key : keyToValues.keySet()) { + if ("true".equals(deprecated.get(Row.of(key, "")))) { + continue; + } + for (String extension : keyToExtensions.get(key)) { + Collection values = overrides.containsKey(key) + ? overrides.get(key) : + ImmutableSortedSet.copyOf(keyToValues.get(key)); + for (String value : values) { + if ("true".equals(deprecated.get(Row.of(key, value)))) { + continue; + } + final String sampleLocale = "en-" + extension + "-" + key + "-" + value; + if (upper.containsSome(value)) { + System.err.println("** FIX NAME: " + sampleLocale); + } else { + showDisplayNames(pw, sampleLocale); + } + } + } + } + + } + + } + + private static void showDisplayNames(TempPrintWriter pw, String... locales) { + showDisplayNames(pw, Arrays.asList(locales)); + } + private static void showDisplayNames(TempPrintWriter pw, Collection locales) { + for (String locale : locales) { + String name = ENGLISH.getName(locale, true); + if (name.contains("null")) { + System.err.println("** REPLACE: " + locale + "; " + name); + } else { + pw.println(locale + "; " + name); + } + } } }