See ITextToken for field definitions comments. This is a dummy class used for testing the checks.
Inheritance: ITextToken
Esempio n. 1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Makes a deep copy of this text token.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public ITextToken Clone()
        {
            DummyTextToken copy = new DummyTextToken(Text, TextType, IsParagraphStart,
                                                     IsNoteStart, ParaStyleName, CharStyleName, Locale);

            copy.m_missingStartRef = m_missingStartRef;
            copy.m_missingEndRef   = m_missingEndRef;
            return(copy);
        }
Esempio n. 2
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Makes a deep copy of this text token.
		/// </summary>
		/// ------------------------------------------------------------------------------------
		public ITextToken Clone()
		{
			DummyTextToken copy = new DummyTextToken(Text, TextType, IsParagraphStart,
				IsNoteStart, ParaStyleName, CharStyleName, Locale);
			copy.m_missingStartRef = m_missingStartRef;
			copy.m_missingEndRef = m_missingEndRef;
			return copy;
		}
Esempio n. 3
0
		public void ChapterNumberOutOfRangeError()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("3-15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok = new DummyTextToken("5",
				TextType.ChapterNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("1-23",
				TextType.VerseNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(2, m_errors.Count);
			CheckError(0, TempTok.Text, 0, TempTok.Text, "Chapter number out of range");
			CheckError(1, m_dataSource.m_tokens[0].Text, 1, String.Empty, "Missing chapter number 2");
		}
Esempio n. 4
0
		public void VerseNumberMissingError()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Missing verse 2
			ITextToken TempTok = new DummyTextToken("3-14",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Missing verse 15
			ITextToken TempTok2 = new DummyTextToken("2",
				TextType.ChapterNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok2);
			// Missing verse 1
			ITextToken TempTok3 = new DummyTextToken("2-22",
				TextType.VerseNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok3);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Missing verse 23

			m_check.Check(m_dataSource.TextTokens(), RecordError);
			Assert.AreEqual(4, m_errors.Count);
			CheckError(0, m_dataSource.m_tokens[1].Text, 1, String.Empty, "Missing verse number 2");
			CheckError(1, TempTok.Text, 4, String.Empty, "Missing verse number 15");
			CheckError(2, TempTok2.Text, 1, String.Empty, "Missing verse number 1");
			CheckError(3, TempTok3.Text, 4, String.Empty, "Missing verse number 23");
		}
Esempio n. 5
0
		public void ChapterNumberDuplicated()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			// error sequence - chapter 1 & 2 with verse, chapter 2 duplicated
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));

			m_dataSource.m_tokens.Add(new DummyTextToken("1-15",
				TextType.VerseNumber, true, false, "Paragraph"));

			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));

			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, true, false, "Paragraph"));

			m_dataSource.m_tokens.Add(new DummyTextToken("1-23",
				TextType.VerseNumber, true, false, "Paragraph"));

			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));

			DummyTextToken dupChapter = new DummyTextToken("2",
				TextType.ChapterNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(dupChapter);

			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(1, m_errors.Count);
			CheckError(0, dupChapter.Text, 0, dupChapter.Text, "Duplicate chapter number");
		}
Esempio n. 6
0
		public void ChapterNumberMissingError_FollowingVerseBridge()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1-15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Missing chapter number 2
			ITextToken TempTok = new DummyTextToken("1-23",
				TextType.VerseNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(2, m_errors.Count);
			CheckError(0, TempTok.Text, 0, TempTok.Text, "Duplicate verse numbers");
			CheckError(1, m_dataSource.m_tokens[0].Text, 1, String.Empty, "Missing chapter number 2");
		}
Esempio n. 7
0
		public void NoChapterVerseErrors_DifferentVersifications()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "NAM");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			ITextToken TempTok = new DummyTextToken("1-15",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, false, false, "Paragraph"));
			ITextToken TempTok2 = new DummyTextToken("1-13",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok2);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("3",
				TextType.ChapterNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1-19",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);
			Assert.AreEqual(0, m_errors.Count);

			m_dataSource.SetParameterValue("Versification Scheme", "Septuagint");

			((DummyTextToken)TempTok).Text = "1-14";
			((DummyTextToken)TempTok2).Text = "1-14";
			m_check.Check(m_dataSource.TextTokens(), RecordError);
			Assert.AreEqual(0, m_errors.Count);
		}
Esempio n. 8
0
		public void FormatErrors_UnexpectedBridgeCharacter()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "JUD");
			m_dataSource.SetParameterValue("Chapter Number", "0");
			m_dataSource.SetParameterValue("Verse Bridge", "~");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			DummyTextToken badToken = new DummyTextToken("1-25",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(badToken);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);
			Assert.AreEqual(1, m_errors.Count);
			CheckError(0, badToken.Text, 0, badToken.Text, "Invalid verse number");
		}
Esempio n. 9
0
		public void FormatErrors_ExpectedScriptDigits()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");
			m_dataSource.SetParameterValue("Script Digit Zero", "\u0660");
			m_dataSource.SetParameterValue("Verse Bridge", "\u200F-\u200f");

			// \u0660-\u0669 are Arabic-Indic digits, \u200F is the RTL Mark.
			DummyTextToken badToken1 = new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(badToken1);
			m_dataSource.m_tokens.Add(new DummyTextToken("\u0661",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("\u0662",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("\u0663\u200F-\u200f\u0661\u0665",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("\u0662",
				TextType.ChapterNumber, false, false, "Paragraph"));
			DummyTextToken badToken2 = new DummyTextToken("\u0661\u200F-\u200f\u06623",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(badToken2);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);
			Assert.AreEqual(2, m_errors.Count);
			CheckError(0, badToken1.Text, 0, badToken1.Text, "Invalid chapter number");
			CheckError(1, badToken2.Text, 0, badToken2.Text, "Invalid verse number");
		}
Esempio n. 10
0
		public void MissingChapter_Multiple()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "JAS");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			// Missing chapter 1 (ignored)
			m_dataSource.m_tokens.Add(new DummyTextToken("1-27",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Missing chapter 2
			ITextToken TempTok = new DummyTextToken("1-26",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Missing chapters 3-5
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(5, m_errors.Count);

			CheckError(0, TempTok.Text, 0, TempTok.Text, "Duplicate verse numbers");

			for (int i = 2; i < 6; i++)
				CheckError(i - 1, m_dataSource.m_tokens[0].Text, 0, String.Empty, string.Format("Missing chapter number {0}", i));
		}
Esempio n. 11
0
		public void InvalidVerse_InvalidCharacters()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			ITextToken TempTok = new DummyTextToken("zv",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2-13",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("14z7a",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("text",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("more text",
				TextType.Verse, true, false, "Paragraph"));

			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, true, false, "Paragraph"));
			ITextToken TempTok2 = new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok2);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok3 = new DummyTextToken("u-r-an-idot",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok3);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("23",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(7, m_errors.Count);

			CheckError(0, TempTok.Text, 0, TempTok.Text, "Invalid verse number");
			CheckError(1, m_dataSource.m_tokens[5].Text, 0, m_dataSource.m_tokens[5].Text, "Verse number out of range");
			CheckError(2, m_dataSource.m_tokens[5].Text, 0, m_dataSource.m_tokens[5].Text, "Invalid verse number");
			CheckError(3, m_dataSource.m_tokens[0].Text, 1, String.Empty, "Missing verse number 1");
			CheckError(4, m_dataSource.m_tokens[3].Text, 4, String.Empty, "Missing verse number 14");
			CheckError(5, TempTok3.Text, 0, TempTok3.Text, "Invalid verse number");
			CheckError(6, TempTok2.Text, 1, String.Empty, "Missing verse numbers 2-22");
		}
Esempio n. 12
0
		public void InvalidVerse_SpaceError()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken(" 1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2-15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok = new DummyTextToken("2-22 ",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("23",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(2, m_errors.Count);

			CheckError(0, m_dataSource.m_tokens[1].Text, 0, m_dataSource.m_tokens[1].Text,
				"Space found in verse number");
			CheckError(1, TempTok.Text, 0, TempTok.Text, "Space found in verse bridge");
		}
Esempio n. 13
0
		public void VerseNumberPartCError()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("3-15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, false, false, "Paragraph"));
			ITextToken tempTok1 = new DummyTextToken("1-23a",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(tempTok1);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken tempTok2 = new DummyTextToken("23c",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(tempTok2);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(2, m_errors.Count);

			CheckError(0, tempTok1.Text, 5, string.Empty, "Missing verse number 23b");
			CheckError(1, tempTok2.Text, 0, tempTok2.Text, "Invalid verse number");
		}
Esempio n. 14
0
		public void VerseNumberPartAOrB()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");

			// Currently we don't catch any of these invalid cases...
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1a-3",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("4-6b",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("7-8a",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("9-10",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("11-13",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("14b-15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));

			// These cases are valid...
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2a",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2b",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("3-4b",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("5",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));

			// These cases are not valid (should produce errors)...
			ITextToken TempTok = new DummyTextToken("6a",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("7",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok2 = new DummyTextToken("8b",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok2);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok3 = new DummyTextToken("9b",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok3);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok4 = new DummyTextToken("10a",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok4);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok5 = new DummyTextToken("11b",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok5);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok6 = new DummyTextToken("12-13a",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok6);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("14",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("15-23",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(6, m_errors.Count);

			CheckError(0, TempTok.Text, 2, String.Empty, "Missing verse number 6b");
			CheckError(1, TempTok2.Text, 0, String.Empty, "Missing verse number 8a");
			CheckError(2, TempTok3.Text, 0, String.Empty, "Missing verse number 9a");
			CheckError(3, TempTok4.Text, 3, String.Empty, "Missing verse number 10b");
			CheckError(4, TempTok5.Text, 0, String.Empty, "Missing verse number 11a");
			CheckError(5, TempTok6.Text, 6, String.Empty, "Missing verse number 13b");
		}
Esempio n. 15
0
		public void VerseNumberGreaterThan999()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2-15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, false, false, "Paragraph"));
			ITextToken TempTok = new DummyTextToken("1-14",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			ITextToken TempTok2 = new DummyTextToken("1515",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok2);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("17-23",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(2, m_errors.Count);

			CheckError(0, TempTok2.Text, 0, TempTok2.Text, "Verse number out of range");
			CheckError(1, TempTok.Text, 4, String.Empty, "Missing verse numbers 15-16");
		}
Esempio n. 16
0
		public void DuplicateVerseNumberError()
		{
			m_dataSource.SetParameterValue("OmittedVerses", "");
			// TODO: Figure out where to put vrs files for tests. Probably want to just include
			// copies here locally with the tests.
			m_dataSource.SetParameterValue("Versification Scheme", "English");
			m_dataSource.SetParameterValue("Book ID", "HAG");
			m_dataSource.SetParameterValue("Chapter Number", "0");

			// Chapter 1
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Duplicate verse number 1
			ITextToken TempTok = new DummyTextToken("1",
				TextType.VerseNumber, false, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("2-15",
				TextType.VerseNumber, false, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Chapter 2
			m_dataSource.m_tokens.Add(new DummyTextToken("2",
				TextType.ChapterNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("1-23",
				TextType.VerseNumber, true, false, "Paragraph"));
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Duplicate verse number 13
			ITextToken TempTok2 = new DummyTextToken("13",
				TextType.VerseNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok2);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));
			// Duplicate verse numbers 21-23
			ITextToken TempTok3 = new DummyTextToken("21-23",
				TextType.VerseNumber, true, false, "Paragraph");
			m_dataSource.m_tokens.Add(TempTok3);
			m_dataSource.m_tokens.Add(new DummyTextToken("verse body",
				TextType.Verse, true, false, "Paragraph"));

			m_check.Check(m_dataSource.TextTokens(), RecordError);

			Assert.AreEqual(3, m_errors.Count);

			CheckError(0, TempTok.Text, 0, TempTok.Text, "Duplicate verse number");
			CheckError(1, TempTok2.Text, 0, TempTok2.Text, "Duplicate verse number");
			CheckError(2, TempTok3.Text, 0, TempTok3.Text, "Unexpected verse numbers");
		}