TMW->EWTS, TMW->ACIP, and ACIP->Unicode/TMW now support more appendages. Personal correspondence with Robert Chilton led me to support, besides 'am, 'ang, 'o, 'i, and 'u, the following:

'e (used in foreign transliteration)
'ongs
'is
'os
'ur
'us
'ung
This commit is contained in:
dchandler 2003-10-18 03:04:47 +00:00
parent 5e18feb47d
commit 8c99adeb63
6 changed files with 116 additions and 38 deletions

View file

@ -80,6 +80,13 @@ public class PackageTest extends TestCase {
}
private static final boolean sdebug = false;
/** Testing helper.
@param pairListToUse is 0 for the usual lex, 1 for the "Treat
' as a consonant, not a vowel" parse, 2 to use 1 but also
verify that lex 1 is preferred by the converter over lex 0, 3
to use 1 but also verify that lex 0 is preferred by the
converter over lex 1, -1 to use 0 and ensure that there is no
lex 1, only a lex 0. */
private static void tstHelper2(String acip,
String expectedPairs,
boolean debug,
@ -88,9 +95,11 @@ public class PackageTest extends TestCase {
String expectedBestParse,
int pairListToUse) {
TPairList[] la = TPairListFactory.breakACIPIntoChunks(acip);
TPairList l = la[pairListToUse];
TPairList l = la[(pairListToUse == -1) ? 0 : ((pairListToUse >= 1) ? 1 : pairListToUse)];
if (sdebug || debug)
System.out.println("ACIP=" + acip + " and l'=" + l);
if (pairListToUse == -1)
assertTrue(la[1] == null);
if (expectedPairs != null) {
if (!l.equals(expectedPairs)) {
System.out.println("acip=" + acip + "; chunks=" + l + "; expected chunks=" + expectedPairs);
@ -220,6 +229,19 @@ public class PackageTest extends TestCase {
+ "; recovery is " + l.recoverACIP());
assertTrue(false);
}
if (pairListToUse >= 2) {
TParseTree pt0 = la[0].getParseTree();
TParseTree pt1 = la[1].getParseTree();
TStackList sl0 = pt0.getBestParse();
TStackList sl1 = pt1.getBestParse();
BoolTriple sl0bt = sl0.isLegalTshegBar(false);
BoolTriple sl1bt = sl1.isLegalTshegBar(false);
if (pairListToUse == 2) {
assertTrue(sl0bt.compareTo(sl1bt) < 0);
} else {
assertTrue(sl0bt.compareTo(sl1bt) >= 0);
}
}
}
// DLC FIXME: warn if we have to use the "what stacks take a GA prefix?" rules to get a unique legal parse.
@ -380,37 +402,48 @@ tstHelper("KA'", "[(K . A), (' . )]",
"{G}{DA}{M}{S}{'O}",
},
new String[] { "{G}{DA}{M}{S}{'O}" },
"{G}{DA}{M}{S}{'O}", 1);
"{G}{DA}{M}{S}{'O}", 2);
tstHelper("SNYAMS'AM'ANG", "{S}{NYA}{M}{S-}{'A}{M-}{'A}{NG}", null, null, "{S+NYA}{M}{S}{'A}{M}{'A}{NG}", 1);
tstHelper("SNYAMS'AM'ANG", "{S}{NYA}{M}{S-}{'A}{M-}{'A}{NG}", null, null, "{S+NYA}{M}{S}{'A}{M}{'A}{NG}", 2);
tstHelper("SNYAMS'AM'ANG", "{S}{NYA}{M}{S'A}{M'A}{NG}", null, null, "{S+NYA}{M+S'A}{M'A}{NG}", 0);
tstHelper("SNYAM'AM", null, null, null, "{S+NYA}{M}{'A}{M}", 1);
tstHelper("SNYAMS'AM", null, null, null, "{S+NYA}{M}{S}{'A}{M}", 1);
tstHelper("SNYAM'AM", null, null, null, "{S+NYA}{M}{'A}{M}", 2);
tstHelper("SNYAMS'AM", null, null, null, "{S+NYA}{M}{S}{'A}{M}", 2);
tstHelper("SNYAM-'A-M", null, null, null, "!null!", 1);
tstHelper("SNYAM-'A-M", null, null, null, "{S+NYA}{M}{'A}{M}", 0);
tstHelper("SNY-M-'-M", null, null, null, "{S+NY}{M}{'}{M}", 0);
tstHelper("SNYAM-'A-M", null, null, null, "{S+NYA}{M}{'A}{M}", -1);
tstHelper("SNY-M-'-M", null, null, null, "{S+NY}{M}{'}{M}", -1);
tstHelper("SNY-M-'-M", null, null, null, "!null!", 1);
tstHelper("SNYAMS'AM'ANG'U'I'O", null, null, null, "{S+NYA}{M}{S}{'A}{M}{'A}{NG}{'U}{'I}{'O}", 1);
tstHelper("SNYAMS'I'AM'ANG'U'I'O", null, null, null, "{S+NYA}{M}{S}{'I}{'A}{M}{'A}{NG}{'U}{'I}{'O}", 1);
tstHelper("SNYAM+S+'O", null, null, null, "{S+NYA}{M+S+'O}", 0);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", 0);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", 0);
tstHelper("SAM'UR'US", null, null, null, "{SA}{M}{'U}{R}{'U}{S}", 1);
tstHelper("SAM'US", null, null, null, "{SA}{M}{'U}{S}", 1);
tstHelper("SAM'AM", null, null, null, "{SA}{M}{'A}{M}", 1);
tstHelper("SAMS'ANG", null, null, null, "{SA}{M}{S}{'A}{NG}", 1);
tstHelper("SNYANGD'O", null, null, null, "{S+NYA}{NG}{D}{'O}", 1);
tstHelper("T-SNYANGD'O", null, null, null, "{T}{S+NYA}{NG+D}{'O}", 1); // T is no prefix, so NG+D, not NG-D
tstHelper("SNYAMS'AM'ANG'U'I'O", null, null, null, "{S+NYA}{M}{S}{'A}{M}{'A}{NG}{'U}{'I}{'O}", 2);
tstHelper("SNYAMS'I'AM'ANG'U'I'O", null, null, null, "{S+NYA}{M}{S}{'I}{'A}{M}{'A}{NG}{'U}{'I}{'O}", 2);
tstHelper("SNYAM+S+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SAM'US", null, null, null, "{SA}{M}{'U}{S}", 2);
tstHelper("SAM'UR'US", null, null, null, "{SA}{M}{'U}{R}{'U}{S}", 2);
tstHelper("LA'OS", null, null, null, "{LA}{'O}{S}", -1);
tstHelper("LA'OS", null, null, null, "!null!", 1);
tstHelper("NA'OS", null, null, null, "{NA}{'O}{S}", -1);
tstHelper("NA'IS", null, null, null, "{NA}{'I}{S}", -1);
tstHelper("LE'UNG", null, null, null, "{LE}{'U}{NG}", -1);
tstHelper("LE'U'ANG", null, null, null, "{LE}{'U}{'A}{NG}", -1);
tstHelper("LE'UM", null, null, null, "{LE}{'U}{M}", -1);
tstHelper("LE'U'IS", null, null, null, "{LE}{'U}{'I}{S}", -1);
tstHelper("MA'ONGS", null, null, null, "{MA}{'O}{NG}{S}", -1);
tstHelper("SAM'AM", null, null, null, "{SA}{M}{'A}{M}", 2);
tstHelper("SAMS'ANG", null, null, null, "{SA}{M}{S}{'A}{NG}", 2);
tstHelper("SNYANGD'O", null, null, null, "{S+NYA}{NG}{D}{'O}", 2);
tstHelper("T-SNYANGD'O", null, null, null, "{T}{S+NYA}{NG+D}{'O}", 3); // T is no prefix, so NG+D, not NG-D
tstHelper("T-SNYANGD'O", null, null, null, "{T}{S+NYA}{NG+D'O}", 0);
tstHelper("SNYAM+S+'O", null, null, null, "{S+NYA}{M+S+'O}", 0);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", 0);
tstHelper("SNYAM+S+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("GDAMS", null, null, null, "{G}{DA}{M}{S}", 0);
tstHelper("GDAM-S'O", null, null, null, "{G}{DA}{M}{S}{'O}", 1);
tstHelper("GDAMS", null, null, null, "{G}{DA}{M}{S}", -1);
tstHelper("GDAM-S'O", null, null, null, "{G}{DA}{M}{S}{'O}", 2);
tstHelper("GDAM-C'O", null, null, null, "{G+DA}{M}{C'O}", 0);
tstHelper("GDAM-C'O", null, null, null, "{G+DA}{M}{C}{'O}", 1);
tstHelper("GDAMS", null, null, null, "{G}{DA}{M}{S}", 0);
tstHelper("GDAM-C'O", null, null, null, "{G+DA}{M}{C}{'O}", 3);
// DLC NOW: FIXME: tstHelper("DKHY", null, null, null, "{D}{KH+YA}", 0);
// DLC DKHY'O should give parse tree {{D-KH+Y'O}, {D+KH+Y'O}}
// DLC DKHYA'O should give parse tree {{D-KH+YA'O}, {D+KH+YA'O}}