Mercurial > hg > vampy-host
comparison test/test_process_block.py @ 90:f364a62f9703
Rename
author | Chris Cannam |
---|---|
date | Mon, 26 Jan 2015 11:00:41 +0000 |
parents | test/test_processBlock.py@a11b57e9fb0b |
children | 216ed5a72c36 |
comparison
equal
deleted
inserted
replaced
89:1a08dd72f4d2 | 90:f364a62f9703 |
---|---|
1 | |
2 import vampyhost as vh | |
3 import numpy as np | |
4 | |
5 plugin_key = "vamp-test-plugin:vamp-test-plugin" | |
6 | |
7 rate = 44100 | |
8 | |
9 def test_load_unload(): | |
10 plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) | |
11 plug.unload() | |
12 try: | |
13 plug.unload() # should throw but not crash | |
14 assert(False) | |
15 except AttributeError: | |
16 pass | |
17 | |
18 def test_get_set_parameter(): | |
19 plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) | |
20 value = plug.get_parameter_value("produce_output") | |
21 assert(value == 1.0) | |
22 plug.set_parameter_value("produce_output", 0.0) | |
23 value = plug.get_parameter_value("produce_output") | |
24 assert(value == 0.0) | |
25 | |
26 def test_process_without_initialise(): | |
27 plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) | |
28 try: | |
29 plug.process_block([[1,2,3,4]], vh.RealTime(0, 0)) | |
30 assert False | |
31 except StandardError: | |
32 pass | |
33 | |
34 def test_process_input_format(): | |
35 plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) | |
36 plug.initialise(2, 4, 4) # channels, stepsize, blocksize | |
37 result = plug.process_block([[1,2,3,4],[5,6,7,8]], vh.RealTime(0, 0)) | |
38 result = plug.process_block([np.array([1,2,3,4]),np.array([5,6,7,8])], vh.RealTime(0, 0)) | |
39 result = plug.process_block(np.array([[1,2,3,4],[5,6,7,8]]), vh.RealTime(0, 0)) | |
40 try: | |
41 # Wrong number of channels | |
42 result = plug.process_block(np.array([[1,2,3,4]]), vh.RealTime(0, 0)) | |
43 assert False | |
44 except TypeError: | |
45 pass | |
46 try: | |
47 # Wrong number of samples per channel | |
48 result = plug.process_block(np.array([[1,2,3],[4,5,6]]), vh.RealTime(0, 0)) | |
49 assert False | |
50 except TypeError: | |
51 pass | |
52 try: | |
53 # Differing numbers of samples per channel | |
54 result = plug.process_block(np.array([[1,2,3,4],[5,6,7]]), vh.RealTime(0, 0)) | |
55 assert False | |
56 except TypeError: | |
57 pass | |
58 | |
59 def test_process_output_1ch(): | |
60 plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) | |
61 plug.initialise(1, 2, 2) | |
62 try: | |
63 # Too many channels | |
64 result = plug.process_block([[3,4],[5,6]], vh.RealTime(0, 0)) | |
65 assert False | |
66 except TypeError: | |
67 pass | |
68 result = plug.process_block([[3,3]], vh.RealTime(0, 0)) | |
69 assert result[8] == [ { "label" : "", "values" : np.array([5.0]) } ] | |
70 result = plug.process_block([[3,0]], vh.RealTime(0, 0)) | |
71 assert result[8] == [ { "label" : "", "values" : np.array([4.0]) } ] | |
72 | |
73 def test_process_output_2ch(): | |
74 plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) | |
75 plug.initialise(2, 2, 2) | |
76 try: | |
77 # Too few channels | |
78 result = plug.process_block([[3,4]], vh.RealTime(0, 0)) | |
79 assert False | |
80 except TypeError: | |
81 pass | |
82 try: | |
83 # Too many channels | |
84 result = plug.process_block([[3,4],[5,6],[7,8]], vh.RealTime(0, 0)) | |
85 assert False | |
86 except TypeError: | |
87 pass | |
88 result = plug.process_block([[3,3],[4,4]], vh.RealTime(0, 0)) | |
89 assert (result[8][0]["values"] == np.array([5.0,6.0])).all() | |
90 result = plug.process_block([[3,0],[4,0]], vh.RealTime(0, 0)) | |
91 assert (result[8][0]["values"] == np.array([4.0,5.0])).all() | |
92 | |
93 def test_process_output_3ch(): | |
94 plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) | |
95 plug.initialise(3, 2, 2) | |
96 try: | |
97 # Too few channels | |
98 result = plug.process_block([[3,4],[5,6]], vh.RealTime(0, 0)) | |
99 assert False | |
100 except TypeError: | |
101 pass | |
102 try: | |
103 # Too many channels | |
104 result = plug.process_block([[3,4],[5,6],[7,8],[9,10]], vh.RealTime(0, 0)) | |
105 assert False | |
106 except TypeError: | |
107 pass | |
108 result = plug.process_block([[3,3],[4,4],[5,5]], vh.RealTime(0, 0)) | |
109 assert (result[8][0]["values"] == np.array([5.0,6.0,7.0])).all() | |
110 result = plug.process_block([[3,0],[4,0],[5,0]], vh.RealTime(0, 0)) | |
111 assert (result[8][0]["values"] == np.array([4.0,5.0,6.0])).all() | |
112 | |
113 | |
114 |