Glyphs for NO/DK/CZ/SK: Latin Extended-A and North Sámi are covered — lock it with a test (R7) #214

Open
opened 2026-08-24 17:03:33 +00:00 by art-bot · 0 comments
Collaborator

R7 for the four countries being added in #210 (Norway), #211 (Denmark), #212 (Czechia) and
#213 (Slovakia): verify the Go font stack renders their scripts before onboarding.

Status: already de-risked — the deliverable is the test, not a fix

Checked directly against the embedded font: the goregular TTF was extracted from
golang.org/x/image@v0.44.0/font/gofont/goregular/data.go and its cmap read with fontTools.

  • Latin Extended-A (U+0100–017F) is 128/128 complete. Latin-1 Supplement is 96/128.
  • Every codepoint the four countries need is present, with zero missing:
    • Danish/Norwegian æ ø å Æ Ø Å
    • Czech á č ď é ě í ň ó ř š ť ú ů ý ž and capitals — including the risky
      ě U+011B, ř U+0159, ů U+016F, ď U+010F, ť U+0165, ň U+0148
    • Slovak á ä č ď é í ĺ ľ ň ó ô ŕ š ť ú ý ž — including ľ U+013E, ĺ U+013A,
      ŕ U+0155
    • North Sámi đ U+0111, ŋ U+014B, ŧ U+0167, ž, č, š — the genuinely uncertain one,
      since Kartverket's SSR carries Sámi and Kven names and N50Stedsnavn has a språk
      attribute that takes nordsamisk and kvensk
    • Lule/South Sámi and Kven (á å ä ï ö) — present
  • Sample names with zero missing glyphs: Tromsø, Ålesund, Guovdageaidnu, Kárášjohka,
    Deatnu, Ærøskøbing, Køge, Plzeň, Děčín, Žďár nad Sázavou, Ústí nad Labem, Košice, Žilina,
    Ľubochňa, Dolný Kubín, Štrbské Pleso.
  • Controls: Polish and Greek (both already imported) also clean, as expected.

So R7 is a green light for all four. What is missing is the test that keeps it green —
a font replacement that dropped Latin Extended-A would silently box every Czech, Slovak and
Sámi name on the map, and nothing would fail.

Deliverables

  1. Extend mapsrv/glyph_check_test.go with a Latin-Extended-A invariant assertion mirroring
    TestGreekGlyphInvariants: use the real NewGenerator(), generate the range containing
    U+0100–017F, and assert the specific codepoints listed above produce real glyphs with
    valid SDF gradients. One test covering all four countries (plus Poland retroactively),
    not four tests.
  2. A CDP render in real time (R127 — never --virtual-time-budget) of a sample of
    Norwegian, Sámi, Danish, Czech and Slovak names through the live font stack, with a
    negative control, confirming no missing-glyph boxes on the actual map.
  3. Record the verdict in docs/country-requirements.md R7's example and in each of
    docs/country-no.md, -dk.md, -cz.md, -sk.md once they exist.

Data-independent — can land before or in parallel with the four pilots.

R7 for the four countries being added in #210 (Norway), #211 (Denmark), #212 (Czechia) and #213 (Slovakia): verify the Go font stack renders their scripts before onboarding. ## Status: already de-risked — the deliverable is the test, not a fix Checked directly against the embedded font: the `goregular` TTF was extracted from `golang.org/x/image@v0.44.0/font/gofont/goregular/data.go` and its cmap read with fontTools. - **Latin Extended-A (U+0100–017F) is 128/128 complete.** Latin-1 Supplement is 96/128. - Every codepoint the four countries need is present, with **zero** missing: - Danish/Norwegian **æ ø å Æ Ø Å** - Czech **á č ď é ě í ň ó ř š ť ú ů ý ž** and capitals — including the risky **ě U+011B, ř U+0159, ů U+016F, ď U+010F, ť U+0165, ň U+0148** - Slovak **á ä č ď é í ĺ ľ ň ó ô ŕ š ť ú ý ž** — including **ľ U+013E, ĺ U+013A, ŕ U+0155** - **North Sámi đ U+0111, ŋ U+014B, ŧ U+0167, ž, č, š** — the genuinely uncertain one, since Kartverket's SSR carries Sámi and Kven names and `N50Stedsnavn` has a `språk` attribute that takes `nordsamisk` and `kvensk` - Lule/South Sámi and Kven (á å ä ï ö) — present - Sample names with zero missing glyphs: Tromsø, Ålesund, Guovdageaidnu, Kárášjohka, Deatnu, Ærøskøbing, Køge, Plzeň, Děčín, Žďár nad Sázavou, Ústí nad Labem, Košice, Žilina, Ľubochňa, Dolný Kubín, Štrbské Pleso. - Controls: Polish and Greek (both already imported) also clean, as expected. So R7 is a green light for all four. What is missing is the **test that keeps it green** — a font replacement that dropped Latin Extended-A would silently box every Czech, Slovak and Sámi name on the map, and nothing would fail. ## Deliverables 1. Extend `mapsrv/glyph_check_test.go` with a Latin-Extended-A invariant assertion mirroring `TestGreekGlyphInvariants`: use the real `NewGenerator()`, generate the range containing U+0100–017F, and assert the specific codepoints listed above produce real glyphs with valid SDF gradients. One test covering all four countries (plus Poland retroactively), not four tests. 2. A CDP render in **real time** (R127 — never `--virtual-time-budget`) of a sample of Norwegian, Sámi, Danish, Czech and Slovak names through the live font stack, with a negative control, confirming no missing-glyph boxes on the actual map. 3. Record the verdict in `docs/country-requirements.md` R7's example and in each of `docs/country-no.md`, `-dk.md`, `-cz.md`, `-sk.md` once they exist. Data-independent — can land before or in parallel with the four pilots.
art-bot self-assigned this 2026-08-24 17:03:34 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
art/ismap#214
No description provided.