예제 #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"])
예제 #2
0
 def testReadSimple(self):
     data = """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"""
     handle = StringIO(data)
     iterator = fileUtils.dbFileIterator(handle)
     count = dbfsv1.MeasureCountStructureV1().read(iterator)
     self.assert_(count.isSimpleCount())
     self.assertEqual(len(count), 16)
     self.assertEqual(count.countString(), "1e+a2e+a3e+a4e+a")
예제 #3
0
 def testSimpleWrite(self):
     myCounter = Counter.Counter("e+a")
     count = MeasureCount.makeSimpleCount(myCounter, 4)
     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 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"])
예제 #4
0
 def testRepeatBeats(self):
     data = """START_MEASURE_COUNT
           REPEAT_BEATS 3
           BEAT_START
               COUNT |^e+a|
           BEAT_END
       END_MEASURE_COUNT"""
     handle = StringIO(data)
     iterator = fileUtils.dbFileIterator(handle)
     self.assertRaises(DBErrors.UnrecognisedLine,
                       dbfsv1.MeasureCountStructureV1().read, iterator)
예제 #5
0
 def testReadComplex(self):
     data = """START_MEASURE_COUNT
               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
             END_MEASURE_COUNT"""
     handle = StringIO(data)
     iterator = fileUtils.dbFileIterator(handle)
     count = dbfsv1.MeasureCountStructureV1().read(iterator)
     self.assertFalse(count.isSimpleCount())
     self.assertEqual(len(count), 11)
     self.assertEqual(count.countString(), "1e+a2+a3+4e")