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); }); }
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)); }