Esempio n. 1
0
        public void CreateGlyssenScript_FirstChapterIs1_FirstChapterInScriptIs1()
        {
            var project       = TestProject.CreateBasicTestProject();
            var glyssenScript = ScriptExporter.CreateGlyssenScript(project, GetTestData(includeChapter0BookTitle: false));

            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Id, Is.EqualTo(1));
        }
Esempio n. 2
0
        public void ConvertContinuersToParatextAssumptions_3LevelsPlusNarrative_Continuer_ModifiesLevel2AndLevel3Continuers()
        {
            var project        = TestProject.CreateBasicTestProject();
            var quotationMarks = new List <QuotationMark>
            {
                new QuotationMark("<<", ">>", "<<", 1, QuotationMarkingSystemType.Normal),
                new QuotationMark("<", ">", "<", 2, QuotationMarkingSystemType.Normal),
                new QuotationMark("<<", ">>", "<<", 3, QuotationMarkingSystemType.Normal),
                new QuotationMark("--", null, null, 1, QuotationMarkingSystemType.Narrative)
            };

            project.WritingSystem.QuotationMarks.Clear();
            project.WritingSystem.QuotationMarks.AddRange(quotationMarks);

            project.ConvertContinuersToParatextAssumptions();

            var expected = new List <QuotationMark>
            {
                new QuotationMark("<<", ">>", "<<", 1, QuotationMarkingSystemType.Normal),
                new QuotationMark("<", ">", "<< <", 2, QuotationMarkingSystemType.Normal),
                new QuotationMark("<<", ">>", "<< < <<", 3, QuotationMarkingSystemType.Normal),
                new QuotationMark("--", null, null, 1, QuotationMarkingSystemType.Narrative)
            };

            Assert.True(expected.SequenceEqual(project.WritingSystem.QuotationMarks));
        }
Esempio n. 3
0
        public void CreateGlyssenScript_FirstChapterIs0_FirstChapterInScriptIs0()
        {
            var project       = TestProject.CreateBasicTestProject();
            var glyssenScript = ScriptExporter.CreateGlyssenScript(project, GetTestData(true));

            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Id, Is.EqualTo(0));
        }
Esempio n. 4
0
        public void SetCharacterGroupGenerationPreferencesToValidValues_OneBook(int numMaleNarrators, int numFemaleNarrators, int resultMale, int resultFemale)
        {
            var testProject = TestProject.CreateBasicTestProject();

            testProject.CharacterGroupGenerationPreferences.NarratorsOption         = NarratorsOption.Custom;
            testProject.CharacterGroupGenerationPreferences.NumberOfMaleNarrators   = numMaleNarrators;
            testProject.CharacterGroupGenerationPreferences.NumberOfFemaleNarrators = numFemaleNarrators;

            testProject.SetCharacterGroupGenerationPreferencesToValidValues();
            Assert.AreEqual(resultMale, testProject.CharacterGroupGenerationPreferences.NumberOfMaleNarrators);
            Assert.AreEqual(resultFemale, testProject.CharacterGroupGenerationPreferences.NumberOfFemaleNarrators);
        }
Esempio n. 5
0
        public void IsVoiceActorAssignmentsComplete_GroupWithNoActor_ReturnsFalse()
        {
            var project = TestProject.CreateBasicTestProject();

            var actor = new Glyssen.VoiceActor.VoiceActor();

            project.VoiceActorList.Actors.Add(actor);
            var group = new CharacterGroup(project);

            project.CharacterGroupList.CharacterGroups.Add(group);

            Assert.False(project.IsVoiceActorAssignmentsComplete);
        }
Esempio n. 6
0
        public void IsVoiceActorAssignmentsComplete_Complete_ReturnsTrue()
        {
            var project = TestProject.CreateBasicTestProject();

            var actor = new Glyssen.VoiceActor.VoiceActor();

            project.VoiceActorList.Actors.Add(actor);
            var group = new CharacterGroup(project);

            group.AssignVoiceActor(actor.Id);
            project.CharacterGroupList.CharacterGroups.Add(group);

            Assert.True(project.IsVoiceActorAssignmentsComplete);
        }
Esempio n. 7
0
        public void Load_JustOneBookAvailableAndOneIncluded_AutomaticallyFlagAsReviewed()
        {
            var project  = TestProject.CreateBasicTestProject();
            var metadata = (GlyssenDblTextMetadata)ReflectionHelper.GetField(project, "m_metadata");

            metadata.AvailableBooks.Insert(0, new Book {
                Code = "GEN"
            });
            project.Save();

            project = TestProject.LoadExistingTestProject();

            Assert.AreEqual(BookSelectionStatus.Reviewed, project.BookSelectionStatus);
        }
Esempio n. 8
0
        public void EveryAssignedGroupHasACharacter_AssignedGroupWithNoCharacter_ReturnsFalse()
        {
            var project = TestProject.CreateBasicTestProject();

            var actor = new Glyssen.VoiceActor.VoiceActor();

            project.VoiceActorList.Actors.Add(actor);
            var group = new CharacterGroup(project);

            group.AssignVoiceActor(actor.Id);
            project.CharacterGroupList.CharacterGroups.Add(group);

            Assert.True(project.CharacterGroupList.AnyVoiceActorAssigned());
            Assert.False(project.EveryAssignedGroupHasACharacter);
        }
Esempio n. 9
0
        public void CreateGlyssenScript_DeliveryIsSet_DeliveryIsExported()
        {
            var project = TestProject.CreateBasicTestProject();
            var blockWhereMichaelSpeaks = project.IncludedBooks.Single().GetScriptBlocks().Single(b => b.InitialStartVerseNumber == 9 && b.IsQuote);

            blockWhereMichaelSpeaks.CharacterId = "Michael, archangel";
            blockWhereMichaelSpeaks.Delivery    = "rebuking";
            var exporter      = new ProjectExporter(project);
            var glyssenScript = ScriptExporter.CreateGlyssenScript(project, exporter.GetExportData(getBlockElements: true));

            var scriptBlocks = glyssenScript.Script.Books[0].Chapters[1].Blocks;             // Chapter 0 is just the book title
            var michael      = scriptBlocks.Single(b => b.Character == "Michael, archangel");

            Assert.AreEqual("rebuking", michael.Delivery);
        }
Esempio n. 10
0
        public void HasUnusedActor_NoUnusedActor_ReturnsFalse()
        {
            var project = TestProject.CreateBasicTestProject();

            var actor1 = new Glyssen.VoiceActor.VoiceActor();

            project.VoiceActorList.Actors.Add(actor1);
            var group = new CharacterGroup(project);

            group.AssignVoiceActor(actor1.Id);
            project.CharacterGroupList.CharacterGroups.Add(group);

            Assert.True(project.CharacterGroupList.AnyVoiceActorAssigned());
            Assert.False(project.HasUnusedActor);
        }
Esempio n. 11
0
        public void ConvertContinuersToParatextAssumptions_Level1Only_NoChange()
        {
            var project        = TestProject.CreateBasicTestProject();
            var quotationMarks = new List <QuotationMark>
            {
                new QuotationMark("<<", ">>", "<<", 1, QuotationMarkingSystemType.Normal)
            };

            project.WritingSystem.QuotationMarks.Clear();
            project.WritingSystem.QuotationMarks.AddRange(quotationMarks);

            project.ConvertContinuersToParatextAssumptions();

            Assert.True(quotationMarks.SequenceEqual(project.WritingSystem.QuotationMarks));
        }
Esempio n. 12
0
        public void Load_MetadataContainsAvailableBookThatDoesNotExist_SpuriousBookRemovedFromMetadata()
        {
            var project  = TestProject.CreateBasicTestProject();
            var metadata = (GlyssenDblTextMetadata)ReflectionHelper.GetField(project, "m_metadata");

            metadata.AvailableBooks.Insert(0, new Book {
                Code = "GEN"
            });
            metadata.AvailableBooks.Insert(0, new Book {
                Code = "PSA"
            });
            metadata.AvailableBooks.Insert(0, new Book {
                Code = "MAT"
            });
            project.Save();

            project = TestProject.LoadExistingTestProject();

            Assert.AreEqual("JUD", project.AvailableBooks.Single().Code);
        }
Esempio n. 13
0
        public void CreateGlyssenScript_SingleChapterBook_ProcessedCorrectly()
        {
            var project       = TestProject.CreateBasicTestProject();
            var glyssenScript = ScriptExporter.CreateGlyssenScript(project, s_judChapter1.Union(s_revChapter1));

            Assert.That(glyssenScript.Script.Books[0].Id, Is.EqualTo("JUD"));
            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Id, Is.EqualTo(1));
            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Blocks[0].Character, Is.EqualTo("narrator (JUD)"));
            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Blocks[0].VernacularText.Text, Is.EqualTo("A Jude, wa da wok fa Jedus Christ. A James broda."));
            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Blocks[0].VernacularText.BlockElements.Count, Is.EqualTo(2));
            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Blocks[0].VernacularText.BlockElements.First(), Is.TypeOf(typeof(Verse)));
            Assert.That(((Verse)glyssenScript.Script.Books[0].Chapters[0].Blocks[0].VernacularText.BlockElements.First()).Number, Is.EqualTo("1"));
            Assert.That(glyssenScript.Script.Books[0].Chapters[0].Blocks[0].VernacularText.BlockElements.Skip(1).Single(), Is.TypeOf(typeof(ScriptText)));
            Assert.That(((ScriptText)glyssenScript.Script.Books[0].Chapters[0].Blocks[0].VernacularText.BlockElements.Skip(1).Single()).Content, Is.EqualTo("A Jude, wa da wok fa Jedus Christ. A James broda."));

            Assert.That(glyssenScript.Script.Books[1].Id, Is.EqualTo("REV"));
            Assert.That(glyssenScript.Script.Books[1].Chapters[0].Id, Is.EqualTo(1));
            Assert.That(glyssenScript.Script.Books[1].Chapters[0].Blocks[0].Character, Is.EqualTo("narrator (REV)"));
            Assert.That(glyssenScript.Script.Books[1].Chapters[0].Blocks[0].VernacularText.Text, Is.EqualTo("Dis book laan we bout de ting dem wa Jedus Christ show ta dem people wa da do God wok. God fus show Jedus dem ting yah, so dat Jedus kin mek dem wa da do e wok know dem ting wa gwine happen tareckly. Christ sen e angel ta John wa beena wok fa um, an e mek de angel show John dem ting yah. "));
            Assert.That(glyssenScript.Script.Books[1].Chapters[0].Blocks[0].VernacularText.BlockElements.Count, Is.EqualTo(5));
        }
Esempio n. 14
0
        public void CreateGlyssenScript_Jude_ParagraphStartInfoIsExported()
        {
            var project       = TestProject.CreateBasicTestProject();
            var exporter      = new ProjectExporter(project);
            var glyssenScript = ScriptExporter.CreateGlyssenScript(project, exporter.GetExportData(getBlockElements: true));

            string prevVerse = null;

            foreach (var block in glyssenScript.Script.Books[0].Chapters[1].Blocks)
            {
                if (block.Verse != prevVerse)
                {
                    switch (block.Verse)
                    {
                    // These are the verses that correspond to paragraph breaks in TestJUD.xml
                    case "1":
                    case "2":
                    case "3":
                    case "5":
                    case "8":
                    case "14":
                    case "16":
                    case "17":
                    case "24":
                        Assert.IsTrue(block.IsParagraphStart);
                        break;

                    default:
                        Assert.IsFalse(block.IsParagraphStart);
                        break;
                    }
                    prevVerse = block.Verse;
                }
                else
                {
                    // The first verse in Jude (in TestJUD.xml) is broken into to two paragraphs
                    Assert.AreEqual(block.Verse == "1", block.IsParagraphStart, $"Block should not have been a paragraph start: {block.Verse}");
                }
            }
        }
Esempio n. 15
0
        public void UnusedActors_UsedActorAndInactiveActor_ReturnsEmptyEnumeration()
        {
            var project = TestProject.CreateBasicTestProject();

            var actor1 = new Glyssen.VoiceActor.VoiceActor {
                Id = 0
            };

            project.VoiceActorList.AllActors.Add(actor1);
            var actor2 = new Glyssen.VoiceActor.VoiceActor {
                Id = 1, IsInactive = true
            };

            project.VoiceActorList.AllActors.Add(actor2);
            var group = new CharacterGroup(project);

            group.AssignVoiceActor(actor1.Id);
            project.CharacterGroupList.CharacterGroups.Add(group);

            Assert.True(project.CharacterGroupList.AnyVoiceActorAssigned());
            Assert.False(project.UnusedActors.Any());
        }
Esempio n. 16
0
        public void UnusedActors_UnusedActor_ReturnsCorrectActor()
        {
            var project = TestProject.CreateBasicTestProject();

            var actor1 = new Glyssen.VoiceActor.VoiceActor {
                Id = 0
            };

            project.VoiceActorList.AllActors.Add(actor1);
            var actor2 = new Glyssen.VoiceActor.VoiceActor {
                Id = 1
            };

            project.VoiceActorList.AllActors.Add(actor2);
            var group = new CharacterGroup(project);

            group.AssignVoiceActor(actor1.Id);
            project.CharacterGroupList.CharacterGroups.Add(group);

            Assert.True(project.CharacterGroupList.AnyVoiceActorAssigned());
            Assert.AreEqual(actor2, project.UnusedActors.Single());
        }
Esempio n. 17
0
        public void CreateGlyssenScript_HasPrimaryAndSecondaryReferenceTexts_ProcessedCorrectly()
        {
            var project = TestProject.CreateBasicTestProject();

            project.ReferenceText = ReferenceText.GetStandardReferenceText(ReferenceTextType.Russian);
            var glyssenScript = ScriptExporter.CreateGlyssenScript(project, s_lukChapter1);

            var block1 = glyssenScript.Script.Books[0].Chapters[0].Blocks[0];

            Assert.That(block1.VernacularText.BlockElements.Count, Is.EqualTo(2));

            var primaryRefText = block1.ReferenceTexts[0];

            Assert.That(primaryRefText.BlockElements.Count, Is.EqualTo(4));
            Assert.That(primaryRefText.BlockElements.First(), Is.TypeOf(typeof(Verse)));
            Assert.That(((Verse)primaryRefText.BlockElements.First()).Number, Is.EqualTo("1"));
            Assert.That(primaryRefText.BlockElements.Skip(1).First(), Is.TypeOf(typeof(ScriptText)));
            Assert.That(((ScriptText)primaryRefText.BlockElements.Skip(1).First()).Content, Is.EqualTo("Bikman Tiofilus, "));
            Assert.That(primaryRefText.BlockElements.Skip(2).First(), Is.TypeOf(typeof(Verse)));
            Assert.That(((Verse)primaryRefText.BlockElements.Skip(2).First()).Number, Is.EqualTo("2"));
            Assert.That(primaryRefText.BlockElements.Skip(3).First(), Is.TypeOf(typeof(ScriptText)));
            Assert.That(((ScriptText)primaryRefText.BlockElements.Skip(3).First()).Content, Is.EqualTo("Ol i bihainim tok bilong"));
            Assert.That(primaryRefText.Text, Is.EqualTo("Bikman Tiofilus, Ol i bihainim tok bilong"));

            var secondaryRefText = block1.ReferenceTexts[1];

            Assert.That(secondaryRefText.BlockElements.Count, Is.EqualTo(4));
            Assert.That(secondaryRefText.BlockElements.First(), Is.TypeOf(typeof(Verse)));
            Assert.That(((Verse)secondaryRefText.BlockElements.First()).Number, Is.EqualTo("1"));
            Assert.That(secondaryRefText.BlockElements.Skip(1).First(), Is.TypeOf(typeof(ScriptText)));
            Assert.That(((ScriptText)secondaryRefText.BlockElements.Skip(1).First()).Content, Is.EqualTo("Many have undertaken to set "));
            Assert.That(secondaryRefText.BlockElements.Skip(2).First(), Is.TypeOf(typeof(Verse)));
            Assert.That(((Verse)secondaryRefText.BlockElements.Skip(2).First()).Number, Is.EqualTo("2"));
            Assert.That(secondaryRefText.BlockElements.Skip(3).First(), Is.TypeOf(typeof(ScriptText)));
            Assert.That(((ScriptText)secondaryRefText.BlockElements.Skip(3).First()).Content, Is.EqualTo("just as they were handed"));
            Assert.That(secondaryRefText.Text, Is.EqualTo("Many have undertaken to set just as they were handed"));
        }