annotate test_process.py @ 43:36cc53aad853

Test output values a bit; fix input conversion from int
author Chris Cannam
date Wed, 03 Dec 2014 08:25:05 +0000
parents 55fcd0e3e513
children af167d5895a3
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@19 12 plug = vh.loadPlugin(testPluginKey, rate)
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@20 21 plug = vh.loadPlugin(testPluginKey, rate)
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@19 29 plug = vh.loadPlugin(testPluginKey, rate)
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@20 37 plug = vh.loadPlugin(testPluginKey, rate)
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@43 62 plug = vh.loadPlugin(testPluginKey, rate)
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@43 71 assert result[8] == [ { "label" : "", "values" : np.array([3.0]) } ]
Chris@40 72
Chris@43 73