Beispiel #1
0
        public void Translate_CannotMapMorphemes_ReturnsEmptyTranslation()
        {
            var sourceAnalyzer = Substitute.For <IMorphologicalAnalyzer>();

            sourceAnalyzer.AddAnalyses("habló", new WordAnalysis(new[]
            {
                new TestMorpheme("s1", "v", "talk", MorphemeType.Stem),
                new TestMorpheme("s2", "v", "pst", MorphemeType.Affix)
            }, 0, "v"));
            var targetGenerator = Substitute.For <IMorphologicalGenerator>();
            var targetMorphemes = new ReadOnlyObservableList <IMorpheme>(new ObservableList <IMorpheme>());

            targetGenerator.Morphemes.Returns(targetMorphemes);
            var transferer = new SimpleTransferer(new GlossMorphemeMapper(targetGenerator));
            var engine     = new TransferEngine(sourceAnalyzer, transferer, targetGenerator);

            Assert.That(engine.TranslateWord("habló"), Is.Empty);
        }
Beispiel #2
0
        public void Translate_CanTranslate_ReturnsCorrectTranslation()
        {
            var sourceAnalyzer = Substitute.For <IMorphologicalAnalyzer>();

            sourceAnalyzer.AddAnalyses("habló", new WordAnalysis(new[]
            {
                new TestMorpheme("s1", "v", "talk", MorphemeType.Stem),
                new TestMorpheme("s2", "v", "pst", MorphemeType.Affix)
            }, 0, "v"));
            var targetGenerator = Substitute.For <IMorphologicalGenerator>();
            var targetMorphemes = new ReadOnlyObservableList <IMorpheme>(new ObservableList <IMorpheme>
            {
                new TestMorpheme("e1", "v", "talk", MorphemeType.Stem),
                new TestMorpheme("e2", "v", "pst", MorphemeType.Affix)
            });

            targetGenerator.Morphemes.Returns(targetMorphemes);
            targetGenerator.AddGeneratedWords(new WordAnalysis(new[] { targetMorphemes[0], targetMorphemes[1] }, 0, "v"), "talked");
            var transferer = new SimpleTransferer(new GlossMorphemeMapper(targetGenerator));
            var engine     = new TransferEngine(sourceAnalyzer, transferer, targetGenerator);

            Assert.That(engine.TranslateWord("habló"), Is.EqualTo("talked".Split(' ')));
        }