annotate test_process.py @ 50:4aee7f2060ca

Update tests
author Chris Cannam
date Tue, 13 Jan 2015 12:11:34 +0000
parents 22f64060ffb4
children
rev   line source
Chris@19 1
Chris@19 2 import vampyhost as vh
Chris@40 3 import numpy as np
Chris@19 4
Chris@19 5 testPluginKey = "vamp-test-plugin:vamp-test-plugin"
Chris@19 6
Chris@41 7 ##!!! todo: support for, and test for, correct version of test plugin (with parameter)
Chris@41 8
Chris@19 9 rate = 44100
Chris@19 10
Chris@19 11 def test_load_unload():
Chris@50 12 plug = vh.loadPlugin(testPluginKey, rate, vh.AdaptNone)
Chris@23 13 plug.unload()
Chris@19 14 try:
Chris@23 15 plug.unload() # should throw but not crash
Chris@19 16 assert(False)
Chris@19 17 except AttributeError:
Chris@19 18 pass
Chris@19 19
Chris@20 20 def test_get_set_parameter():
Chris@50 21 plug = vh.loadPlugin(testPluginKey, rate, vh.AdaptNone)
Chris@37 22 value = plug.getParameterValue("produce_output")
Chris@20 23 assert(value == 1.0)
Chris@37 24 plug.setParameterValue("produce_output", 0.0)
Chris@37 25 value = plug.getParameterValue("produce_output")
Chris@20 26 assert(value == 0.0)
Chris@20 27
Chris@19 28 def test_process_without_initialise():
Chris@50 29 plug = vh.loadPlugin(testPluginKey, rate, vh.AdaptNone)
Chris@19 30 try:
Chris@23 31 plug.process([[1,2,3,4]], vh.RealTime(0, 0))
Chris@40 32 assert False
Chris@19 33 except StandardError:
Chris@19 34 pass
Chris@19 35
Chris@40 36 def test_process_input_format():
Chris@50 37 plug = vh.loadPlugin(testPluginKey, rate, vh.AdaptNone)
Chris@40 38 plug.initialise(2, 4, 4) # channels, stepsize, blocksize
Chris@40 39 result = plug.process([[1,2,3,4],[5,6,7,8]], vh.RealTime(0, 0))
Chris@40 40 result = plug.process([np.array([1,2,3,4]),np.array([5,6,7,8])], vh.RealTime(0, 0))
Chris@40 41 result = plug.process(np.array([[1,2,3,4],[5,6,7,8]]), vh.RealTime(0, 0))
Chris@40 42 try:
Chris@40 43 # Wrong number of channels
Chris@40 44 result = plug.process(np.array([[1,2,3,4]]), vh.RealTime(0, 0))
Chris@40 45 assert False
Chris@40 46 except TypeError:
Chris@40 47 pass
Chris@40 48 try:
Chris@40 49 # Wrong number of samples per channel
Chris@40 50 result = plug.process(np.array([[1,2,3],[4,5,6]]), vh.RealTime(0, 0))
Chris@40 51 assert False
Chris@40 52 except TypeError:
Chris@40 53 pass
Chris@40 54 try:
Chris@40 55 # Differing numbers of samples per channel
Chris@40 56 result = plug.process(np.array([[1,2,3,4],[5,6,7]]), vh.RealTime(0, 0))
Chris@40 57 assert False
Chris@40 58 except TypeError:
Chris@40 59 pass
Chris@20 60
Chris@43 61 def test_process_output_1ch():
Chris@50 62 plug = vh.loadPlugin(testPluginKey, rate, vh.AdaptNone)
Chris@43 63 plug.initialise(1, 2, 2)
Chris@43 64 try:
Chris@43 65 # Too many channels
Chris@43 66 result = plug.process([[3,4],[5,6]], vh.RealTime(0, 0))
Chris@43 67 assert False
Chris@43 68 except TypeError:
Chris@43 69 pass
Chris@43 70 result = plug.process([[3,3]], vh.RealTime(0, 0))
Chris@45 71 assert result[8] == [ { "label" : "", "values" : np.array([5.0]) } ]
Chris@45 72 result = plug.process([[3,0]], vh.RealTime(0, 0))
Chris@45 73 assert result[8] == [ { "label" : "", "values" : np.array([4.0]) } ]
Chris@40 74
Chris@44 75 def test_process_output_2ch():
Chris@50 76 plug = vh.loadPlugin(testPluginKey, rate, vh.AdaptNone)
Chris@44 77 plug.initialise(2, 2, 2)
Chris@44 78 try:
Chris@44 79 # Too few channels
Chris@44 80 result = plug.process([[3,4]], vh.RealTime(0, 0))
Chris@44 81 assert False
Chris@44 82 except TypeError:
Chris@44 83 pass
Chris@44 84 try:
Chris@44 85 # Too many channels
Chris@44 86 result = plug.process([[3,4],[5,6],[7,8]], vh.RealTime(0, 0))
Chris@44 87 assert False
Chris@44 88 except TypeError:
Chris@44 89 pass
Chris@44 90 result = plug.process([[3,3],[4,4]], vh.RealTime(0, 0))
Chris@45 91 assert (result[8][0]["values"] == np.array([5.0,6.0])).all()
Chris@45 92 result = plug.process([[3,0],[4,0]], vh.RealTime(0, 0))
Chris@45 93 assert (result[8][0]["values"] == np.array([4.0,5.0])).all()
Chris@44 94
Chris@44 95 def test_process_output_3ch():
Chris@50 96 plug = vh.loadPlugin(testPluginKey, rate, vh.AdaptNone)
Chris@44 97 plug.initialise(3, 2, 2)
Chris@44 98 try:
Chris@44 99 # Too few channels
Chris@44 100 result = plug.process([[3,4],[5,6]], vh.RealTime(0, 0))
Chris@44 101 assert False
Chris@44 102 except TypeError:
Chris@44 103 pass
Chris@44 104 try:
Chris@44 105 # Too many channels
Chris@44 106 result = plug.process([[3,4],[5,6],[7,8],[9,10]], vh.RealTime(0, 0))
Chris@44 107 assert False
Chris@44 108 except TypeError:
Chris@44 109 pass
Chris@44 110 result = plug.process([[3,3],[4,4],[5,5]], vh.RealTime(0, 0))
Chris@45 111 assert (result[8][0]["values"] == np.array([5.0,6.0,7.0])).all()
Chris@45 112 result = plug.process([[3,0],[4,0],[5,0]], vh.RealTime(0, 0))
Chris@45 113 assert (result[8][0]["values"] == np.array([4.0,5.0,6.0])).all()
Chris@44 114
Chris@44 115
Chris@43 116