| WELL-FORMED |
| en-GB-oed |
| zh-cmn-Hans |
| no-bok |
| #zh-Hans-HK-SCOUSE-a-foobar-b-x-a-en@collation=phonebook;calendar=islamic |
| #i-default@abc=def |
| #x-foobar@abc=def |
| #zh-Hans-HK-SCOUSE-a-foobar-x-a-en@collation=phonebook;calendar=islamic |
| #zh@collation=phonebook |
| #zh@collation=phonebook;calendar=islamic |
| #zh-Hans-HK-SCOUSE-a-foobar-b-en-x-a-en@collation=phonebook;calendar=islamic |
| |
| AaBbCcDd |
| AaBbCcDd-x-y-any-x |
| abcd-Latn |
| ab-x-abc-a-a # ditto |
| ab-x-abc-a-a # ditto |
| ab-x-abc-x-abc # anything goes after x |
| ab-x-abc-x-abc # anything goes after x |
| ax-TZ # Not in the registry, but well-formed |
| az-Arab-x-AZE-derbend |
| de-a-value |
| de-CH-1996 |
| de-Latg-1996 |
| en |
| en-a-bbb-x-a-ccc |
| en-gb-oed |
| en-Latn |
| en-Latn-001 |
| en-Latn-GB-boont-r-extended-sequence-x-private |
| en-Latn-US |
| en-Latn-US-lojban-gaulish |
| en-Latn-US-lojban-gaulish-a-12345678-ABCD-b-ABCDEFGH |
| en-Latn-US-lojban-gaulish-a-12345678-ABCD-b-ABCDEFGH-x-a-b-c-12345678 |
| en-US |
| en-US |
| en-US-boont |
| en-x-US |
| es-419 |
| es-Latn-CO-x-private |
| fr |
| fra |
| fra-FX |
| fra-Latn # ISO 639 can be 3-letters |
| fr-FR |
| fr-Latn |
| fr-Latn-419 |
| fr-Latn-CA |
| fr-Latn-CA |
| fr-Latn-FR |
| fr-shadok # Variant |
| fr-y-myext-myext2 |
| i-default # grandfathered |
| i-default # grandfathered |
| i-enochian # Grand fathered |
| i-klingon # grandfathered |
| i-klingon # grandfathered with singleton |
| mn-Cyrl-MN |
| mN-cYrL-Mn |
| no-bok # grandfathered without singleton |
| sl-IT-nedis |
| sl-nedis |
| sr-Latn-CS |
| x-12345678-a |
| x-fr-CH |
| |
| #all of the grandfathered codes; first the really goofy ones. Cased oddly for an extra test. |
| En-Gb-Oed |
| I-Ami |
| I-Bnn |
| I-Default |
| I-Enochian |
| I-Hak |
| I-Klingon |
| I-Lux |
| I-Mingo |
| I-Navajo |
| I-Pwn |
| I-Tao |
| I-Tay |
| I-Tsu |
| Sgn-Be-Fr |
| Sgn-Be-Nl |
| Sgn-Ch-De |
| |
| #now the ones that are well-formed, but currently invalid |
| art-lojban |
| cel-gaulish |
| en-boont |
| en-scouse |
| no-bok |
| no-nyn |
| zh-cmn |
| zh-cmn-Hans |
| zh-cmn-Hant |
| zh-gan |
| zh-guoyu |
| zh-hakka |
| zh-min |
| zh-min-nan |
| zh-wuu |
| zh-xiang |
| zh-yue |
| |
| # the following have multiple singletons -- well formed but invalid |
| ab-a-abc-a-abc |
| en-a-bbb-a-ccc # 'a' appears twice |
| ab-c-abc-r-toto-c-abc # 'c' appears twice |
| |
| # Now some randomly generated correct names |
| |
| zszLDm-sCVS-es-x-gn762vG-83-S-mlL |
| IIJdFI-cfZv |
| kbAxSgJ-685 |
| tbutP |
| hDL-595 |
| dUf-iUjq-0hJ4P-5YkF-WD8fk |
| FZAABA-FH |
| xZ-lh-4QfM5z9J-1eG4-x-K-R6VPr2z |
| Fyi |
| SeI-DbaG |
| ch-xwFn |
| OeC-GPVI |
| JLzvUSi |
| Fxh-hLAs |
| pKHzCP-sgaO-554 |
| eytqeW-hfgH-uQ |
| ydn-zeOP-PR |
| uoWmBM-yHCf-JE |
| xwYem |
| zie |
| Re-wjSv-Ey-i-XE-E-JjWTEB8-f-DLSH-NVzLH-AtnFGWoH-SIDE |
| Ri-063-c-u6v-ZfhkToTB-C-IFfmv-XT-j-rdyYFMhK-h-pY-D5-Oh6FqBhL-hcXt-v-WdpNx71-K-c74m4-eBTT7-JdH7Q1Z |
| ji |
| IM-487 |
| EPZ-zwcB |
| GauwEcwo |
| kDEP |
| FwDYt-TNvo |
| ottqP-KLES-x-9-i9 |
| fcflR-grQQ |
| TvFwdu-kYhs |
| WE-336 |
| MgxQa-ywEp-8lcW-7bvT-h-dP1Md-0h7-0Z3ir-K-Srkm-kA-7LXM-Z-whb2MiO-2mNsvbLm-W3O-4r-U-KceIxHdI-gvMVgUBV-2uRUni-J0-7C8yTK2 |
| Hyr-B-evMtVoB1-mtsVZf-vQMV-gM-I-rr-kvLzg-f-lAUK-Qb36Ne-Z-7eFzOD-mv6kKf-l-miZ7U3-k-XDGtNQG |
| ybrlCpzy |
| PTow-w-cAQ51-8Xd6E-cumicgt-WpkZv3NY-q-ORYPRy-v-A4jL4A-iNEqQZZ-sjKn-W-N1F-pzyc-xP5eWz-LmsCiCcZ |
| ih-DlPR-PE |
| Krf-362 |
| WzaD |
| EPaOnB-gHHn |
| XYta |
| NZ-RgOO-tR |
| at-FE |
| Tpc-693 |
| YFp |
| gRQrQULo |
| pVomZ-585 |
| laSu-ZcAq-338 |
| gCW |
| PydSwHRI-TYfF |
| zKmWDD |
| X-bCrL5RL |
| HK |
| YMKGcLY |
| GDJ-nHYa-bw-X-ke-rohH5GfS-LdJKsGVe |
| tfOxdau-yjge-489-a-oB-I8Csb-1ESaK1v-VFNz-N-FT-ZQyn-On2-I-hu-vaW3-jIQb-vg0U-hUl-h-dO6KuJqB-U-tde2L-P3gHUY-vnl5c-RyO-H-gK1-zDPu-VF1oeh8W-kGzzvBbW-yuAJZ |
| LwDux |
| Zl-072 |
| Ri-Ar |
| vocMSwo-cJnr-288 |
| kUWq-gWfQ-794 |
| YyzqKL-273 |
| Xrw-ZHwH-841-9foT-ESSZF-6OqO-0knk-991U-9p3m-b-JhiV-0Kq7Y-h-cxphLb-cDlXUBOQ-X-4Ti-jty94yPp |
| en-GB-oed |
| LEuZl-so |
| HyvBvFi-cCAl-X-irMQA-Pzt-H |
| uDbsrAA-304 |
| wTS |
| IWXS |
| XvDqNkSn-jRDR |
| gX-Ycbb-iLphEks-AQ1aJ5 |
| FbSBz-VLcR-VL |
| JYoVQOP-Iytp |
| gDSoDGD-lq-v-7aFec-ag-k-Z4-0kgNxXC-7h |
| Bjvoayy-029 |
| qSDJd |
| qpbQov |
| fYIll-516 |
| GfgLyfWE-EHtB |
| Wc-ZMtk |
| cgh-VEYK |
| WRZs-AaFd-yQ |
| eSb-CpsZ-788 |
| YVwFU |
| JSsHiQhr-MpjT-381 |
| LuhtJIQi-JKYt |
| vVTvS-RHcP |
| SY |
| fSf-EgvQfI-ktWoG-8X5z-63PW |
| NOKcy |
| OjJb-550 |
| KB |
| qzKBv-zDKk-589 |
| Jr |
| Acw-GPXf-088 |
| WAFSbos |
| HkgnmerM-x-e5-zf-VdDjcpz-1V6 |
| UAfYflJU-uXDc-YV |
| x-CHsHx-VDcOUAur-FqagDTx-H-V0e74R |
| uZIAZ-Xmbh-pd |
| |
| ILL-FORMED |
| |
| -a |
| a- |
| a1-Hant-ZH |
| aabbccddE |
| a--b |
| ab-123-abc |
| ab-123-abc |
| ab-123-abcd |
| ab-123-abcd |
| ab-1abc-abc |
| ab-1abc-abc |
| ab-1abc-abcd |
| ab-1abc-abcd |
| ab--ab |
| ab--ab |
| ab-a-b |
| ab-a-b |
| ab-ab-abc |
| ab-ab-abc |
| ab-ab-abcd |
| ab-ab-abcd |
| -ab-abc |
| -ab-abc |
| ab-abc- |
| ab-abc- |
| ab-abc-abc-abc-abc |
| ab-abc-abc-abc-abc |
| ab-abcd-abc |
| ab-abcd-abc |
| ab-abcde-abc |
| ab-abcde-abc |
| ab-abcde-abcd |
| ab-abcde-abcd |
| ab-a-x |
| ab-a-x |
| abcd-efg |
| abcdefghi-012345678 |
| abcdefghi-012345678 |
| a-foo |
| a-Hant-ZH |
| a-value |
| a-x |
| b-fish |
| en-enx-eny-enz-enw |
| en-UK-oed |
| en-US-Latn |
| f |
| f-Latn |
| fr-Latn-F |
| overlongone |
| tlh-a-b-foo |
| |
| i-notexist # grandfathered but not registered: invalid, even if we only test well-formedness |
| |
| en-enx # Extended tag |
| en-enx-eny-enz-latn-us # Extended tag |
| fr-fra # Extended tag |
| fr-Lat # Extended |
| |
| #mechanically generated ill-formed items |
| |
| EdY-z_H791Xx6_m_kj |
| qWt85_8S0-L_rbBDq0gl_m_O_zsAx_nRS |
| VzyL2 |
| T_VFJq-L-0JWuH_u2_VW-hK-kbE |
| u-t |
| Q-f_ZVJXyc-doj_k-i |
| JWB7gNa_K-5GB-25t_W-s-ZbGVwDu1-H3E |
| b-2T-Qob_L-C9v_2CZxK86 |
| fQTpX_0_4Vg_L3L_g7VtALh2 |
| S-Z-E_J |
| f6wsq-02_i-F |
| 9_GcUPq_G |
| QjsIy_9-0-7_Dv2yPV09_D-JXWXM |
| D_se-f-k |
| ON47Wv1_2_W |
| f-z-R_s-ha |
| N3APeiw_195_Bx2-mM-pf-Z-Ip5lXWa-5r |
| IRjxU-E_6kS_D_b1b_H |
| NB-3-5-AyW_FQ-9hB-TrRJg3JV_3C |
| yF-3a_V_FoJQAHeL_Z-Mc-u |
| n_w_bbunOG_1-s-tJMT5je |
| Q-AEWE_X |
| 57b1O_k_R6MU_sb |
| hK_65J_i-o_SI-Y |
| wB4B7u_5I2_I_NZPI |
| J24Nb_q_d-zE |
| v6-dHjJmvPS_IEb-x_A-O-i |
| 8_8_dl-ZgBr84u-P-E |
| nIn-xD7EVhe_C |
| 5_N-6P_x7Of_Lo_6_YX_R |
| 0_46Oo0sZ-YNwiU8Wr_d-M-pg1OriV |
| laiY-5 |
| K-8Mdd-j_ila0sSpo_aO8_J |
| wNATtSL-Cp4_gPa_fD41_9z |
| H_FGz5V8_n6rrcoz0_1O6d-kH-7-N |
| wDOrnHU-odqJ_vWl |
| gP_qO-I-jH |
| h |
| dJ0hX-o_csBykEhU-F |
| L-Vf7_BV_eRJ5goSF_Kp |
| y-oF-chnavU-H |
| 9FkG-8Q-8_v |
| W_l_NDQqI-O_SFSAOVq |
| kDG3fzXw |
| t-nsSp-7-t-mUK2 |
| Yw-F |
| 1-S_3_l |
| u-v_brn-Y |
| 4_ft_3ZPZC5lA_D |
| n_dR-QodsqJnh_e |
| Hwvt-bSwZwj_KL-hxg0m-3_hUG |
| mQHzvcV-UL-o2O_1KhUJQo_G2_uryk3-a |
| b-UTn33HF |
| r-Ep-jY-aFM_N_H |
| K-k-krEZ0gwD_k_ua-9dm3Oy-s_v |
| XS_oS-p |
| EIx_h-zf5 |
| p_z-0_i-omQCo3B |
| 1_q0N_jo_9 |
| 0Ai-6-S |
| L-LZEp_HtW |
| Zj-A4JD_2A5Aj7_b-m3 |
| x |
| p-qPuXQpp_d-jeKifB-c-7_G-X |
| X94cvJ_A |
| F2D25R_qk_W-w_Okf_kx |
| rc-f |
| D |
| gD_WrDfxmF-wu-E-U4t |
| Z_BN9O4_D9-D_0E_KnCwZF-84b-19 |
| T-8_g-u-0_E |
| lXTtys9j_X_A_m-vtNiNMw_X_b-C6Nr |
| V_Ps-4Y-S |
| X5wGEA |
| mIbHFf_ALu4_Jo1Z1 |
| ET-TacYx_c |
| Z-Lm5cAP_ri88-d_q_fi8-x |
| rTi2ah-4j_j_4AlxTs6m_8-g9zqncIf-N5 |
| FBaLB85_u-0NxhAy-ZU_9c |
| x_j_l-5_aV95_s_tY_jp4 |
| PL768_D-m7jNWjfD-Nl_7qvb_bs_8_Vg |
| 9-yOc-gbh |
| 6DYxZ_SL-S_Ye |
| ZCa-U-muib-6-d-f_oEh_O |
| Qt-S-o8340F_f_aGax-c-jbV0gfK_p |
| WE_SzOI_OGuoBDk-gDp |
| cs-Y_9 |
| m1_uj |
| Y-ob_PT |
| li-B |
| f-2-7-9m_f8den_J_T_d |
| p-Os0dua-H_o-u |
| L |
| rby-w |