Exemple #1
0
 def testComplexWrite(self):
     counter1 = Counter.Counter("e+a")
     counter2 = Counter.Counter("+a")
     counter3 = Counter.Counter("+")
     counter4 = Counter.Counter("e+a")
     count = MeasureCount.MeasureCount()
     count.addBeats(Beat.Beat(counter1), 1)
     count.addBeats(Beat.Beat(counter2), 1)
     count.addBeats(Beat.Beat(counter3), 1)
     count.addBeats(Beat.Beat(counter4, 2), 1)
     handle = StringIO()
     indenter = fileUtils.Indenter(handle)
     dbfsv1.MeasureCountStructureV1().write(count, indenter)
     output = handle.getvalue().splitlines()
     self.assertEqual(output,
                      ["START_MEASURE_COUNT",
                       "  BEAT_START",
                       "    NUM_TICKS 4",
                       "    COUNT |^e+a|",
                       "  BEAT_END",
                       "  BEAT_START",
                       "    NUM_TICKS 3",
                       "    COUNT |^+a|",
                       "  BEAT_END",
                       "  BEAT_START",
                       "    NUM_TICKS 2",
                       "    COUNT |^+|",
                       "  BEAT_END",
                       "  BEAT_START",
                       "    NUM_TICKS 2",
                       "    COUNT |^e+a|",
                       "  BEAT_END",
                       "END_MEASURE_COUNT"])
Exemple #2
0
 def testNineEight(self):
     count = MeasureCount.makeSimpleCount(self.eighths, 4)
     count.addBeats(Beat.Beat(self.eighths, 1), 1)
     self.assertEqual(count.timeSig(), (9, 8))
     count = MeasureCount.makeSimpleCount(self.sixteenths, 4)
     count.addBeats(Beat.Beat(self.sixteenths, 2), 1)
     self.assertEqual(count.timeSig(), (9, 8))
Exemple #3
0
class TestPartialBeat(unittest.TestCase):
    beat = Beat.Beat(Counter.Counter(Counter.BEAT_COUNT + "e+a"), 2)

    def testStr(self):
        self.assertEqual(str(self.beat), "^e+a")

    def testTicksPerBeat(self):
        self.assertEqual(self.beat.ticksPerBeat, 4)

    def testNumTicks(self):
        self.assertEqual(self.beat.numTicks, 2)

    def testNumBeats(self):
        self.assertEqual(self.beat.numBeats(), 0.5)

    def testIter(self):
        count = list(self.beat)
        self.assertEqual(count, ["^", "e"])

    def testIterTicks(self):
        ticks = list(self.beat.iterTicks())
        self.assertEqual(ticks, [0, 1])

    def testCount(self):
        count = list(self.beat.count(2))
        self.assertEqual(count, ["2", "e"])

    def testWrite(self):
        handle = StringIO()
        indenter = fileUtils.Indenter(handle)
        self.beat.write(indenter)
        output = handle.getvalue().splitlines()
        self.assertEqual(
            output,
            ["BEAT_START", "  NUM_TICKS 2", "  COUNT |^e+a|", "BEAT_END"])
Exemple #4
0
 def testWriteFullBeat(self):
     beat = Beat.Beat(Counter.Counter("e+a"))
     handle = StringIO()
     indenter = fileUtils.Indenter(handle)
     dbfsv0.BeatStructureV0().write(beat, indenter)
     output = handle.getvalue().splitlines()
     self.assertEqual(output, ["BEAT_START", "  COUNT |^e+a|", "BEAT_END"])
Exemple #5
0
class TestPartialBeat(unittest.TestCase):
    beat = Beat.Beat(Counter.Counter("e+a"), 2)

    def testStr(self):
        self.assertEqual(str(self.beat), "^e+a")

    def testTicksPerBeat(self):
        self.assertEqual(self.beat.ticksPerBeat, 4)

    def testNumTicks(self):
        self.assertEqual(self.beat.numTicks, 2)

    def testNumBeats(self):
        self.assertEqual(self.beat.numBeats(), 0.5)

    def testIter(self):
        count = list(self.beat)
        self.assertEqual(count, ["^", "e"])

    def testIterTicks(self):
        ticks = list(self.beat.iterTicks())
        self.assertEqual(ticks, [0, 1])

    def testCount(self):
        count = list(self.beat.count(2))
        self.assertEqual(count, ["2", "e"])
Exemple #6
0
class TestFullBeat(unittest.TestCase):
    beat = Beat.Beat(Counter.Counter("e+a"))

    def testStr(self):
        self.assertEqual(str(self.beat), "^e+a")

    def testTicksPerBeat(self):
        self.assertEqual(self.beat.ticksPerBeat, 4)

    def testNumTicks(self):
        self.assertEqual(self.beat.numTicks, 4)

    def testNumBeats(self):
        self.assertEqual(self.beat.numBeats(), 1.0)

    def testIter(self):
        count = list(self.beat)
        self.assertEqual(count, ["^", "e", "+", "a"])

    def testIterTicks(self):
        ticks = list(self.beat.iterTicks())
        self.assertEqual(ticks, [0, 1, 2, 3])

    def testCount(self):
        count = list(self.beat.count(2))
        self.assertEqual(count, ["2", "e", "+", "a"])
Exemple #7
0
 def testSeventeenSixteen(self):
     count = MeasureCount.makeSimpleCount(self.sixteenths, 4)
     count.addBeats(Beat.Beat(self.sixteenths, 1), 1)
     self.assertEqual(count.timeSig(), (17, 16))
Exemple #8
0
class TestComplex(unittest.TestCase):
    counter1 = Counter.Counter("e+a")
    counter2 = Counter.Counter("+a")
    counter3 = Counter.Counter("+")
    counter4 = Counter.Counter("e+a")
    count = MeasureCount.MeasureCount()
    count.addBeats(Beat.Beat(counter1), 1)
    count.addBeats(Beat.Beat(counter2), 1)
    count.addBeats(Beat.Beat(counter3), 1)
    count.addBeats(Beat.Beat(counter4, 2), 1)

    def testLength(self):
        self.assertEqual(len(self.count), 11)

    def testNumBeats(self):
        self.assertEqual(self.count.numBeats(), 4)

    def testIsSimple(self):
        self.assertFalse(self.count.isSimpleCount())

    def testCount(self):
        self.assertEqual(list(self.count.count()),
                         ["1", "e", "+", "a",
                          "2", "+", "a",
                          "3", "+",
                          "4", "e", ])

    def testCountString(self):
        self.assertEqual(self.count.countString(),
                         "1e+a2+a3+4e")

    def testGetItem(self):
        beat = self.count[1]
        self.assert_(isinstance(beat, Beat.Beat))
        self.assertEqual(beat.numTicks, 3)
        self.assertEqual(beat.ticksPerBeat, 3)
        self.assertRaises(IndexError, self.count.__getitem__, 4)

    def testIterTimesMs(self):
        times = list(self.count.iterTimesMs(120))
        self.assertEqual(times, [0, 30, 60, 90,
                                 120, 160, 200,
                                 240, 300,
                                 360, 390, 420])

    def testTimeSig(self):
        self.assertEqual(self.count.timeSig(), (7, 8))

    def testIterBeatTicks(self):
        ticks = list(self.count.iterBeatTicks())
        beat1 = self.count[0]
        beat2 = self.count[1]
        beat3 = self.count[2]
        beat4 = self.count[3]
        self.assertEqual(ticks,
                         [(0, beat1, 0), (0, beat1, 1),
                          (0, beat1, 2), (0, beat1, 3),
                          (1, beat2, 0), (1, beat2, 1),
                          (1, beat2, 2),
                          (2, beat3, 0), (2, beat3, 1),
                          (3, beat4, 0), (3, beat4, 1)])

    def testIterBeatTickPositions(self):
        ticks = list(self.count.iterBeatTickPositions())
        self.assertEqual(ticks, [0, 4, 7, 9])

    def testIterMidiTicks(self):
        ticks = list(self.count.iterMidiTicks())
        self.assertEqual(ticks, [0, 48, 96, 144,
                                 192, 256, 320,
                                 384, 480,
                                 576, 624, 672])

    def testIterTime(self):
        ticks = list(self.count.iterTime())
        self.assertEqual(ticks,
                         [(0, 0, 4), (0, 1, 4), (0, 2, 4), (0, 3, 4),
                          (1, 0, 3), (1, 1, 3), (1, 2, 3),
                          (2, 0, 2), (2, 1, 2),
                          (3, 0, 4), (3, 1, 4)])
class TestComplex(unittest.TestCase):
    counter1 = Counter.Counter(Counter.BEAT_COUNT + "e+a")
    counter2 = Counter.Counter(Counter.BEAT_COUNT + "+a")
    counter3 = Counter.Counter(Counter.BEAT_COUNT + "+")
    counter4 = Counter.Counter(Counter.BEAT_COUNT + "e+a")
    count = MeasureCount.MeasureCount()
    count.addBeats(Beat.Beat(counter1), 1)
    count.addBeats(Beat.Beat(counter2), 1)
    count.addBeats(Beat.Beat(counter3), 1)
    count.addBeats(Beat.Beat(counter4, 2), 1)

    def testLength(self):
        self.assertEqual(len(self.count), 11)

    def testNumBeats(self):
        self.assertEqual(self.count.numBeats(), 4)

    def testIsSimple(self):
        self.assertFalse(self.count.isSimpleCount())

    def testCount(self):
        self.assertEqual(list(self.count.count()),
                         ["1", "e", "+", "a",
                          "2", "+", "a",
                          "3", "+",
                          "4", "e", ])

    def testCountString(self):
        self.assertEqual(self.count.countString(),
                         "1e+a2+a3+4e")

    def testGetItem(self):
        beat = self.count[1]
        self.assert_(isinstance(beat, Beat.Beat))
        self.assertEqual(beat.numTicks, 3)
        self.assertEqual(beat.ticksPerBeat, 3)
        self.assertRaises(IndexError, self.count.__getitem__, 4)

    def testIterTimesMs(self):
        times = list(self.count.iterTimesMs(120))
        self.assertEqual(times, [0, 30, 60, 90,
                                 120, 160, 200,
                                 240, 300,
                                 360, 390, 420])

    def testTimeSig(self):
        self.assertEqual(self.count.timeSig(), (7, 8))

    def testIterBeatTicks(self):
        ticks = list(self.count.iterBeatTicks())
        beat1 = self.count[0]
        beat2 = self.count[1]
        beat3 = self.count[2]
        beat4 = self.count[3]
        self.assertEqual(ticks,
                         [(0, beat1, 0), (0, beat1, 1),
                          (0, beat1, 2), (0, beat1, 3),
                          (1, beat2, 0), (1, beat2, 1),
                          (1, beat2, 2),
                          (2, beat3, 0), (2, beat3, 1),
                          (3, beat4, 0), (3, beat4, 1)])

    def testIterBeatTickPositions(self):
        ticks = list(self.count.iterBeatTickPositions())
        self.assertEqual(ticks, [0, 4, 7, 9])

    def testIterMidiTicks(self):
        ticks = list(self.count.iterMidiTicks())
        self.assertEqual(ticks, [0, 24, 48, 72,
                                 96, 128, 160,
                                 192, 240,
                                 288, 312, 336])

    def testIterTime(self):
        ticks = list(self.count.iterTime())
        self.assertEqual(ticks,
                         [(0, 0, 4), (0, 1, 4), (0, 2, 4), (0, 3, 4),
                          (1, 0, 3), (1, 1, 3), (1, 2, 3),
                          (2, 0, 2), (2, 1, 2),
                          (3, 0, 4), (3, 1, 4)])

    def testWrite(self):
        handle = StringIO()
        indenter = fileUtils.Indenter(handle)
        self.count.write(indenter)
        output = handle.getvalue().splitlines()
        self.assertEqual(output,
                         ["COUNT_INFO_START",
                          "  BEAT_START",
                          "    COUNT |^e+a|",
                          "  BEAT_END",
                          "  BEAT_START",
                          "    COUNT |^+a|",
                          "  BEAT_END",
                          "  BEAT_START",
                          "    COUNT |^+|",
                          "  BEAT_END",
                          "  BEAT_START",
                          "    NUM_TICKS 2",
                          "    COUNT |^e+a|",
                          "  BEAT_END",
                          "COUNT_INFO_END"])