Example #1
0
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))
Example #2
0
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))