comparison test/test_collect.py @ 117:2370b942cd32

Docs, make collect() return a dict so it can be more easily tested for shape, and rationalise some function naming etc
author Chris Cannam
date Wed, 17 Jun 2015 15:31:16 +0100
parents 7f03d095a8b1
children d3126719b094
comparison
equal deleted inserted replaced
115:899095c8760f 117:2370b942cd32
21 # start at 1, not 0 so that all elts are non-zero 21 # start at 1, not 0 so that all elts are non-zero
22 return np.arange(n) + 1 22 return np.arange(n) + 1
23 23
24 def test_collect_runs_at_all(): 24 def test_collect_runs_at_all():
25 buf = input_data(blocksize * 10) 25 buf = input_data(blocksize * 10)
26 step, results = vamp.collect(buf, rate, plugin_key, "input-timestamp") 26 rdict = vamp.collect(buf, rate, plugin_key, "input-timestamp")
27 step, results = rdict["vector"]
27 assert results != [] 28 assert results != []
28 29
29 ##!!! add test for default output 30 ##!!! add test for default output
30 31
31 def test_collect_one_sample_per_step(): 32 def test_collect_one_sample_per_step():
32 buf = input_data(blocksize * 10) 33 buf = input_data(blocksize * 10)
33 step, results = vamp.collect(buf, rate, plugin_key, "input-timestamp") 34 rdict = vamp.collect(buf, rate, plugin_key, "input-timestamp")
35 step, results = rdict["vector"]
34 assert abs(float(step) - (1024.0 / rate)) < eps 36 assert abs(float(step) - (1024.0 / rate)) < eps
35 assert len(results) == 10 37 assert len(results) == 10
36 for i in range(len(results)): 38 for i in range(len(results)):
37 # The timestamp should be the frame number of the first frame in the 39 # The timestamp should be the frame number of the first frame in the
38 # input buffer 40 # input buffer
40 actual = results[i] 42 actual = results[i]
41 assert actual == expected 43 assert actual == expected
42 44
43 def test_collect_fixed_sample_rate(): 45 def test_collect_fixed_sample_rate():
44 buf = input_data(blocksize * 10) 46 buf = input_data(blocksize * 10)
45 step, results = vamp.collect(buf, rate, plugin_key, "curve-fsr") 47 rdict = vamp.collect(buf, rate, plugin_key, "curve-fsr")
48 step, results = rdict["vector"]
46 assert abs(float(step) - 0.4) < eps 49 assert abs(float(step) - 0.4) < eps
47 assert len(results) == 10 50 assert len(results) == 10
48 for i in range(len(results)): 51 for i in range(len(results)):
49 assert abs(results[i] - i * 0.1) < eps 52 assert abs(results[i] - i * 0.1) < eps
50 53
51 def test_collect_fixed_sample_rate_2(): 54 def test_collect_fixed_sample_rate_2():
52 buf = input_data(blocksize * 10) 55 buf = input_data(blocksize * 10)
53 step, results = vamp.collect(buf, rate, plugin_key, "curve-fsr-timed") 56 rdict = vamp.collect(buf, rate, plugin_key, "curve-fsr-timed")
57 step, results = rdict["vector"]
54 assert abs(float(step) - 0.4) < eps 58 assert abs(float(step) - 0.4) < eps
55 assert len(results) == 10 59 assert len(results) == 10
56 for i in range(len(results)): 60 for i in range(len(results)):
57 assert abs(results[i] - i * 0.1) < eps 61 assert abs(results[i] - i * 0.1) < eps
58 62
59 def test_collect_variable_sample_rate(): 63 def test_collect_variable_sample_rate():
60 buf = input_data(blocksize * 10) 64 buf = input_data(blocksize * 10)
61 results = vamp.collect(buf, rate, plugin_key, "curve-vsr") 65 rdict = vamp.collect(buf, rate, plugin_key, "curve-vsr")
66 results = rdict["list"]
62 assert len(results) == 10 67 assert len(results) == 10
63 i = 0 68 i = 0
64 for r in results: 69 for r in results:
65 assert r["timestamp"] == vamp.vampyhost.RealTime('seconds', i * 0.75) 70 assert r["timestamp"] == vamp.vampyhost.RealTime('seconds', i * 0.75)
66 assert abs(r["values"][0] - i * 0.1) < eps 71 assert abs(r["values"][0] - i * 0.1) < eps
67 i = i + 1 72 i = i + 1
68 73
69 def test_collect_grid_one_sample_per_step(): 74 def test_collect_grid_one_sample_per_step():
70 buf = input_data(blocksize * 10) 75 buf = input_data(blocksize * 10)
71 step, results = vamp.collect(buf, rate, plugin_key, "grid-oss") 76 rdict = vamp.collect(buf, rate, plugin_key, "grid-oss")
77 step, results = rdict["matrix"]
72 assert abs(float(step) - (1024.0 / rate)) < eps 78 assert abs(float(step) - (1024.0 / rate)) < eps
73 assert len(results) == 10 79 assert len(results) == 10
74 for i in range(len(results)): 80 for i in range(len(results)):
75 expected = np.array([ (j + i + 2.0) / 30.0 for j in range(0, 10) ]) 81 expected = np.array([ (j + i + 2.0) / 30.0 for j in range(0, 10) ])
76 assert (abs(results[i] - expected) < eps).all() 82 assert (abs(results[i] - expected) < eps).all()