def test_basic_tempo(self): tempo = Tempo() self.assertEquals(tempo.bpm, 120) self.assertEquals(tempo.tpb, 24) self.assertEquals(tempo.tpm, 2880) tempo.reset(bpm=150) self.assertEquals(tempo.bpm, 150) self.assertEquals(tempo.tpb, 24) self.assertEquals(tempo.tpm, 3600) tempo.reset(tpb=48) self.assertEquals(tempo.bpm, 150) self.assertEquals(tempo.tpb, 48) self.assertEquals(tempo.tpm, 7200) tempo.reset(tpb=24, bpm=60) self.assertEquals(tempo.bpm, 60) self.assertEquals(tempo.tpb, 24) self.assertEquals(tempo.tpm, 1440) tempo.reset(tpm=14400) self.assertEquals(tempo.bpm, 600) self.assertEquals(tempo.tpb, 24) self.assertEquals(tempo.tpm, 14400)
def test_invalidDivisionToTicks(self): tempo = Tempo() meter = Meter(4, 4, tempo=tempo) self.assertRaises(ValueError, meter.dtt, 1, 192) self.assertRaises(ValueError, meter.dtt, 1, 25) self.assertRaises(ValueError, meter.dtt, 1, 7) tempo.reset(tpb=192) meter.resetTempo(tempo) meter.dtt(1, 192) tempo.reset(tpb=25) meter.resetTempo(tempo) meter.dtt(1, 25) tempo.reset(tpb=24 * 7) meter.resetTempo(tempo) meter.dtt(1, 7) meter.strict = False tempo.reset(tpb=24) meter.resetTempo(tempo) meter.dtt(1, 192) meter.dtt(1, 25) meter.dtt(1, 7) errors = self.flushLoggedErrors() self.assertEquals(len(errors), 3)