Exemple #1
0
        [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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }