Chris@3: Chris@3: import signal_processing as sp Chris@3: import numpy as np Chris@3: Chris@3: def test_rms(): Chris@3: assert sp.rms([1,1,1]) == 1.0 Chris@3: assert sp.rms([0.5,-0.5]) == 0.5 Chris@3: assert sp.rms([0,0,0,0]) == 0.0 Chris@3: assert sp.rms([5]) == 5.0 Chris@3: assert abs(sp.rms([1,2,-2]) - np.sqrt(3.0)) < 0.000001 Chris@3: Chris@3: def test_autocorrelation(): Chris@3: samples = [1,0,0,1,0,0,1,0,0,1,0,0,1,0,0] Chris@3: acf = sp.autocorrelation(samples) Chris@3: assert len(acf) == len(samples) Chris@3: assert np.argmax(acf) == 0 Chris@3: assert acf[3] > acf[2] Chris@3: assert acf[3] > acf[4] Chris@3: Chris@3: def test_bpm_lag_conversions(): Chris@3: assert sp.bpm_to_lag(60, 1) == 1 Chris@3: assert sp.bpm_to_lag(60, 120) == 120 Chris@3: assert sp.bpm_to_lag(30, 120) == 240 Chris@3: assert sp.bpm_to_lag(120, 1) == 0 # should be an integer Chris@3: assert sp.lag_to_bpm(120, 120) == 60.0 Chris@3: assert sp.lag_to_bpm(60, 120) == 120.0 Chris@3: assert sp.lag_to_bpm(80, 6) == 4.5