class TestCompoundSticking(unittest.TestCase): def setUp(self): self.kit = DrumKitFactory.getNamedDefaultKit() self.lilykit = lilypond.LilyKit(self.kit) self.indenter = lilypond.LilyIndenter() self.output = StringIO.StringIO() self.indenter.setHandle(self.output) self.measure = Measure() counter = _REG.getCounterByName("Triplets") mc = MeasureCount() mc.addSimpleBeats(counter, 4) self.measure.setBeatCount(mc) def testCompoundSticking(self): self.measure.setAbove(0, "L") self.measure.setAbove(1, "R") self.measure.setAbove(2, "L") lilyMeasure = lilypond.LilyMeasure(self.measure, self.lilykit) lilyMeasure.sticking(self.indenter) output = self.output.getvalue().strip() self.assertEqual( output, r'\new Lyrics \with { alignAboveContext = #"main" } \lyricmode { \times 2/3 { L8 R8 L8 } " "4 " "4 " "4 }' ) def testCompoundStickingAtEndOfMeasure(self): self.measure.setAbove(9, "L") self.measure.setAbove(10, "R") self.measure.setAbove(11, "L") lilyMeasure = lilypond.LilyMeasure(self.measure, self.lilykit) lilyMeasure.sticking(self.indenter) output = self.output.getvalue().strip() self.assertEqual( output, r'\new Lyrics \with { alignAboveContext = #"main" } \lyricmode { " "4 " "4 " "4 \times 2/3 { L8 R8 L8 } }' )
class TestWriteMeasure(unittest.TestCase): reg = CounterRegistry() def setUp(self): self.measure = Measure(16) counter = self.reg.getCounterByName("16ths") mc = MeasureCount.MeasureCount() mc.addSimpleBeats(counter, 4) self.measure.setBeatCount(mc) def get_output(self): handle = StringIO() indenter = fileUtils.Indenter(handle) dbfsv1.MeasureStructureV1().write(self.measure, indenter) return handle.getvalue().splitlines() def testWriteEmpty(self): output = self.get_output() self.assertEqual(output, ['START_MEASURE', ' START_MEASURE_COUNT', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' END_MEASURE_COUNT', ' STARTBARLINE 1', ' ENDBARLINE 1', ' REPEAT_COUNT 1', ' SHOWABOVE False', ' SHOWBELOW False', 'END_MEASURE']) def testWriteSimple(self): self.measure.addNote(NotePosition(noteTime = 0, drumIndex = 0), "a") self.measure.addNote(NotePosition(noteTime = 1, drumIndex = 1), "b") self.measure.addNote(NotePosition(noteTime = 2, drumIndex = 0), "c") self.measure.addNote(NotePosition(noteTime = 3, drumIndex = 1), "d") self.measure.addNote(NotePosition(noteTime = 4, drumIndex = 0), "e") self.measure.addNote(NotePosition(noteTime = 5, drumIndex = 1), "f") self.measure.addNote(NotePosition(noteTime = 6, drumIndex = 0), "g") self.measure.addNote(NotePosition(noteTime = 7, drumIndex = 1), "h") self.measure.addNote(NotePosition(noteTime = 8, drumIndex = 0), "i") self.measure.addNote(NotePosition(noteTime = 9, drumIndex = 1), "j") self.measure.addNote(NotePosition(noteTime = 10, drumIndex = 0), "k") self.measure.addNote(NotePosition(noteTime = 11, drumIndex = 1), "l") self.measure.addNote(NotePosition(noteTime = 12, drumIndex = 0), "m") self.measure.addNote(NotePosition(noteTime = 13, drumIndex = 1), "n") self.measure.addNote(NotePosition(noteTime = 14, drumIndex = 0), "o") self.measure.addNote(NotePosition(noteTime = 15, drumIndex = 1), "p") output = self.get_output() self.assertEqual(output, ['START_MEASURE', ' START_MEASURE_COUNT', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' END_MEASURE_COUNT', ' STARTBARLINE 1', ' NOTE 0,0,a', ' NOTE 1,1,b', ' NOTE 2,0,c', ' NOTE 3,1,d', ' NOTE 4,0,e', ' NOTE 5,1,f', ' NOTE 6,0,g', ' NOTE 7,1,h', ' NOTE 8,0,i', ' NOTE 9,1,j', ' NOTE 10,0,k', ' NOTE 11,1,l', ' NOTE 12,0,m', ' NOTE 13,1,n', ' NOTE 14,0,o', ' NOTE 15,1,p', ' ENDBARLINE 1', ' REPEAT_COUNT 1', ' SHOWABOVE False', ' SHOWBELOW False', 'END_MEASURE']) def testWriteDecorations(self): self.measure.setLineBreak(True) self.measure.setSectionEnd(True) self.measure.setRepeatEnd(True) self.measure.setRepeatStart(True) self.measure.alternateText = "xxx" self.measure.repeatCount = 10 self.measure.simileDistance = 2 self.measure.simileIndex = 1 self.measure.showAbove = True self.measure.setAbove(1, "R") output = self.get_output() self.assertEqual(output, ['START_MEASURE', ' START_MEASURE_COUNT', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' END_MEASURE_COUNT', ' STARTBARLINE 3', ' ENDBARLINE 29', ' REPEAT_COUNT 10', ' ALTERNATE xxx', ' SIMILE 2', ' SIMINDEX 1', ' SHOWABOVE True', ' ABOVETEXT IFIgICAgICAgICAgICAgIA==', ' SHOWBELOW False', 'END_MEASURE'])
class TestWriteMeasure(unittest.TestCase): reg = CounterRegistry() def setUp(self): self.measure = Measure(16) counter = self.reg.getCounterByName("16ths") mc = MeasureCount.MeasureCount() mc.addSimpleBeats(counter, 4) self.measure.setBeatCount(mc) def get_output(self): handle = StringIO() indenter = fileUtils.Indenter(handle) dbfsv1.MeasureStructureV1().write(self.measure, indenter) return handle.getvalue().splitlines() def testWriteEmpty(self): output = self.get_output() self.assertEqual(output, ['START_MEASURE', ' START_MEASURE_COUNT', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' END_MEASURE_COUNT', ' STARTBARLINE 1', ' ENDBARLINE 1', ' REPEAT_COUNT 1', ' SHOWABOVE False', ' SHOWBELOW False', 'END_MEASURE']) def testWriteSimple(self): self.measure.addNote(NotePosition(noteTime=0, drumIndex=0), "a") self.measure.addNote(NotePosition(noteTime=1, drumIndex=1), "b") self.measure.addNote(NotePosition(noteTime=2, drumIndex=0), "c") self.measure.addNote(NotePosition(noteTime=3, drumIndex=1), "d") self.measure.addNote(NotePosition(noteTime=4, drumIndex=0), "e") self.measure.addNote(NotePosition(noteTime=5, drumIndex=1), "f") self.measure.addNote(NotePosition(noteTime=6, drumIndex=0), "g") self.measure.addNote(NotePosition(noteTime=7, drumIndex=1), "h") self.measure.addNote(NotePosition(noteTime=8, drumIndex=0), "i") self.measure.addNote(NotePosition(noteTime=9, drumIndex=1), "j") self.measure.addNote(NotePosition(noteTime=10, drumIndex=0), "k") self.measure.addNote(NotePosition(noteTime=11, drumIndex=1), "l") self.measure.addNote(NotePosition(noteTime=12, drumIndex=0), "m") self.measure.addNote(NotePosition(noteTime=13, drumIndex=1), "n") self.measure.addNote(NotePosition(noteTime=14, drumIndex=0), "o") self.measure.addNote(NotePosition(noteTime=15, drumIndex=1), "p") output = self.get_output() self.assertEqual(output, ['START_MEASURE', ' START_MEASURE_COUNT', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' END_MEASURE_COUNT', ' STARTBARLINE 1', ' NOTE 0,0,a', ' NOTE 1,1,b', ' NOTE 2,0,c', ' NOTE 3,1,d', ' NOTE 4,0,e', ' NOTE 5,1,f', ' NOTE 6,0,g', ' NOTE 7,1,h', ' NOTE 8,0,i', ' NOTE 9,1,j', ' NOTE 10,0,k', ' NOTE 11,1,l', ' NOTE 12,0,m', ' NOTE 13,1,n', ' NOTE 14,0,o', ' NOTE 15,1,p', ' ENDBARLINE 1', ' REPEAT_COUNT 1', ' SHOWABOVE False', ' SHOWBELOW False', 'END_MEASURE']) def testWriteDecorations(self): self.measure.setLineBreak(True) self.measure.setSectionEnd(True) self.measure.setRepeatEnd(True) self.measure.setRepeatStart(True) self.measure.alternateText = "xxx" self.measure.repeatCount = 10 self.measure.simileDistance = 2 self.measure.simileIndex = 1 self.measure.showAbove = True self.measure.setAbove(1, "R") output = self.get_output() self.assertEqual(output, ['START_MEASURE', ' START_MEASURE_COUNT', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' BEAT_START', ' NUM_TICKS 4', ' COUNT |^e+a|', ' BEAT_END', ' END_MEASURE_COUNT', ' STARTBARLINE 3', ' ENDBARLINE 29', ' REPEAT_COUNT 10', ' ALTERNATE xxx', ' SIMILE 2', ' SIMINDEX 1', ' SHOWABOVE True', ' ABOVETEXT IFIgICAgICAgICAgICAgIA==', ' SHOWBELOW False', 'END_MEASURE'])