Example #1
0
			/// <summary>
			/// looks in the paragraph to find an annotation that matches the information
			/// captured in CaptureObjectInfo().
			/// </summary>
			/// <returns>0 if none found</returns>
			public int FindIdenticalTwfic()
			{
				if (IsCapturedObjectInfoValid())
					return Object.Hvo;
				// otherwise look through our paragraph annotations and see
				// if we can find one corresponding to the one we've saved.
				// Enhance: we could start with the offsets in the paragraph
				// and look for an equivalent segform independent of segment
				// boundaries.
				StTxtPara para = new StTxtPara(m_fdoCache, m_hvoPara);
				List<int> segments = para.Segments;
				if (m_iSegment < 0 || m_iSegment >= segments.Count)
					return 0;
				int hvoSegment = segments[m_iSegment];
				List<int> segforms = para.SegmentForms(hvoSegment);
				if (m_iSegmentForm < 0 || m_iSegmentForm >= segforms.Count)
					return 0;
				int hvoSegform = segforms[m_iSegmentForm];
				StTxtPara.TwficInfo twficInfo = new StTxtPara.TwficInfo(m_fdoCache, hvoSegform);
				if (this.IsIdenticalObjectInfo(twficInfo))
					return hvoSegform;
				else
					return 0;
			}
		private void ValidateGuesses(List<int> expectedGuesses, StTxtPara paraWithGuesses)
		{
			List<int> segsParaGuesses = paraWithGuesses.Segments;
			int iExpectedGuess = 0;
			foreach (int hvoSegParaGuesses in segsParaGuesses)
			{
				List<int> segFormsParaGuesses = paraWithGuesses.SegmentForms(hvoSegParaGuesses);
				Assert.AreEqual(expectedGuesses.Count, segFormsParaGuesses.Count);
				foreach (int hvoSegFormParaGuesses in segFormsParaGuesses)
				{
					int hvoGuessActual = 0;
					CmBaseAnnotation cba = new CmBaseAnnotation(Cache, hvoSegFormParaGuesses);
					if (cba.InstanceOfRAHvo != 0)
					{
						// should be a twfic so get it's guess.
						StTxtPara.TwficInfo cbaInfo = new StTxtPara.TwficInfo(Cache, cba.Hvo);
						hvoGuessActual = cbaInfo.GetGuess();
					}
					Assert.AreEqual(expectedGuesses[iExpectedGuess], hvoGuessActual, "Guess mismatch");
					iExpectedGuess++;
				}
			}
		}