class TestMeasureControl(unittest.TestCase): def setUp(self): self.staff = Staff() self.staff.addMeasure(Measure(1)) self.staff.addMeasure(Measure(2)) self.staff.addMeasure(Measure(3)) self.staff.addMeasure(Measure(4)) self.np = NotePosition(measureIndex = 2) def testGetItemAtPosition(self): measure = self.staff[self.np.measureIndex] self.assertEqual(len(measure), 3) def testSetSectionEnd(self): measure = self.staff[self.np.measureIndex] self.assertFalse(measure.isSectionEnd()) self.staff.setSectionEnd(self.np, True) self.assertTrue(measure.isSectionEnd()) self.staff.setSectionEnd(self.np, False) self.assertFalse(measure.isSectionEnd()) def testIsSectionEnd(self): self.assertFalse(self.staff.isSectionEnd()) self.staff.setSectionEnd(self.np, True) self.assertFalse(self.staff.isSectionEnd()) self.staff.setSectionEnd(self.np, False) self.assertFalse(self.staff.isSectionEnd()) endPos = NotePosition(measureIndex = 3) self.staff.setSectionEnd(endPos, True) self.assertTrue(self.staff.isSectionEnd()) self.staff.setSectionEnd(endPos, False) self.assertFalse(self.staff.isSectionEnd()) def testIsConsistent(self): self.assertTrue(self.staff.isConsistent()) self.staff.setSectionEnd(self.np, True) self.assertFalse(self.staff.isConsistent()) self.staff.setSectionEnd(self.np, False) self.assertTrue(self.staff.isConsistent()) endPos = NotePosition(measureIndex = 3) self.staff.setSectionEnd(endPos, True) self.assertTrue(self.staff.isConsistent()) self.staff.setSectionEnd(endPos, False) self.assertTrue(self.staff.isConsistent()) def testCopyPasteWithoutDecoration(self): measure = self.staff[self.np.measureIndex] measure.setRepeatStart(True) copied = self.staff.copyMeasure(self.np) newPos = NotePosition(measureIndex = 0) self.assertFalse(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 1) self.staff.pasteMeasure(newPos, copied, False) self.assertFalse(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 3) def testCopyPasteWithDecoration(self): measure = self.staff[self.np.measureIndex] measure.setRepeatStart(True) copied = self.staff.copyMeasure(self.np) newPos = NotePosition(measureIndex = 0) self.assertFalse(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 1) self.staff.pasteMeasure(newPos, copied, True) self.assertTrue(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 3) def testLineIsVisible(self): self.staff.addNote(NotePosition(measureIndex = 0, noteTime = 0, drumIndex = 0), "x") self.staff.addNote(NotePosition(measureIndex = 1, noteTime = 0, drumIndex = 2), "x") self.staff.addNote(NotePosition(measureIndex = 2, noteTime = 0, drumIndex = 4), "x") self.assertTrue(self.staff.lineIsVisible(0)) self.assertFalse(self.staff.lineIsVisible(1)) self.assertTrue(self.staff.lineIsVisible(2)) self.assertFalse(self.staff.lineIsVisible(3)) self.assertTrue(self.staff.lineIsVisible(4)) self.assertFalse(self.staff.lineIsVisible(5))
class TestMeasureControl(unittest.TestCase): def setUp(self): self.staff = Staff() self.staff.addMeasure(Measure(1)) self.staff.addMeasure(Measure(2)) self.staff.addMeasure(Measure(3)) self.staff.addMeasure(Measure(4)) self.np = NotePosition(measureIndex=2) def testGetItemAtPosition(self): measure = self.staff[self.np.measureIndex] self.assertEqual(len(measure), 3) def testSetSectionEnd(self): measure = self.staff[self.np.measureIndex] self.assertFalse(measure.isSectionEnd()) self.staff.setSectionEnd(self.np, True) self.assertTrue(measure.isSectionEnd()) self.staff.setSectionEnd(self.np, False) self.assertFalse(measure.isSectionEnd()) def testIsSectionEnd(self): self.assertFalse(self.staff.isSectionEnd()) self.staff.setSectionEnd(self.np, True) self.assertFalse(self.staff.isSectionEnd()) self.staff.setSectionEnd(self.np, False) self.assertFalse(self.staff.isSectionEnd()) endPos = NotePosition(measureIndex=3) self.staff.setSectionEnd(endPos, True) self.assertTrue(self.staff.isSectionEnd()) self.staff.setSectionEnd(endPos, False) self.assertFalse(self.staff.isSectionEnd()) def testIsConsistent(self): self.assertTrue(self.staff.isConsistent()) self.staff.setSectionEnd(self.np, True) self.assertFalse(self.staff.isConsistent()) self.staff.setSectionEnd(self.np, False) self.assertTrue(self.staff.isConsistent()) endPos = NotePosition(measureIndex=3) self.staff.setSectionEnd(endPos, True) self.assertTrue(self.staff.isConsistent()) self.staff.setSectionEnd(endPos, False) self.assertTrue(self.staff.isConsistent()) def testCopyPasteWithoutDecoration(self): measure = self.staff[self.np.measureIndex] measure.setRepeatStart(True) copied = self.staff.copyMeasure(self.np) newPos = NotePosition(measureIndex=0) self.assertFalse(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 1) self.staff.pasteMeasure(newPos, copied, False) self.assertFalse(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 3) def testCopyPasteWithDecoration(self): measure = self.staff[self.np.measureIndex] measure.setRepeatStart(True) copied = self.staff.copyMeasure(self.np) newPos = NotePosition(measureIndex=0) self.assertFalse(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 1) self.staff.pasteMeasure(newPos, copied, True) self.assertTrue(self.staff[0].isRepeatStart()) self.assertEqual(len(self.staff[0]), 3) def testLineIsVisible(self): self.staff.addNote( NotePosition(measureIndex=0, noteTime=0, drumIndex=0), "x") self.staff.addNote( NotePosition(measureIndex=1, noteTime=0, drumIndex=2), "x") self.staff.addNote( NotePosition(measureIndex=2, noteTime=0, drumIndex=4), "x") self.assertTrue(self.staff.lineIsVisible(0)) self.assertFalse(self.staff.lineIsVisible(1)) self.assertTrue(self.staff.lineIsVisible(2)) self.assertFalse(self.staff.lineIsVisible(3)) self.assertTrue(self.staff.lineIsVisible(4)) self.assertFalse(self.staff.lineIsVisible(5))