[InlineData("gubernātōrem", "initial:2 tonic:3 pre-tonic:2 tonic:2 final:3")] // gu.ˌber.naː.ˈtoː.rem public void GetAccentTheory(string latin, string accent) { var parser = new WordParser(); var word = parser.Parse(latin); new SyllableAnalyzer().Analyze(word); new AccentAnalyzer().Analyze(word); WordAssert.Field(word, "accent", accent); }
[InlineData("gubernātōrem", "short:2 long:3 long:2 long:2 long:3")] // gu.ˌber.naː.ˈtoː.rem public void GetSyllableTheory(string latin, string syllable) { var parser = new WordParser(); var word = parser.Parse(latin); new SyllableAnalyzer().Analyze(word); new AccentAnalyzer().Analyze(word); WordAssert.Field(word, "syllable", syllable); }
public void TestApplyWithScope() { var c = new PhonemeQuery(new[] { "b", "l" }); var v = new PhonemeQuery(new[] { "a", "e" }); var rule = new Rule( id: "test", group: "test", timeSpan: new Interval(0, 1), queries: new[] { new ContextualQuery(v, lookBehind: c, lookAhead: c, scope: "syllable"), }, operation: new[] { new Operation( name: "Test", phonological: ps => new[] { "o" }, graphical: new[] { new GraphicalMap((b, m, a) => m), }) }); var word = new Word( Phonemes("b", "e", "l", "l", "a", "b", "e", "l"), GraphicalForms(Alignment.Parse("B E L L A B E L")), Fields(Field("syllable", Alignment.Parse("long:3 short:2 long:3")))); var context = new ExecutionContext(); var originalDerivation = WordDerivation.Origin(word); var derivation = rule.DeriveImplementation(context, originalDerivation); var newWords = derivation.Select(d => d.Derived).ToArray(); var expected = new[] { new Word( Phonemes("b", "o", "l", "l", "a", "b", "o", "l"), GraphicalForms(Alignment.Parse("B E L L A B E L")), Fields(Field("syllable", Alignment.Parse("long:3 short:2 long:3")))), }; WordAssert.Equal(expected, newWords); }
public void TestApply() { var l = new PhonemeQuery(new[] { "l" }); var rule = new Rule( id: "test", group: "test", timeSpan: new Interval(0, 1), queries: new[] { new ContextualQuery(new SequenceQuery(new[] { l, l })), }, operation: new[] { new Operation( name: "Test", phonological: ps => new[] { "l" }, graphical: new[] { new GraphicalMap((b, m, a) => m), }) }); var word = new Word( Phonemes("b", "e", "l", "l", "a"), GraphicalForms(Alignment.Parse("B E L L A")), Fields(Field("type", Alignment.Parse("C V C C V")))); var context = new ExecutionContext(); var originalDerivation = WordDerivation.Origin(word); var derivation = rule.DeriveImplementation(context, originalDerivation); var newWords = derivation.Select(d => d.Derived).ToArray(); var expected = new[] { new Word( Phonemes("b", "e", "l", "a"), GraphicalForms(Alignment.Parse("B E LL:2 A")), Fields(Field("type", Alignment.Parse("C V C V")))) }; WordAssert.Equal(expected, newWords); }