public void FmotivTieGatheredThirdTest() { // проверка работы метода, который возвращает копию объекта (Fmotiv), c собранными залигованными нотами. // старт лиги, потом опять старт лиги var fmotiv = new Fmotiv("ПМТ", 0); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, Tie.Start, 2)); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, Tie.Start, 2)); try { fmotiv.TieGathered(); Assert.Fail(); } catch (Exception e) { if (e.Message != "LibiadaMusic: Tie note start after existing start note!") { Assert.Fail(); } } // после старта идет обычная нота без лиги fmotiv.NoteList.Clear(); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 2, false, 960), false, Tie.Start, 0)); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 2, false, 960), false, Tie.None, 0)); try { fmotiv.TieGathered(); Assert.Fail(); } catch (Exception e) { if (e.Message != "LibiadaMusic: Tie started but (stop)/(startstop) note NOT following!") { Assert.Fail(); } } // лига без старта var fmotiv1 = new Fmotiv("ПМТ", 0); fmotiv1.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, Tie.StartStop, 4)); fmotiv1.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, Tie.StartStop, 3)); fmotiv1.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, Tie.Stop, 1)); try { fmotiv1.TieGathered(); Assert.Fail(); } catch (Exception e) { if (e.Message != "LibiadaMusic: Tie note (stopes and starts)/(stops), without previous note start!") { Assert.Fail(); } } // в знаке лиги не {-1,0,1,2} var fmotiv2 = new Fmotiv("ПМТ", 0); fmotiv2.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, (Tie)9, 1)); try { fmotiv2.TieGathered(); Assert.Fail(); } catch (Exception e) { if (e.Message != "LibiadaMusic: Tie is not valid!") { Assert.Fail(); } } // в знаке лиги не {-1,0,1,2} var fmotiv3 = new Fmotiv("ПМТ", 0); fmotiv3.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, Tie.Start, 1)); fmotiv3.NoteList.Add(new ValueNote(new Pitch(1, 'B', 0), new Duration(1, 8, false, 480), false, Tie.Stop, 1)); try { fmotiv3.TieGathered(); Assert.Fail(); } catch (Exception e) { if (e.Message != "LibiadaMusic: Pitches of tie notes not equal!") { Assert.Fail(); } } }
public void FmotivTieGatheredSecondTest() { // проверка работы метода, который возвращает копию объекта (Fmotiv), c собранными залигованными нотами. var fmotiv = new Fmotiv("ПМТ", 0); fmotiv.NoteList.Add(new ValueNote((Pitch)null, new Duration(1, 2, false, 960), false, Tie.None, 0)); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, 2, 3, false, 320), false, Tie.Start, 2)); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, 2, 3, false, 320), false, Tie.StartStop, 4)); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, 2, 3, false, 320), false, Tie.StartStop, 3)); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 8, false, 480), false, Tie.Stop, 1)); fmotiv.NoteList.Add(new ValueNote((Pitch)null, new Duration(1, 4, false, 480), false, Tie.None, 3)); fmotiv.NoteList.Add(new ValueNote(new Pitch(1, 'A', 0), new Duration(1, 2, false, 480), false, Tie.None, 4)); Assert.AreEqual(4, fmotiv.TieGathered().NoteList.Count); Assert.AreEqual(1440, fmotiv.TieGathered().NoteList[1].Duration.Ticks); Assert.AreEqual(3, fmotiv.TieGathered().NoteList[1].Duration.Numerator); Assert.AreEqual(8, fmotiv.TieGathered().NoteList[1].Duration.Denominator); Assert.AreEqual(2, fmotiv.TieGathered().NoteList[1].Priority); }