Пример #1
0
        public void LexEntriesComboHandler_ItemsInComboForInflVariant()
        {
            using (var sandbox = SetupSandbox(() =>
            {
                const string wff = "blonde";
                var mockText = MakeText(wff);
                var wf = MakeWordform(wff);
                var wa = MakeAnalysis(wf);
                var options = new MakeBundleOptions();
                options.LexEntryForm = wff;
                options.MakeMorph = (mff) =>
                {
                    Guid slotType = GetSlotType(mff);
                    IMoMorphSynAnalysis msa1;
                    var mainEntry = MakeEntry("blondEntry", "", slotType, out msa1);
                    var mainSense = MakeSense(mainEntry, "fair haired", msa1);

                    IMoMorphSynAnalysis msa2;
                    var variantEntry = MakeEntry("blondeEntry", "", slotType, out msa2);
                    ILexEntryType letDialectalVariantType = Cache.ServiceLocator.GetInstance <ILexEntryTypeRepository>().GetObject(LexEntryTypeTags.kguidLexTypDialectalVar);
                    letDialectalVariantType.Abbreviation.set_String(Cache.DefaultAnalWs, "dial.var. of");
                    letDialectalVariantType.Name.set_String(Cache.DefaultAnalWs, "Dialectal Variant");
                    letDialectalVariantType.ReverseAbbr.set_String(Cache.DefaultAnalWs, "dial.var.");

                    variantEntry.MakeVariantOf(mainSense, letDialectalVariantType);
                    return(variantEntry.LexemeFormOA);
                };
                options.MakeSense = (entry) =>
                {
                    var entryRef = entry.EntryRefsOS.First();
                    return(entryRef.ComponentLexemesRS.First() as ILexSense);
                };
                options.MakeMsa = (sense) => { return(sense.MorphoSyntaxAnalysisRA); };
                var wmb = MakeBundle(wa, options);
                var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
                var seg = para.SegmentsOS[0];
                seg.AnalysesRS.Add(wa);
                return(new AnalysisOccurrence(seg, 0));
            }))
            {
                var initialAnalysisStack = sandbox.CurrentAnalysisTree;
                using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
                {
                    var imorphItemCurrentSandboxState = handler.IndexOfCurrentItem;

                    Assert.That(imorphItemCurrentSandboxState, Is.EqualTo(1));

                    var handlerList = handler.ComboList.Items;

                    Assert.That(handlerList[0].ToString(), Is.EqualTo("Add New Sense for blondeEntry ..."));
                    Assert.That(handlerList[1].ToString(), Is.EqualTo("  fair haired, ???, blondEntry+dial.var."));
                    Assert.That(handlerList[2].ToString(), Is.EqualTo("    Add New Sense..."));
                }
            }
        }
Пример #2
0
 public void LexEntriesComboHandler_IndexOfCurrentLexSenseAndMsa()
 {
     using (var sandbox = SetupSandbox(() =>
     {
         const string wff = "monomorphemicstem";
         var mockText = MakeText(wff);
         var wf = MakeWordform(wff);
         var wa = MakeAnalysis(wf);
         var options = new MakeBundleOptions();
         options.LexEntryForm = wff;
         options.MakeMorph = (mff) =>
         {
             Guid slotType = GetSlotType(mff);
             IMoMorphSynAnalysis msa;
             var entry = MakeEntry(mff.Replace("-", ""), "V:(Imperative)", slotType, out msa);
             var sense2 = MakeSense(entry, "gloss1", msa);
             return(entry.LexemeFormOA);
         };
         options.MakeSense = (entry) =>
         {
             var msa = entry.MorphoSyntaxAnalysesOC.ToList()[0];
             var sense2 = MakeSense(entry, "gloss2", msa);
             return(sense2);
         };
         options.MakeMsa = (sense) => { return(sense.MorphoSyntaxAnalysisRA); };
         var wmb = MakeBundle(wa, options);
         var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
         var seg = para.SegmentsOS[0];
         seg.AnalysesRS.Add(wa);
         return(new AnalysisOccurrence(seg, 0));
     }))
     {
         var initialAnalysisStack = sandbox.CurrentAnalysisTree;
         using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
         {
             var imorphItemCurrentSandboxState = handler.IndexOfCurrentItem;
             Assert.That(imorphItemCurrentSandboxState, Is.GreaterThan(-1));
             var items = handler.MorphItems;
             var miCurrentSandboxState = items[imorphItemCurrentSandboxState];
             Assert.That(miCurrentSandboxState.m_hvoMorph,
                         Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MorphRA.Hvo));
             Assert.That(miCurrentSandboxState.m_hvoSense,
                         Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].SenseRA.Hvo));
             Assert.That(miCurrentSandboxState.m_hvoMsa,
                         Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MsaRA.Hvo));
             Assert.That(miCurrentSandboxState.m_hvoMainEntryOfVariant, Is.EqualTo(0));
         }
     }
 }
Пример #3
0
        private IWfiMorphBundle MakeBundleDefault(IWfiAnalysis wa, string form, string gloss, string pos)
        {
            var options = new MakeBundleOptions();

            options.LexEntryForm = form;
            options.MakeMorph    = (mff) =>
            {
                Guid slotType = GetSlotType(mff);
                IMoMorphSynAnalysis msa;
                var entry = MakeEntry(mff.Replace("-", ""), pos, slotType, out msa);
                return(entry.LexemeFormOA);
            };
            options.MakeSense = (entry) =>
            {
                var msa   = entry.MorphoSyntaxAnalysesOC.ToList()[0];
                var sense = MakeSense(entry, gloss, msa);
                return(sense);
            };
            options.MakeMsa = (sense) => { return(sense.MorphoSyntaxAnalysisRA); };
            return(MakeBundle(wa, options));
        }
Пример #4
0
        private IWfiMorphBundle MakeBundle(IWfiAnalysis wa, MakeBundleOptions mbOptions)
        {
            var bundle = Cache.ServiceLocator.GetInstance <IWfiMorphBundleFactory>().Create();

            wa.MorphBundlesOS.Add(bundle);
            var morph = mbOptions.MakeMorph(mbOptions.LexEntryForm);

            bundle.MorphRA = morph;
            var sense = mbOptions.MakeSense(morph.Owner as ILexEntry);

            bundle.SenseRA = sense;
            var msa = mbOptions.MakeMsa(sense);

            bundle.MsaRA = msa;
            if (mbOptions.MakeInflType != null)
            {
                var inflType = mbOptions.MakeInflType(morph);
                bundle.InflTypeRA = inflType;
            }

            return(bundle);
        }
Пример #5
0
        public void LexEntriesComboHandler_InflTypeOptions_GlossAppendSenseNames_Ordered_PST_PL()
        {
            using (var sandbox = SetupSandbox(() =>
            {
                const string wff = "variantEntry";
                var mockText = MakeText(wff);
                var wf = MakeWordform(wff);
                var wa = MakeAnalysis(wf);
                var options = new MakeBundleOptions();
                options.LexEntryForm = wff;
                options.MakeMorph = (mff) =>
                {
                    Guid slotType = GetSlotType(mff);
                    IMoMorphSynAnalysis msa1;
                    const string mainEntryForm = "mainEntry";
                    var mainEntry = MakeEntry(mainEntryForm.Replace("-", ""), "V:(Imperative)", slotType, out msa1);
                    var mainSense = MakeSense(mainEntry, "mainGloss", msa1);

                    IMoMorphSynAnalysis msa2;
                    var variantEntry = MakeEntry(mff.Replace("-", ""), "V:(Imperative)", slotType, out msa2);
                    var letPlural =
                        Cache.ServiceLocator.GetInstance <ILexEntryInflTypeRepository>().GetObject(
                            LexEntryTypeTags.kguidLexTypPluralVar);
                    letPlural.GlossAppend.set_String(Cache.DefaultAnalWs, "pl");
                    var letPst =
                        Cache.ServiceLocator.GetInstance <ILexEntryInflTypeRepository>().GetObject(
                            LexEntryTypeTags.kguidLexTypPastVar);
                    letPst.GlossAppend.set_String(Cache.DefaultAnalWs, "pst");
                    // add types to entryRef in the order of "pst" followed by "pl"
                    var ler = variantEntry.MakeVariantOf(mainSense, letPst);
                    ler.VariantEntryTypesRS.Add(letPlural);
                    return(variantEntry.LexemeFormOA);
                };
                options.MakeSense = (entry) =>
                {
                    var entryRef = entry.EntryRefsOS.First();
                    return(entryRef.ComponentLexemesRS.First() as ILexSense);
                };
                options.MakeMsa = (sense) => { return(sense.MorphoSyntaxAnalysisRA); };
                options.MakeInflType = (mf) =>
                {
                    var entry = mf.Owner as ILexEntry;
                    var entryRef = entry.EntryRefsOS.First();
                    var vet = entryRef.VariantEntryTypesRS.First() as ILexEntryInflType;
                    return(vet);
                };
                var wmb = MakeBundle(wa, options);

                var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
                var seg = para.SegmentsOS[0];
                seg.AnalysesRS.Add(wa);
                return(new AnalysisOccurrence(seg, 0));
            }))
            {
                var letPlural =
                    Cache.ServiceLocator.GetInstance <ILexEntryInflTypeRepository>().GetObject(
                        LexEntryTypeTags.kguidLexTypPluralVar);
                var letPst =
                    Cache.ServiceLocator.GetInstance <ILexEntryInflTypeRepository>().GetObject(
                        LexEntryTypeTags.kguidLexTypPastVar);

                using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
                {
                    var sortedMorphItems = handler.MorphItems;
                    sortedMorphItems.Sort();
                    // menu items should be ordered according to entryRef.VariantEntryTypesRS
                    {
                        var mi0 = sortedMorphItems[0];
                        Assert.That(mi0.m_inflType, Is.EqualTo(letPst));
                        Assert.That(mi0.m_nameSense, Is.EqualTo("mainGloss.pst"));
                    }
                    {
                        var mi1 = sortedMorphItems[1];
                        Assert.That(mi1.m_inflType, Is.EqualTo(letPlural));
                        Assert.That(mi1.m_nameSense, Is.EqualTo("mainGloss.pl"));
                    }
                }
            }
        }
Пример #6
0
        public void LexEntriesComboHandler_IndexOfCurrentInflVariant_InflTypeChosen()
        {
            using (var sandbox = SetupSandbox(() =>
            {
                const string wff = "variantEntry";
                var mockText = MakeText(wff);
                var wf = MakeWordform(wff);
                var wa = MakeAnalysis(wf);
                var options = new MakeBundleOptions();
                options.LexEntryForm = wff;
                options.MakeMorph = (mff) =>
                {
                    Guid slotType = GetSlotType(mff);
                    IMoMorphSynAnalysis msa1;
                    const string mainEntryForm = "mainEntry";
                    var mainEntry = MakeEntry(mainEntryForm.Replace("-", ""), "V:(Imperative)", slotType, out msa1);
                    var mainSense = MakeSense(mainEntry, "mainGloss", msa1);

                    IMoMorphSynAnalysis msa2;
                    var variantEntry = MakeEntry(mff.Replace("-", ""), "V:(Imperative)", slotType, out msa2);
                    var letPlural =
                        Cache.ServiceLocator.GetInstance <ILexEntryInflTypeRepository>().GetObject(
                            LexEntryTypeTags.kguidLexTypPluralVar);
                    letPlural.GlossAppend.set_String(Cache.DefaultAnalWs, "pl");
                    variantEntry.MakeVariantOf(mainSense, letPlural);
                    return(variantEntry.LexemeFormOA);
                };
                options.MakeSense = (entry) =>
                {
                    var entryRef = entry.EntryRefsOS.First();
                    return(entryRef.ComponentLexemesRS.First() as ILexSense);
                };
                options.MakeMsa = (sense) => { return(sense.MorphoSyntaxAnalysisRA); };
                options.MakeInflType = (mf) =>
                {
                    var entry = mf.Owner as ILexEntry;
                    var entryRef = entry.EntryRefsOS.First();
                    var vet = entryRef.VariantEntryTypesRS.First() as ILexEntryInflType;
                    return(vet);
                };
                var wmb = MakeBundle(wa, options);

                var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
                var seg = para.SegmentsOS[0];
                seg.AnalysesRS.Add(wa);
                return(new AnalysisOccurrence(seg, 0));
            }))
            {
                var initialAnalysisStack = sandbox.CurrentAnalysisTree;
                using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
                {
                    var imorphItemCurrentSandboxState = handler.IndexOfCurrentItem;
                    var items = handler.MorphItems;
                    var miCurrentSandboxState = items[imorphItemCurrentSandboxState];
                    Assert.That(miCurrentSandboxState.m_hvoMorph,
                                Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MorphRA.Hvo));
                    Assert.That(miCurrentSandboxState.m_hvoSense,
                                Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].SenseRA.Hvo));
                    Assert.That(miCurrentSandboxState.m_hvoMsa,
                                Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MsaRA.Hvo));

                    var variantEntry = initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MorphRA.Owner as ILexEntry;
                    var variantType  = variantEntry.VariantEntryRefs.First().VariantEntryTypesRS.First();
                    Assert.That(miCurrentSandboxState.m_inflType, Is.EqualTo(variantType));
                    Assert.That(miCurrentSandboxState.m_hvoMainEntryOfVariant, Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].SenseRA.Entry.Hvo));
                }
            }
        }
Пример #7
0
		private IWfiMorphBundle MakeBundle(IWfiAnalysis wa, MakeBundleOptions mbOptions)
		{
			var bundle = Cache.ServiceLocator.GetInstance<IWfiMorphBundleFactory>().Create();
			wa.MorphBundlesOS.Add(bundle);
			var morph = mbOptions.MakeMorph(mbOptions.LexEntryForm);
			bundle.MorphRA = morph;
			var sense = mbOptions.MakeSense(morph.Owner as ILexEntry);
			bundle.SenseRA = sense;
			var msa = mbOptions.MakeMsa(sense);
			bundle.MsaRA = msa;
			if (mbOptions.MakeInflType != null)
			{
				var inflType = mbOptions.MakeInflType(morph);
				bundle.InflTypeRA = inflType;
			}

			return bundle;
		}
Пример #8
0
		private IWfiMorphBundle MakeBundleDefault(IWfiAnalysis wa, string form, string gloss, string pos)
		{
			var options = new MakeBundleOptions();
			options.LexEntryForm = form;
			options.MakeMorph = (mff) =>
									{
										Guid slotType = GetSlotType(mff);
										IMoMorphSynAnalysis msa;
										var entry = MakeEntry(mff.Replace("-", ""), pos, slotType, out msa);
										return entry.LexemeFormOA;
									};
			options.MakeSense = (entry) =>
									{
										var msa = entry.MorphoSyntaxAnalysesOC.ToList()[0];
										var sense = MakeSense(entry, gloss, msa);
										return sense;
									};
			options.MakeMsa = (sense) => { return sense.MorphoSyntaxAnalysisRA; };
			return MakeBundle(wa, options);
		}
Пример #9
0
		public void LexEntriesComboHandler_InflTypeOptions_GlossAppendSenseNames_Ordered_PST_PL()
		{
			using (var sandbox = SetupSandbox(() =>
			{
				const string wff = "variantEntry";
				var mockText = MakeText(wff);
				var wf = MakeWordform(wff);
				var wa = MakeAnalysis(wf);
				var options = new MakeBundleOptions();
				options.LexEntryForm = wff;
				options.MakeMorph = (mff) =>
				{
					Guid slotType = GetSlotType(mff);
					IMoMorphSynAnalysis msa1;
					const string mainEntryForm = "mainEntry";
					var mainEntry = MakeEntry(mainEntryForm.Replace("-", ""), "V:(Imperative)", slotType, out msa1);
					var mainSense = MakeSense(mainEntry, "mainGloss", msa1);

					IMoMorphSynAnalysis msa2;
					var variantEntry = MakeEntry(mff.Replace("-", ""), "V:(Imperative)", slotType, out msa2);
					var letPlural =
						Cache.ServiceLocator.GetInstance<ILexEntryInflTypeRepository>().GetObject(
							LexEntryTypeTags.kguidLexTypPluralVar);
					letPlural.GlossAppend.set_String(Cache.DefaultAnalWs, "pl");
					var letPst =
						Cache.ServiceLocator.GetInstance<ILexEntryInflTypeRepository>().GetObject(
							LexEntryTypeTags.kguidLexTypPastVar);
					letPst.GlossAppend.set_String(Cache.DefaultAnalWs, "pst");
					// add types to entryRef in the order of "pst" followed by "pl"
					var ler = variantEntry.MakeVariantOf(mainSense, letPst);
					ler.VariantEntryTypesRS.Add(letPlural);
					return variantEntry.LexemeFormOA;
				};
				options.MakeSense = (entry) =>
				{
					var entryRef = entry.EntryRefsOS.First();
					return entryRef.ComponentLexemesRS.First() as ILexSense;
				};
				options.MakeMsa = (sense) => { return sense.MorphoSyntaxAnalysisRA; };
				options.MakeInflType = (mf) =>
				{
					var entry = mf.Owner as ILexEntry;
					var entryRef = entry.EntryRefsOS.First();
					var vet = entryRef.VariantEntryTypesRS.First() as ILexEntryInflType;
					return vet;
				};
				var wmb = MakeBundle(wa, options);

				var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
				var seg = para.SegmentsOS[0];
				seg.AnalysesRS.Add(wa);
				return new AnalysisOccurrence(seg, 0);
			}))
			{

				var letPlural =
					Cache.ServiceLocator.GetInstance<ILexEntryInflTypeRepository>().GetObject(
						LexEntryTypeTags.kguidLexTypPluralVar);
				var letPst =
					Cache.ServiceLocator.GetInstance<ILexEntryInflTypeRepository>().GetObject(
						LexEntryTypeTags.kguidLexTypPastVar);

				using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
				{
					var sortedMorphItems = handler.MorphItems;
					sortedMorphItems.Sort();
					// menu items should be ordered according to entryRef.VariantEntryTypesRS
					{
						var mi0 = sortedMorphItems[0];
						Assert.That(mi0.m_inflType, Is.EqualTo(letPst));
						Assert.That(mi0.m_nameSense, Is.EqualTo("mainGloss.pst"));
					}
					{
						var mi1 = sortedMorphItems[1];
						Assert.That(mi1.m_inflType, Is.EqualTo(letPlural));
						Assert.That(mi1.m_nameSense, Is.EqualTo("mainGloss.pl"));
					}
				}
			}
		}
Пример #10
0
		public void LexEntriesComboHandler_IndexOfCurrentInflVariant_InflTypeChosen()
		{
			using (var sandbox = SetupSandbox(() =>
			{
				const string wff = "variantEntry";
				var mockText = MakeText(wff);
				var wf = MakeWordform(wff);
				var wa = MakeAnalysis(wf);
				var options = new MakeBundleOptions();
				options.LexEntryForm = wff;
				options.MakeMorph = (mff) =>
				{
					Guid slotType = GetSlotType(mff);
					IMoMorphSynAnalysis msa1;
					const string mainEntryForm = "mainEntry";
					var mainEntry = MakeEntry(mainEntryForm.Replace("-", ""), "V:(Imperative)", slotType, out msa1);
					var mainSense = MakeSense(mainEntry, "mainGloss", msa1);

					IMoMorphSynAnalysis msa2;
					var variantEntry = MakeEntry(mff.Replace("-", ""), "V:(Imperative)", slotType, out msa2);
					var letPlural =
						Cache.ServiceLocator.GetInstance<ILexEntryInflTypeRepository>().GetObject(
							LexEntryTypeTags.kguidLexTypPluralVar);
					letPlural.GlossAppend.set_String(Cache.DefaultAnalWs, "pl");
					variantEntry.MakeVariantOf(mainSense, letPlural);
					return variantEntry.LexemeFormOA;
				};
				options.MakeSense = (entry) =>
				{
					var entryRef = entry.EntryRefsOS.First();
					return entryRef.ComponentLexemesRS.First() as ILexSense;
				};
				options.MakeMsa = (sense) => { return sense.MorphoSyntaxAnalysisRA; };
				options.MakeInflType = (mf) =>
										   {
											   var entry = mf.Owner as ILexEntry;
											   var entryRef = entry.EntryRefsOS.First();
											   var vet = entryRef.VariantEntryTypesRS.First() as ILexEntryInflType;
											   return vet;
										   };
				var wmb = MakeBundle(wa, options);

				var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
				var seg = para.SegmentsOS[0];
				seg.AnalysesRS.Add(wa);
				return new AnalysisOccurrence(seg, 0);
			}))
			{
				var initialAnalysisStack = sandbox.CurrentAnalysisTree;
				using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
				{
					var imorphItemCurrentSandboxState = handler.IndexOfCurrentItem;
					var items = handler.MorphItems;
					var miCurrentSandboxState = items[imorphItemCurrentSandboxState];
					Assert.That(miCurrentSandboxState.m_hvoMorph,
								Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MorphRA.Hvo));
					Assert.That(miCurrentSandboxState.m_hvoSense,
								Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].SenseRA.Hvo));
					Assert.That(miCurrentSandboxState.m_hvoMsa,
								Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MsaRA.Hvo));

					var variantEntry = initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MorphRA.Owner as ILexEntry;
					var variantType = variantEntry.VariantEntryRefs.First().VariantEntryTypesRS.First();
					Assert.That(miCurrentSandboxState.m_inflType, Is.EqualTo(variantType));
					Assert.That(miCurrentSandboxState.m_hvoMainEntryOfVariant, Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].SenseRA.Entry.Hvo));
				}
			}
		}
Пример #11
0
		public void LexEntriesComboHandler_ItemsInComboForInflVariant()
		{
			using (var sandbox = SetupSandbox(() =>
			{
				const string wff = "blonde";
				var mockText = MakeText(wff);
				var wf = MakeWordform(wff);
				var wa = MakeAnalysis(wf);
				var options = new MakeBundleOptions();
				options.LexEntryForm = wff;
				options.MakeMorph = (mff) =>
				{
					Guid slotType = GetSlotType(mff);
					IMoMorphSynAnalysis msa1;
					var mainEntry = MakeEntry("blondEntry", "", slotType, out msa1);
					var mainSense = MakeSense(mainEntry, "fair haired", msa1);

					IMoMorphSynAnalysis msa2;
					var variantEntry = MakeEntry("blondeEntry", "", slotType, out msa2);
					ILexEntryType letDialectalVariantType = Cache.ServiceLocator.GetInstance<ILexEntryTypeRepository>().GetObject(LexEntryTypeTags.kguidLexTypDialectalVar);
					letDialectalVariantType.Abbreviation.set_String(Cache.DefaultAnalWs, "dial.var. of");
					letDialectalVariantType.Name.set_String(Cache.DefaultAnalWs, "Dialectal Variant");
					letDialectalVariantType.ReverseAbbr.set_String(Cache.DefaultAnalWs, "dial.var.");

					variantEntry.MakeVariantOf(mainSense, letDialectalVariantType);
					return variantEntry.LexemeFormOA;
				};
				options.MakeSense = (entry) =>
				{
					var entryRef = entry.EntryRefsOS.First();
					return entryRef.ComponentLexemesRS.First() as ILexSense;
				};
				options.MakeMsa = (sense) => { return sense.MorphoSyntaxAnalysisRA; };
				var wmb = MakeBundle(wa, options);
				var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
				var seg = para.SegmentsOS[0];
				seg.AnalysesRS.Add(wa);
				return new AnalysisOccurrence(seg, 0);
			}))
			{
				var initialAnalysisStack = sandbox.CurrentAnalysisTree;
				using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
				{
					var imorphItemCurrentSandboxState = handler.IndexOfCurrentItem;

					Assert.That(imorphItemCurrentSandboxState, Is.EqualTo(1));

					var handlerList =  handler.ComboList.Items;

					Assert.That(handlerList[0].ToString(), Is.EqualTo("Add New Sense for blondeEntry ..."));
					Assert.That(handlerList[1].ToString(), Is.EqualTo("  fair haired, ??? , blondEntry+dial.var."));
					Assert.That(handlerList[2].ToString(), Is.EqualTo("    Add New Sense..."));
				}
			}
		}
Пример #12
0
		public void LexEntriesComboHandler_IndexOfCurrentLexSenseAndMsa()
		{
			using (var sandbox = SetupSandbox(() =>
			{
				const string wff = "monomorphemicstem";
				var mockText = MakeText(wff);
				var wf = MakeWordform(wff);
				var wa = MakeAnalysis(wf);
				var options = new MakeBundleOptions();
				options.LexEntryForm = wff;
				options.MakeMorph = (mff) =>
				{
					Guid slotType = GetSlotType(mff);
					IMoMorphSynAnalysis msa;
					var entry = MakeEntry(mff.Replace("-", ""), "V:(Imperative)", slotType, out msa);
					var sense2 = MakeSense(entry, "gloss1", msa);
					return entry.LexemeFormOA;
				};
				options.MakeSense = (entry) =>
										{
											var msa = entry.MorphoSyntaxAnalysesOC.ToList()[0];
											var sense2 = MakeSense(entry, "gloss2", msa);
											return sense2;
										};
				options.MakeMsa = (sense) => { return sense.MorphoSyntaxAnalysisRA; };
				var wmb = MakeBundle(wa, options);
				var para = (IStTxtPara)mockText.ContentsOA.ParagraphsOS[0];
				var seg = para.SegmentsOS[0];
				seg.AnalysesRS.Add(wa);
				return new AnalysisOccurrence(seg, 0);
			}))
			{
				var initialAnalysisStack = sandbox.CurrentAnalysisTree;
				using (var handler = GetComboHandler(sandbox, InterlinLineChoices.kflidLexEntries, 0) as SandboxBase.IhMissingEntry)
				{
					var imorphItemCurrentSandboxState = handler.IndexOfCurrentItem;
					Assert.That(imorphItemCurrentSandboxState, Is.GreaterThan(-1));
					var items = handler.MorphItems;
					var miCurrentSandboxState = items[imorphItemCurrentSandboxState];
					Assert.That(miCurrentSandboxState.m_hvoMorph,
								Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MorphRA.Hvo));
					Assert.That(miCurrentSandboxState.m_hvoSense,
								Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].SenseRA.Hvo));
					Assert.That(miCurrentSandboxState.m_hvoMsa,
								Is.EqualTo(initialAnalysisStack.WfiAnalysis.MorphBundlesOS[0].MsaRA.Hvo));
					Assert.That(miCurrentSandboxState.m_hvoMainEntryOfVariant, Is.EqualTo(0));

				}
			}
		}