コード例 #1
0
        public void EnsureMorphBundleHasSenseTest()
        {
            //myCache = Loader.CreateCache();
            Assert.IsNotNull(myCache);
            Assert.AreEqual(ProjId.UiName, myCache.ProjectId.UiName);
            Guid wfiMorphBundleGuidToUse = new Guid("01e77f47-a055-4053-8640-18d27f672085");
            var  bundle = myCache.ServiceLocator.ObjectRepository.GetObject(wfiMorphBundleGuidToUse) as IWfiMorphBundle;

            Assert.IsNotNull(bundle);
            Assert.IsNull(bundle.SenseRA);
            NonUndoableUnitOfWorkHelper.Do(myCache.ActionHandlerAccessor, () =>
            {
                var segmentDisam = new SegmentDisambiguation(null, null);
                segmentDisam.EnsureMorphBundleHasSense(bundle);
                Assert.IsNotNull(bundle.SenseRA);
                Assert.AreEqual("run-PST-MOT", bundle.SenseRA.Gloss.AnalysisDefaultWritingSystem.Text);
            });
        }
コード例 #2
0
        public void DisambiguateSegmentTest()
        {
            //myCache = Loader.CreateCache();
            Assert.IsNotNull(myCache);
            Assert.AreEqual(ProjId.UiName, myCache.ProjectId.UiName);
            Assert.AreEqual(26, myCache.LangProject.AllPartsOfSpeech.Count);
            Assert.AreEqual(323, myCache.LangProject.LexDbOA.Entries.Count());
            Assert.AreEqual(4, myCache.LangProject.InterlinearTexts.Count);

            var text         = myCache.LangProject.InterlinearTexts.Where(t => t.Title.BestAnalysisAlternative.Text == "Part 4").First();
            var paragraph    = (IStTxtPara)text.ParagraphsOS.ElementAt(3);
            var segment      = paragraph.SegmentsOS.First();
            var segmentDisam = new SegmentDisambiguation(segment, MorphBundleGuidsWeWantToGetMarriedAndBeHappy);
            var defaultAgent = myCache.LanguageProject.DefaultUserAgent;

            // Before disambiguation
            Assert.AreEqual(9, segment.AnalysesRS.Count);
            var analysis = segment.AnalysesRS.ElementAt(0);             // we

            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(1);             // want
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(2);             // to (ambiguous)
            Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID);
            Assert.IsNull(analysis.Analysis);
            analysis = segment.AnalysesRS.ElementAt(3);             // get (ambiguous)
            Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID);
            Assert.IsNull(analysis.Analysis);
            analysis = segment.AnalysesRS.ElementAt(4);             // married
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(5);             // and
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(6);             // be (ambiguous)
            Assert.AreEqual(WfiWordformTags.kClassId, analysis.ClassID);
            Assert.IsNull(analysis.Analysis);
            analysis = segment.AnalysesRS.ElementAt(7);             // happy
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));

            segmentDisam.Disambiguate(myCache);
            //After disambiguation
            Assert.AreEqual(9, segment.AnalysesRS.Count);
            analysis = segment.AnalysesRS.ElementAt(0);             // we
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(1);             // want
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(2);             // to (ambiguous)
            Assert.AreEqual(WfiAnalysisTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(3);             // get (ambiguous)
            Assert.AreEqual(WfiAnalysisTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(4);             // married
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(5);             // and
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(6);             // be (ambiguous)
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
            analysis = segment.AnalysesRS.ElementAt(7);             // happy
            Assert.AreEqual(WfiGlossTags.kClassId, analysis.ClassID);
            Assert.AreEqual(Opinions.approves, analysis.Analysis.GetAgentOpinion(defaultAgent));
        }