public void CalculateSpeechDistributionScore_BoazInProjectThatOnlyIncludesRuth_ReturnsResultFromMaxBook() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.RUT); TestProject.SimulateDisambiguationForAllBooks(testProject); Assert.IsTrue(testProject.SpeechDistributionScoreByCharacterId["Boaz"] >= 7); }
public void MigrateDeprecatedCharacterIds_FirstVerseInQuoteIsUnexpectedForCharacter_CharacterIdNotSetToUnknown() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.JUD); TestProject.SimulateDisambiguationForAllBooks(testProject); var bookScript = testProject.IncludedBooks.Single(); var verses13and14Block = bookScript.GetBlocksForVerse(1, 13).Single(); var originalVerse14Blocks = bookScript.GetBlocksForVerse(1, 14); // Use reflection to get around a check to ensure we don't do this in production code List <Block> blocks = (List <Block>)ReflectionHelper.GetField(bookScript, "m_blocks"); int blockCount = (int)ReflectionHelper.GetField(bookScript, "m_blockCount"); //Combine verse 13 and 14 blocks foreach (var block in originalVerse14Blocks) { verses13and14Block.BlockElements.AddRange(block.BlockElements); blocks.Remove(block); blockCount--; } ReflectionHelper.SetField(bookScript, "m_blockCount", blockCount); verses13and14Block.CharacterId = "Enoch"; //Setup check Assert.AreEqual("Enoch", verses13and14Block.CharacterId); //SUT Assert.AreEqual(0, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual("Enoch", verses13and14Block.CharacterId); }
public void CalculateSpeechDistributionScore_CharacterWhoSpeaksThriceInOneChapterTwiceInAnotherChapterAndOnceInEachOfTwoOtherChapterAcrossRangeOfSevenChapters_ReturnsThirtyNine() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.ACT); TestProject.SimulateDisambiguationForAllBooks(testProject); Assert.AreEqual(39, testProject.SpeechDistributionScoreByCharacterId["angel of the LORD, an"]); }
public void CalculateSpeechDistributionScore_CharacterWhoSpeaksFourTimesInOnlyOneChapter_ReturnsFour() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.ACT); TestProject.SimulateDisambiguationForAllBooks(testProject); Assert.AreEqual(4, testProject.SpeechDistributionScoreByCharacterId["Stephen"]); }
public void CalculateSpeechDistributionScore_CharacterWhoSpeaksALotInOneBookAndALittleInAnother_ReturnsResultFromMaxBook() { var testProjectA = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProjectA); var resultFromRev = testProjectA.SpeechDistributionScoreByCharacterId["God"]; var testProject = TestProject.CreateTestProject(TestProject.TestBook.MRK, TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); Assert.AreEqual(resultFromRev, testProject.SpeechDistributionScoreByCharacterId["God"]); }
public void MigrateDeprecatedCharacterIds_ExistingAmbiguousUserNotConfirmed_NoChanges() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.LUK); TestProject.SimulateDisambiguationForAllBooks(testProject); var block = testProject.IncludedBooks.Single().GetBlocksForVerse(18, 39).Last(); block.CharacterId = CharacterVerseData.kAmbiguousCharacter; block.UserConfirmed = false; Assert.AreEqual(0, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual(false, block.UserConfirmed); }
public void MigrateDeprecatedCharacterIds_DeliveryChangedForOneOfTwoCharactersInVerse_DeliveryChangedInBlock(string character, string initialDelivery, string expectedDelivery) { var testProject = TestProject.CreateTestProject(TestProject.TestBook.LUK); TestProject.SimulateDisambiguationForAllBooks(testProject); var block = testProject.IncludedBooks.Single().GetBlocksForVerse(18, 39).Last(); block.CharacterId = character; block.Delivery = initialDelivery; Assert.AreEqual(1, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual(expectedDelivery, block.Delivery); }
public void MigrateDeprecatedCharacterIds_ExistingAmbiguousUserConfirmed_ClearsUserConfirmed() { // Note: this scenario was caused by a bug in a previous version of this method. var testProject = TestProject.CreateTestProject(TestProject.TestBook.LUK); TestProject.SimulateDisambiguationForAllBooks(testProject); var block = testProject.IncludedBooks.Single().GetBlocksForVerse(18, 39).Last(); block.CharacterId = CharacterVerseData.kAmbiguousCharacter; block.UserConfirmed = true; Assert.AreEqual(1, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual(false, block.UserConfirmed); }
public void MigrateDeprecatedCharacterIds_CharacterIdReplacedWithSingleId_CharacterIdInScriptSetToReplacementId() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); var angelsSpeakingInRev712 = testProject.IncludedBooks.Single().GetBlocksForVerse(7, 12).ElementAt(1); angelsSpeakingInRev712.SetCharacterIdAndCharacterIdInScript("tons of angelic beings", 66); Assert.AreEqual(1, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual("angels, all the", angelsSpeakingInRev712.CharacterId); Assert.AreEqual("angels, all the", angelsSpeakingInRev712.CharacterIdInScript); }
public void MigrateDeprecatedCharacterIds_StandardCharacterIdUsedInUnexpectedPlaceIsLaterRenamed_CharacterIdInScriptSetToUnknown() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); var unexpectedPeterInRev711 = testProject.IncludedBooks.Single().GetBlocksForVerse(7, 11).First(); testProject.ProjectCharacterVerseData.Add(new CharacterVerse(new BCVRef(66, 7, 11), "peter", "", "", true)); unexpectedPeterInRev711.SetCharacterIdAndCharacterIdInScript("peter", 66); Assert.AreEqual(1, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual(CharacterVerseData.kUnknownCharacter, unexpectedPeterInRev711.CharacterId); Assert.IsFalse(testProject.ProjectCharacterVerseData.Any()); }
public void MigrateDeprecatedCharacterIds_CharacterIdRemoved_MultipleCharactersStillInVerse_CharacterIdInScriptSetToAmbiguous() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); var blockInRev13V10 = testProject.IncludedBooks.Single().GetBlocksForVerse(13, 10).First(); blockInRev13V10.SetCharacterIdAndCharacterIdInScript("angels, all the", 66); blockInRev13V10.CharacterIdOverrideForScript = "angels, all, the"; Assert.AreEqual("angels, all, the", blockInRev13V10.CharacterIdInScript); Assert.AreEqual(1, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual(CharacterVerseData.kAmbiguousCharacter, blockInRev13V10.CharacterId); Assert.AreEqual(CharacterVerseData.kAmbiguousCharacter, blockInRev13V10.CharacterIdInScript); }
public void MigrateDeprecatedCharacterIds_CharacterIdRemoved_NoOtherCharactersInVerse_CharacterIdInScriptSetToUnknown() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); var blockInRev43 = testProject.IncludedBooks.Single().GetBlocksForVerse(4, 3).First(); blockInRev43.SetCharacterIdAndCharacterIdInScript("angels, all the", 66); blockInRev43.CharacterIdOverrideForScript = "angels, all, the"; Assert.AreEqual("angels, all, the", blockInRev43.CharacterIdInScript); Assert.AreEqual(1, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual(CharacterVerseData.kUnknownCharacter, blockInRev43.CharacterId); Assert.AreEqual(CharacterVerseData.kUnknownCharacter, blockInRev43.CharacterIdInScript); }
public void MigrateDeprecatedCharacterIds_OneMemberOfMultiCharacterIdChanged_CharacterIdInScriptSetToReplacementId() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); var singersInRev59 = testProject.IncludedBooks.Single().GetBlocksForVerse(5, 9).Skip(1).ToList(); foreach (var block in singersInRev59) { block.SetCharacterIdAndCharacterIdInScript("cuatro living creatures/twenty-four elders", 66); } Assert.AreEqual(singersInRev59.Count, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.True(singersInRev59.All(b => b.CharacterId == "living creature, first/living creature, second/living creature, third/living creature, fourth/twenty-four elders" && b.CharacterIdInScript == "living creature, first")); }
public void MigrateDeprecatedCharacterIds_DeliveryChanged_DeliveryChangedInBlock(string initialDelivery) { var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); var singersInRev59 = testProject.IncludedBooks.Single().GetBlocksForVerse(5, 9).Skip(1).ToList(); foreach (var block in singersInRev59) { block.Delivery = initialDelivery; } Assert.AreEqual(singersInRev59.Count, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.True(singersInRev59.All(b => b.CharacterId == "living creature, first/living creature, second/living creature, third/living creature, fourth/twenty-four elders" && b.Delivery == "singing")); }
public void MigrateDeprecatedCharacterIds_OneOfTwoCharacterIdsInVerseReplacedWithDifferentId_CharacterIdInScriptSetToAmbiguous() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.REV); TestProject.SimulateDisambiguationForAllBooks(testProject); var johnSpeakingInRev714 = testProject.IncludedBooks.Single().GetBlocksForVerse(7, 14).ElementAt(1); johnSpeakingInRev714.SetCharacterIdAndCharacterIdInScript("John", 66); johnSpeakingInRev714.UserConfirmed = true; var elderSpeakingInRev714 = testProject.IncludedBooks.Single().GetBlocksForVerse(7, 14).ElementAt(3); elderSpeakingInRev714.SetCharacterIdAndCharacterIdInScript("elders, one of the", 66); Assert.True(johnSpeakingInRev714.UserConfirmed); Assert.AreEqual(1, ProjectDataMigrator.MigrateDeprecatedCharacterIds(testProject)); Assert.AreEqual(CharacterVerseData.kAmbiguousCharacter, johnSpeakingInRev714.CharacterId); Assert.AreEqual(CharacterVerseData.kAmbiguousCharacter, johnSpeakingInRev714.CharacterIdInScript); Assert.False(johnSpeakingInRev714.UserConfirmed); Assert.AreEqual("elders, one of the", elderSpeakingInRev714.CharacterId); Assert.AreEqual("elders, one of the", elderSpeakingInRev714.CharacterIdInScript); }
public void MigrateInvalidCharacterIdsWithoutCharacterIdInScriptOverrides_ControlFileHasNoExplicitDefault_FirstCharacterIsUsed() { var testProject = TestProject.CreateTestProject(TestProject.TestBook.MRK); TestProject.SimulateDisambiguationForAllBooks(testProject); var jesusSpeakingInMrk59 = testProject.IncludedBooks.Single().GetBlocksForVerse(5, 9).ElementAt(1); jesusSpeakingInMrk59.SetCharacterIdAndCharacterIdInScript("Jesus", 66); jesusSpeakingInMrk59.UserConfirmed = true; var demonSpeakingInMrk59 = testProject.IncludedBooks.Single().GetBlocksForVerse(5, 9).ElementAt(3); demonSpeakingInMrk59.CharacterId = "demons (Legion)/man delivered from Legion of demons"; demonSpeakingInMrk59.CharacterIdOverrideForScript = null; demonSpeakingInMrk59.UserConfirmed = true; Assert.AreEqual(1, ProjectDataMigrator.MigrateInvalidCharacterIdsWithoutCharacterIdInScriptOverrides(testProject)); Assert.AreEqual("Jesus", jesusSpeakingInMrk59.CharacterId); Assert.AreEqual("Jesus", jesusSpeakingInMrk59.CharacterIdInScript); Assert.IsTrue(jesusSpeakingInMrk59.UserConfirmed); Assert.AreEqual("demons (Legion)/man delivered from Legion of demons", demonSpeakingInMrk59.CharacterId); Assert.AreEqual("demons (Legion)", demonSpeakingInMrk59.CharacterIdInScript); Assert.IsTrue(demonSpeakingInMrk59.UserConfirmed); }