public void ConvertAbsolutePitchTest() { Sequence aPitchSeq = SequenceHandler.CreateNewSequence("Test", "Absolute Pitch", "noPage", "AbsolutePitch", 1); Panel aPitchPanel = MeiImport.ImportDocument("..\\..\\files\\tests\\AbsolutePitch.xml").Root.Descendants <Panel>().FirstOrDefault(); SequenceHandler.FlattenMeiToSequence(aPitchPanel, aPitchSeq); Controller.BuildSequence(aPitchSeq); SequenceConversion.ConvertAbsolutePitch(aPitchSeq); foreach (Model.Note note in aPitchSeq.ObjectsInSequence.Where(item => item is Model.Note)) { Assert.IsNotNull(note.WrittenPitch); mei.Note corresp = (mei.Note)aPitchPanel.Descendants().FirstOrDefault(element => element.GetId() == note.ID); if (corresp.HasPnum()) { if (Int32.TryParse(corresp.GetPnumValue(), out int pnum)) { Assert.AreEqual(pnum, note.PitchWithAccid); } else { throw new ArgumentNullException("Pnum could not be parsed!"); } } } }
/// <summary> /// Builds each sequence in list and calculates logical parameters /// </summary> /// <param name="_sequences">List of unconverted sequences</param> private void ConvertSequences(List <Sequence> _sequences) { foreach (Sequence seq in _sequences) { Controller.BuildSequence(seq); SequenceConversion.ConvertBrevePosition(seq); SequenceConversion.ConvertAbsolutePitch(seq); } }