Skip to content

fix: corpus test repairs, batch A - ban, mni, bod, lif (zero known failures) - #256

Merged
ronaldtse merged 4 commits into
mainfrom
fix/corpus-tests-a
Nov 4, 2026
Merged

ronaldtse merged 4 commits into
mainfrom
fix/corpus-tests-a

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

Repairs the remaining corpus embedded-test failures across four maps (batch A of two; batch B - tha/din-fas/khm/lao/mya - already merged as #255). Every change is source-anchored to the ALA-LC guide documents.

Per map (all verified 37/37 in rust AND ruby)

  • alalc-ban-Bali-Latn-2025 (was a "PROBE" placeholder): rebuilt against the rendered table - 26 tests covering the preamble's cluster suppression (after-lookahead pattern per the Hindi/Bengali precedent), word-final adeg-adeg middle dot, akara-as-zero, terminal marks, rekan, punctuation, au/pepet-tedung; missing plain-sa row added; rerekan-underline and scribal-error gaps recorded in notes.
  • alalc-mni-Mtei-Latn-2022: tests re-anchored to the source's own rows (the old inputs used wrong glyphs, one was a Cherokee code point); digits added per source p.2 (romanize 0-9); heavy tone = combining dot below per the p.2 example.
  • alalc-bod-Tibt-Latn-2015: the combination grid rebuilt (1628 rows) per Wylie principles + Note 9 ("no need to indicate the stacking") - stacked forms romanize as sequences; source letter values for subjoined SSA/DDHA, fixed-form wa/ya/ra, subjoined 'a; Note 9 t'sa stack. Standalone-artifact and missing-base anomalies recorded.
  • alalc-lif-Limb-Latn-2011: test corrected (U+1920 is the A sign; Note 1 - no distinction in romanization - so ᤁᤠ = "ka"); the e/o dependent-value anomaly recorded (glyphs don't render in either archived copy).

Verification

  • rust iscrs: 37/37 for the four maps; ruby interpreter parity 37/37.
  • Batch B's five maps (already merged) complete the set: the corpus's known test-failure count reaches zero with this PR.

U+1920 is the Limbu vowel sign A; the source (2011 table, p. 1, Note 1)
makes no romanization distinction between syllable-initial and
following vowel forms, and Note 2 supplies the inherent vowel a unless
another vowel sign follows, so ka + a-sign = ka. Record the unresolvable
dependent-sign value anomaly (source glyphs do not render in the
archived copies) in the notes.
The 2022 source (p. 1-2) romanizes the vowel row as se, the katap as k,
the numerals as 0-9, and the heavy tone with a combining dot below (the
source's own example: ka + macron-a + dot below). The old tests used
wrong or unassignable inputs (one was a Cherokee code point; the digit
expected a consonant cluster); they are now the source's own rows, the
digit rules are encoded, and the unimplemented punctuation and apun
iyek rows are recorded as gaps.
…member

The 2015 table has no combination grid; per its Wylie principles (p. 1)
and Note 9 (p. 3, "there is no need to indicate the stacking"), a stack
romanizes as the consonant sequence with the implicit vowel a of the
final member (ka + subjoined ka = kka). Rewrite all 1628 grid rows to
that rule, use the source letter values for the subjoined non-Tibetan
letters (sa per p. 2, so subjoined SSA is ksa-form, and DDHA is dha-form,
not the Unicode-name artifacts "kddha"/"kssa"), encode the fixed-form
wa/ya/ra and subjoined ʼa rows as their letter values, and add the Note 9
letter-sequence stack t-prime-sa example. Record the standalone sha/sa/ha/a
row artifacts, the missing non-Tibetan base letters, and the tsheg gap in
the notes.
Verify every row against the rendered document and repair the map:
encode the missing plain sa row (p. 2); romanize the o sign without a
macron (p. 4, combining form of o-kara) and add the au and pepet-tedung
signs; implement the adeg-adeg cluster semantics of the preamble (p. 1)
with the corpus's context-rule pattern (after-lookahead, as in the
Hindi and Bengali maps), so sa-adeg-ta-adeg-ra-adeg-ya-o-sign-bisah =
stryoh as the source's own example shows, and a word-final adeg-adeg
cancels the vowel as the middle dot (rule b; hampun-dote, p. 6 note 2);
romanize akara as the zero vowel q (notes 13 and 15); add the missing
terminal consonants ulu ricem, ulu candra, cecek (p. 3, notes 7-8), the
aksara rekan rows (p. 4), and the remaining punctuation (p. 5). The
tests grow from a placeholder probe to 26 source-anchored rows and
document examples. Record the rerekan-underline and scribal-error
bracket practices as unimplemented gaps.
@ronaldtse
ronaldtse merged commit c4426cb into main Nov 4, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant