コード例 #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));
        }
コード例 #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));
        }
コード例 #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));
        }
コード例 #4
0
ファイル: ProjectTests.cs プロジェクト: irahopkinson/Glyssen
        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);
        }
コード例 #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);
        }
コード例 #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);
        }
コード例 #7
0
ファイル: ProjectTests.cs プロジェクト: irahopkinson/Glyssen
        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);
        }
コード例 #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);
        }
コード例 #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);
        }
コード例 #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);
        }
コード例 #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));
        }
コード例 #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);
        }
コード例 #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));
        }
コード例 #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}");
                }
            }
        }
コード例 #15
0
ファイル: ProjectTests.cs プロジェクト: irahopkinson/Glyssen
        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());
        }
コード例 #16
0
ファイル: ProjectTests.cs プロジェクト: irahopkinson/Glyssen
        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());
        }
コード例 #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"));
        }