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