tibetan-syllable-parser
Version:
A parser to deconstruct a single Unicode Tibetan syllable into its different parts.
254 lines (250 loc) • 32.4 kB
JavaScript
var testGroups = [];
testGroups.push({
name: "Only one letter",
tests: [
{ syllable: 'བ', prefix: undefined, superscribed: undefined, root: 'བ', subscribed: undefined, vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "A1) There is a written vowel",
tests: [
{ syllable: 'ཆོས', prefix: undefined, superscribed: undefined, root: 'ཆ', subscribed: undefined, vowel: 'ོ', suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མིན', prefix: undefined, superscribed: undefined, root: 'མ', subscribed: undefined, vowel: 'ི', suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དངོས', prefix: 'ད', superscribed: undefined, root: 'ང', subscribed: undefined, vowel: 'ོ', suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "A2) There is a superscribed or subscribed letter",
tests: [
{ syllable: 'བྱང', prefix: undefined, superscribed: undefined, root: 'བ', subscribed: 'ྱ', vowel: undefined, suffix: 'ང', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བརྒལ', prefix: 'བ', superscribed: 'ར', root: 'ག', subscribed: undefined, vowel: undefined, suffix: 'ལ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འབྲལ', prefix: 'འ', superscribed: undefined, root: 'བ', subscribed: 'ྲ', vowel: undefined, suffix: 'ལ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'སྨད', prefix: undefined, superscribed: 'ས', root: 'མ', subscribed: undefined, vowel: undefined, suffix: 'ད', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "A3) There is a combination of vowel / superscribed / subscribed",
tests: [
{ syllable: 'བྱིན', prefix: undefined, superscribed: undefined, root: 'བ', subscribed: 'ྱ', vowel: 'ི', suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བརྙེན', prefix: 'བ', superscribed: 'ར', root: 'ཉ', subscribed: undefined, vowel: 'ེ', suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'རྒྱན', prefix: undefined, superscribed: 'ར', root: 'ག', subscribed: 'ྱ', vowel: undefined, suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བརྒྱད', prefix: 'བ', superscribed: 'ར', root: 'ག', subscribed: 'ྱ', vowel: undefined, suffix: 'ད', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "B1) No vowel and only two letters",
tests: [
{ syllable: 'དམ', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'མ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཅན', prefix: undefined, superscribed: undefined, root: 'ཅ', subscribed: undefined, vowel: undefined, suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དང', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ང', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དག', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དབ', prefix: 'ད', superscribed: undefined, root: 'བ', subscribed: undefined, vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "B1 bonus) Cases with AO at the end",
tests: [
{ syllable: 'མང', prefix: undefined, superscribed: undefined, root: 'མ', subscribed: undefined, vowel: undefined, suffix: 'ང', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མངའ', prefix: 'མ', superscribed: undefined, root: 'ང', subscribed: undefined, vowel: undefined, suffix: 'འ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དག', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དགའ', prefix: 'ད', superscribed: undefined, root: 'ག', subscribed: undefined, vowel: undefined, suffix: 'འ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "B2) No vowel and four letters in a row",
tests: [
{ syllable: 'གཤགས', prefix: 'ག', superscribed: undefined, root: 'ཤ', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'གདམས', prefix: 'ག', superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'མ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འབངས', prefix: 'འ', superscribed: undefined, root: 'བ', subscribed: undefined, vowel: undefined, suffix: 'ང', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འབབས', prefix: 'འ', superscribed: undefined, root: 'བ', subscribed: undefined, vowel: undefined, suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "B3a) No vowel, three letters, the final is NOT SA",
tests: [
{ syllable: 'དམན', prefix: 'ད', superscribed: undefined, root: 'མ', subscribed: undefined, vowel: undefined, suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བདག', prefix: 'བ', superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འཇམ', prefix: 'འ', superscribed: undefined, root: 'ཇ', subscribed: undefined, vowel: undefined, suffix: 'མ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དཔལ', prefix: 'ད', superscribed: undefined, root: 'པ', subscribed: undefined, vowel: undefined, suffix: 'ལ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "B3b) No vowel, three letters, the final is SA and the second letter is NOT GA NGA BA MA",
tests: [
{ syllable: 'གནས', prefix: 'ག', superscribed: undefined, root: 'ན', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བདས', prefix: 'བ', superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འདས', prefix: 'འ', superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "B3c) No vowel, three letters, the final is SA and the second letter is GA NGA BA MA",
tests: [
{ syllable: 'ལགས', prefix: undefined, superscribed: undefined, root: 'ལ', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཐབས', prefix: undefined, superscribed: undefined, root: 'ཐ', subscribed: undefined, vowel: undefined, suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ལངས', prefix: undefined, superscribed: undefined, root: 'ལ', subscribed: undefined, vowel: undefined, suffix: 'ང', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "B3d) No vowel, three letters, exceptions",
tests: [
{ syllable: 'དགས', prefix: 'ད', superscribed: undefined, root: 'ག', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དྭགས', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'དམས', prefix: 'ད', superscribed: undefined, root: 'མ', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འགས', prefix: 'འ', superscribed: undefined, root: 'ག', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མངའ', prefix: 'མ', superscribed: undefined, root: 'ང', subscribed: undefined, vowel: undefined, suffix: 'འ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མངས', prefix: 'མ', superscribed: undefined, root: 'ང', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "Repeated letters",
tests: [
{ syllable: 'གཤགས', prefix: 'ག', superscribed: undefined, root: 'ཤ', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འགགས', prefix: 'འ', superscribed: undefined, root: 'ག', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བབེ', prefix: undefined, superscribed: undefined, root: 'བ', subscribed: undefined, vowel: 'ེ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འབེབས', prefix: 'འ', superscribed: undefined, root: 'བ', subscribed: undefined, vowel: 'ེ', suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'སྲས', prefix: undefined, superscribed: undefined, root: 'ས', subscribed: 'ྲ', vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "AOs and As",
tests: [
{ syllable: 'འ', prefix: undefined, superscribed: undefined, root: 'འ', subscribed: undefined, vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འི', prefix: undefined, superscribed: undefined, root: 'འ', subscribed: undefined, vowel: 'ི', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འུ', prefix: undefined, superscribed: undefined, root: 'འ', subscribed: undefined, vowel: 'ུ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འམ', prefix: undefined, superscribed: undefined, root: 'འ', subscribed: undefined, vowel: undefined, suffix: 'མ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "Dreldra A kiku I",
tests: [
{ syllable: 'མའི', prefix: undefined, superscribed: undefined, root: 'མ', subscribed: undefined, vowel: undefined, suffix: 'འི', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མཁའི', prefix: 'མ', superscribed: undefined, root: 'ཁ', subscribed: undefined, vowel: undefined, suffix: 'འི', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "Ending o",
tests: [
{ syllable: 'པེའོ', prefix: undefined, superscribed: undefined, root: 'པ', subscribed: undefined, vowel: 'ེ', suffix: 'འོ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བགའོ', prefix: 'བ', superscribed: undefined, root: 'ག', subscribed: undefined, vowel: undefined, suffix: 'འོ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "And/or particle 'ang",
tests: [
{ syllable: 'པའང', prefix: undefined, superscribed: undefined, root: 'པ', subscribed: undefined, vowel: undefined, suffix: 'འང', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "Concessive particle 'am",
tests: [
{ syllable: 'པའམ', prefix: undefined, superscribed: undefined, root: 'པ', subscribed: undefined, vowel: undefined, suffix: 'འམ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "Ending u",
tests: [
{ syllable: 'བེའུ', prefix: undefined, superscribed: undefined, root: 'བ', subscribed: undefined, vowel: 'ེ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མིའུ', prefix: undefined, superscribed: undefined, root: 'མ', subscribed: undefined, vowel: 'ི', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཀུའུ', prefix: undefined, superscribed: undefined, root: 'ཀ', subscribed: undefined, vowel: 'ུ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཀྲུའུ', prefix: undefined, superscribed: undefined, root: 'ཀ', subscribed: 'ྲ', vowel: 'ུ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཕྱུའུ', prefix: undefined, superscribed: undefined, root: 'ཕ', subscribed: 'ྱ', vowel: 'ུ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ནེའུ', prefix: undefined, superscribed: undefined, root: 'ན', subscribed: undefined, vowel: 'ེ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'རྡེའུ', prefix: undefined, superscribed: 'ར', root: 'ད', subscribed: undefined, vowel: 'ེ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མདེའུ', prefix: 'མ', superscribed: undefined, root: 'ད', subscribed: undefined, vowel: 'ེ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དྲེའུ', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: 'ྲ', vowel: 'ེ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མཐེའུ', prefix: 'མ', superscribed: undefined, root: 'ཐ', subscribed: undefined, vowel: 'ེ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'སྒྱེའུ', prefix: undefined, superscribed: 'ས', root: 'ག', subscribed: 'ྱ', vowel: 'ེ', suffix: 'འུ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "Wasur",
tests: [
{ syllable: 'དྭགས', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'དྭངས་', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: undefined, vowel: undefined, suffix: 'ང', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'དྲྭཱྂངས་', prefix: undefined, superscribed: undefined, root: 'ད', subscribed: 'ྲ', vowel: undefined, suffix: 'ང', secondSuffix: 'ས', achung: 'ཱ', anusvara: 'ྂ', wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'ཁྭ', prefix: undefined, superscribed: undefined, root: 'ཁ', subscribed: undefined, vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'ཁྭོ', prefix: undefined, superscribed: undefined, root: 'ཁ', subscribed: undefined, vowel: 'ོ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'ཁྭས', prefix: undefined, superscribed: undefined, root: 'ཁ', subscribed: undefined, vowel: undefined, suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'ཁྭོས', prefix: undefined, superscribed: undefined, root: 'ཁ', subscribed: undefined, vowel: 'ོ', suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'གྲྭ', prefix: undefined, superscribed: undefined, root: 'ག', subscribed: 'ྲ', vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'གྲྭོ', prefix: undefined, superscribed: undefined, root: 'ག', subscribed: 'ྲ', vowel: 'ོ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'གྲྭོས', prefix: undefined, superscribed: undefined, root: 'ག', subscribed: 'ྲ', vowel: 'ོ', suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
{ syllable: 'མགྲྭོདས', prefix: 'མ', superscribed: undefined, root: 'ག', subscribed: 'ྲ', vowel: 'ོ', suffix: 'ད', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: 'ྭ', honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: "Achung",
tests: [
{ syllable: 'ཧཱུ', prefix: undefined, superscribed: undefined, root: 'ཧ', subscribed: undefined, vowel: 'ུ', suffix: undefined, secondSuffix: undefined, achung: 'ཱ', anusvara: undefined, wasur: undefined , honorificMarker: undefined, chego: undefined },
{ syllable: 'ཧཱུ', prefix: undefined, superscribed: undefined, root: 'ཧ', subscribed: undefined, vowel: 'ུ', suffix: undefined, secondSuffix: undefined, achung: 'ཱ' , anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: 'Anusvara',
tests: [
{ syllable: 'ཨོཾ', prefix: undefined, superscribed: undefined, root: 'ཨ', subscribed: undefined, vowel: 'ོ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: 'ཾ', wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཨོྃ', prefix: undefined, superscribed: undefined, root: 'ཨ', subscribed: undefined, vowel: 'ོ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: 'ྃ', wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཨོྂ', prefix: undefined, superscribed: undefined, root: 'ཨ', subscribed: undefined, vowel: 'ོ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: 'ྂ', wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
testGroups.push({
name: 'Honorific marker',
tests: [
{ syllable: 'མཁྱེ༵ན', prefix: 'མ', superscribed: undefined, root: 'ཁ', subscribed: 'ྱ', vowel: 'ེ', suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: '༵', chego: undefined },
{ syllable: 'བརྩེ༵འི', prefix: 'བ', superscribed: 'ར', root: 'ཙ', subscribed: undefined, vowel: 'ེ', suffix: 'འི', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: '༵', chego: undefined },
]
});
testGroups.push({
name: 'Chego',
tests: [
{ syllable: '༸པ', prefix: undefined, superscribed: undefined, root: 'པ', subscribed: undefined, vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: '༸' },
{ syllable: '༸ཞབས', prefix: undefined, superscribed: undefined, root: 'ཞ', subscribed: undefined, vowel: undefined, suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: '༸' },
{ syllable: '༸སྐྱབས', prefix: undefined, superscribed: 'ས', root: 'ཀ', subscribed: 'ྱ', vowel: undefined, suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: '༸' },
]
});
testGroups.push({
name: "Added cases",
tests: [
{ syllable: 'དབུ', prefix: 'ད', superscribed: undefined, root: 'བ', subscribed: undefined, vowel: 'ུ', suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'དབུས', prefix: 'ད', superscribed: undefined, root: 'བ', subscribed: undefined, vowel: 'ུ', suffix: 'ས', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'རྒ', prefix: undefined, superscribed: 'ར', root: 'ག', subscribed: undefined, vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'གླ', prefix: undefined, superscribed: undefined, root: 'ག', subscribed: 'ླ', vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'རྒྱ', prefix: undefined, superscribed: 'ར', root: 'ག', subscribed: 'ྱ', vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མཁའ', prefix: 'མ', superscribed: undefined, root: 'ཁ', subscribed: undefined, vowel: undefined, suffix: 'འ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'མཁྱེན', prefix: 'མ', superscribed: undefined, root: 'ཁ', subscribed: 'ྱ', vowel: 'ེ', suffix: 'ན', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འདེབས', prefix: 'འ', superscribed: undefined, root: 'ད', subscribed: undefined, vowel: 'ེ', suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'སྤྱོད', prefix: undefined, superscribed: 'ས', root: 'པ', subscribed: 'ྱ', vowel: 'ོ', suffix: 'ད', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'གསུམ', prefix: 'ག', superscribed: undefined, root: 'ས', subscribed: undefined, vowel: 'ུ', suffix: 'མ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཆགས', prefix: undefined, superscribed: undefined, root: 'ཆ', subscribed: undefined, vowel: undefined, suffix: 'ག', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'རློབས', prefix: undefined, superscribed: undefined, root: 'ར', subscribed: 'ླ', vowel: 'ོ', suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'སློབས', prefix: undefined, superscribed: undefined, root: 'ས', subscribed: 'ླ', vowel: 'ོ', suffix: 'བ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ཀློག', prefix: undefined, superscribed: undefined, root: 'ཀ', subscribed: 'ླ', vowel: 'ོ', suffix: 'ག', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'གླིང', prefix: undefined, superscribed: undefined, root: 'ག', subscribed: 'ླ', vowel: 'ི', suffix: 'ང', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བློང', prefix: undefined, superscribed: undefined, root: 'བ', subscribed: 'ླ', vowel: 'ོ', suffix: 'ང', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'རྣམས', prefix: undefined, superscribed: 'ར', root: 'ན', subscribed: undefined, vowel: undefined, suffix: 'མ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'བསྒྲིམས', prefix: 'བ', superscribed: 'ས', root: 'ག', subscribed: 'ྲ', vowel: 'ི', suffix: 'མ', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'རྒྱངས', prefix: undefined, superscribed: 'ར', root: 'ག', subscribed: 'ྱ', vowel: undefined, suffix: 'ང', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'འགྱུར', prefix: 'འ', superscribed: undefined, root: 'ག', subscribed: 'ྱ', vowel: 'ུ', suffix: 'ར', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'སྒྲོལ', prefix: undefined, superscribed: 'ས', root: 'ག', subscribed: 'ྲ', vowel: 'ོ', suffix: 'ལ', secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'གྲངས', prefix: undefined, superscribed: undefined, root: 'ག', subscribed: 'ྲ', vowel: undefined, suffix: 'ང', secondSuffix: 'ས', achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
{ syllable: 'ལྷ', prefix: undefined, superscribed: 'ལ', root: 'ཧ', subscribed: undefined, vowel: undefined, suffix: undefined, secondSuffix: undefined, achung: undefined, anusvara: undefined, wasur: undefined, honorificMarker: undefined, chego: undefined },
]
});
import { TibetanSyllableParser } from './tibetan-syllable-parser.js';
function omit(obj, keys) {
const result = {};
Object.keys(obj).forEach(k => {
if (!keys.includes(k)) result[k] = obj[k];
});
return result;
}
testGroups.forEach(function (testGroup) {
describe(testGroup.name, function () {
testGroup.tests.forEach(function (test) {
it(test.syllable, function () {
var parsed = new TibetanSyllableParser(test.syllable).parse();
expect(parsed).toEqual(omit(test, ['syllable']));
});
});
});
});