Ejemplo n.º 1
0
    def testInvalidParam(self):
        # startTime later than endTime:
        startTimes = [35, 11]
        endTimes = [30, 60]
        self.assertConfigureFails(Slicer(), {
            'startTimes': startTimes,
            'endTimes': endTimes
        })

        self.assertConfigureFails(Slicer(), {'timeUnits': 'unknown'})
Ejemplo n.º 2
0
    def slice(self, startTimes, endTimes):
        nSlices = len(startTimes)
        if nSlices != len(endTimes):
            print("Test cannot be computed")
            exit(1)
        input = range(max(endTimes))

        # expected values:
        expected = []
        orderedTimes = []
        for i in range(nSlices):
            time = (startTimes[i], endTimes[i])
            orderedTimes.append(time)
        orderedTimes = sorted(orderedTimes, lambda x, y: x[0] - y[0])

        for i in range(nSlices):
            expected.append(input[orderedTimes[i][0]:orderedTimes[i][1]])

        gen = VectorInput(input)
        slicer = Slicer(startTimes=startTimes,
                        endTimes=endTimes,
                        timeUnits="samples")
        pool = Pool()
        gen.data >> slicer.audio
        slicer.frame >> (pool, "data")
        run(gen)
        result = pool['data']

        self.assertEqual(len(result), len(expected))
        for i in range(nSlices):
            self.assertEqualVector(result[i], expected[i])
Ejemplo n.º 3
0
 def Overflow(self):
     self.assertConfigureFails(
         Slicer(), {
             'sampleRate': 44100,
             'startTimes': [2147483649.0],
             'endTimes': [2147483649.5],
             'timeUnits': 'seconds'
         })
Ejemplo n.º 4
0
 def testOneSample(self):
     startTimes = [0]
     endTimes = [1.0 / 44100.0]
     gen = VectorInput([1])
     slicer = Slicer(startTimes=startTimes,
                     endTimes=endTimes,
                     timeUnits="seconds")
     pool = Pool()
     gen.data >> slicer.audio
     slicer.frame >> (pool, "data")
     run(gen)
     self.assertEqualVector(pool['data'], [1])
Ejemplo n.º 5
0
 def testEmpty(self):
     startTimes = [0, 11]
     endTimes = [30, 60]
     gen = VectorInput([])
     slicer = Slicer(startTimes=startTimes,
                     endTimes=endTimes,
                     timeUnits="samples")
     pool = Pool()
     gen.data >> slicer.audio
     slicer.frame >> (pool, "data")
     run(gen)
     self.assertEqualVector(pool.descriptorNames(), [])
Ejemplo n.º 6
0
 def testEndTimePastEof(self):
     # no slices if times are beyond the input length:
     startTimes = [0]
     endTimes = [100]
     gen = VectorInput([1])
     slicer = Slicer(startTimes=startTimes,
                     endTimes=endTimes,
                     timeUnits="seconds")
     pool = Pool()
     gen.data >> slicer.audio
     slicer.frame >> (pool, "data")
     run(gen)
     self.assertEqualVector(pool.descriptorNames(), [])
Ejemplo n.º 7
0
 def testVeryLargeStartAndEndTimes(self):
     # no slices if times are beyond the input length:
     startTimes = [100]
     endTimes = [101]
     gen = VectorInput([1] * 50)
     slicer = Slicer(startTimes=startTimes,
                     endTimes=endTimes,
                     timeUnits="samples")
     pool = Pool()
     gen.data >> slicer.audio
     slicer.frame >> (pool, "data")
     run(gen)
     self.assertEqual(pool.descriptorNames(), [])