Spaces:
Running on Zero
Running on Zero
Daryl Lim commited on
Commit ·
5650cd5
1
Parent(s): 09577a5
test: update langmap tests for expanded dict shape with regions
Browse files- tests/test_langmap.py +29 -40
tests/test_langmap.py
CHANGED
|
@@ -6,7 +6,7 @@ def test_langid_mapping_is_nonempty():
|
|
| 6 |
|
| 7 |
|
| 8 |
def test_langid_mapping_count():
|
| 9 |
-
assert len(langid_to_language) =
|
| 10 |
|
| 11 |
|
| 12 |
def test_keys_are_bcp47_tokens():
|
|
@@ -15,53 +15,42 @@ def test_keys_are_bcp47_tokens():
|
|
| 15 |
assert key.endswith(">"), f"Key {key} does not end with '>'"
|
| 16 |
|
| 17 |
|
| 18 |
-
def
|
| 19 |
for key, value in langid_to_language.items():
|
| 20 |
-
assert isinstance(value,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
|
| 23 |
def test_no_leading_or_trailing_whitespace():
|
| 24 |
for key, value in langid_to_language.items():
|
| 25 |
-
assert value == value.strip(), f"
|
|
|
|
| 26 |
|
| 27 |
|
| 28 |
def test_no_duplicate_language_names():
|
| 29 |
-
names =
|
| 30 |
assert len(names) == len(set(names)), "Duplicate language names found"
|
| 31 |
|
| 32 |
|
| 33 |
-
def
|
| 34 |
-
"""
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
"
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
"
|
| 44 |
-
"Filipino",
|
| 45 |
-
"French",
|
| 46 |
-
"Croatian",
|
| 47 |
-
"Indonesian",
|
| 48 |
-
"Italian",
|
| 49 |
-
"Macedonian",
|
| 50 |
-
"Malay",
|
| 51 |
-
"Maltese",
|
| 52 |
-
"Norwegian Nynorsk",
|
| 53 |
-
"Norwegian",
|
| 54 |
-
"Portuguese",
|
| 55 |
-
"Romanian",
|
| 56 |
-
"Slovak",
|
| 57 |
-
"Swedish",
|
| 58 |
-
}
|
| 59 |
-
values = set(langid_to_language.values())
|
| 60 |
-
assert values == expected, f"Mismatch: missing={expected - values}, extra={values - expected}"
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
def test_removed_languages_absent():
|
| 64 |
-
"""Languages outside Tier 1 must not be in the mapping."""
|
| 65 |
-
values = set(langid_to_language.values())
|
| 66 |
-
for lang in ["Japanese", "Hindi", "Swahili", "Arabic", "Russian", "Polish", "Dutch"]:
|
| 67 |
-
assert lang not in values, f"{lang} should have been removed (not Tier 1)"
|
|
|
|
| 6 |
|
| 7 |
|
| 8 |
def test_langid_mapping_count():
|
| 9 |
+
assert len(langid_to_language) >= 400, f"Expected ~419 languages, got {len(langid_to_language)}"
|
| 10 |
|
| 11 |
|
| 12 |
def test_keys_are_bcp47_tokens():
|
|
|
|
| 15 |
assert key.endswith(">"), f"Key {key} does not end with '>'"
|
| 16 |
|
| 17 |
|
| 18 |
+
def test_values_are_dicts_with_name_and_region():
|
| 19 |
for key, value in langid_to_language.items():
|
| 20 |
+
assert isinstance(value, dict), f"Value for {key} is not a dict"
|
| 21 |
+
assert "name" in value, f"Value for {key} missing 'name' key"
|
| 22 |
+
assert "region" in value, f"Value for {key} missing 'region' key"
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def test_names_are_nonempty_strings():
|
| 26 |
+
for key, value in langid_to_language.items():
|
| 27 |
+
assert isinstance(value["name"], str) and value["name"].strip(), f"Empty name for {key}"
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
def test_regions_are_nonempty_strings():
|
| 31 |
+
for key, value in langid_to_language.items():
|
| 32 |
+
assert isinstance(value["region"], str) and value["region"].strip(), f"Empty region for {key}"
|
| 33 |
|
| 34 |
|
| 35 |
def test_no_leading_or_trailing_whitespace():
|
| 36 |
for key, value in langid_to_language.items():
|
| 37 |
+
assert value["name"] == value["name"].strip(), f"Name for {key} has whitespace: {value['name']!r}"
|
| 38 |
+
assert value["region"] == value["region"].strip(), f"Region for {key} has whitespace: {value['region']!r}"
|
| 39 |
|
| 40 |
|
| 41 |
def test_no_duplicate_language_names():
|
| 42 |
+
names = [v["name"] for v in langid_to_language.values()]
|
| 43 |
assert len(names) == len(set(names)), "Duplicate language names found"
|
| 44 |
|
| 45 |
|
| 46 |
+
def test_key_languages_present():
|
| 47 |
+
"""Spot-check key language codes across regions."""
|
| 48 |
+
key_codes = ["<2en>", "<2fr>", "<2de>", "<2es>", "<2ja>", "<2zh>", "<2ar>", "<2hi>", "<2pt>", "<2ru>"]
|
| 49 |
+
for code in key_codes:
|
| 50 |
+
assert code in langid_to_language, f"Missing language code: {code}"
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
def test_no_other_region():
|
| 54 |
+
"""No language should have 'Other' as its region."""
|
| 55 |
+
for key, value in langid_to_language.items():
|
| 56 |
+
assert value["region"] != "Other", f"{key} ({value['name']}) has region 'Other'"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|