Chris@3
|
1
|
Chris@3
|
2 import signal_processing as sp
|
Chris@3
|
3 import numpy as np
|
Chris@3
|
4
|
Chris@3
|
5 def test_rms():
|
Chris@3
|
6 assert sp.rms([1,1,1]) == 1.0
|
Chris@3
|
7 assert sp.rms([0.5,-0.5]) == 0.5
|
Chris@3
|
8 assert sp.rms([0,0,0,0]) == 0.0
|
Chris@3
|
9 assert sp.rms([5]) == 5.0
|
Chris@3
|
10 assert abs(sp.rms([1,2,-2]) - np.sqrt(3.0)) < 0.000001
|
Chris@3
|
11
|
Chris@3
|
12 def test_autocorrelation():
|
Chris@3
|
13 samples = [1,0,0,1,0,0,1,0,0,1,0,0,1,0,0]
|
Chris@3
|
14 acf = sp.autocorrelation(samples)
|
Chris@3
|
15 assert len(acf) == len(samples)
|
Chris@3
|
16 assert np.argmax(acf) == 0
|
Chris@3
|
17 assert acf[3] > acf[2]
|
Chris@3
|
18 assert acf[3] > acf[4]
|
Chris@3
|
19
|
Chris@3
|
20 def test_bpm_lag_conversions():
|
Chris@3
|
21 assert sp.bpm_to_lag(60, 1) == 1
|
Chris@3
|
22 assert sp.bpm_to_lag(60, 120) == 120
|
Chris@3
|
23 assert sp.bpm_to_lag(30, 120) == 240
|
Chris@3
|
24 assert sp.bpm_to_lag(120, 1) == 0 # should be an integer
|
Chris@3
|
25 assert sp.lag_to_bpm(120, 120) == 60.0
|
Chris@3
|
26 assert sp.lag_to_bpm(60, 120) == 120.0
|
Chris@3
|
27 assert sp.lag_to_bpm(80, 6) == 4.5
|