annotate test_process.py @ 44:af167d5895a3

More channel tests
author Chris Cannam
date Wed, 03 Dec 2014 10:33:58 +0000
parents 36cc53aad853
children 22f64060ffb4
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@44 73 def test_process_output_2ch():
Chris@44 74 plug = vh.loadPlugin(testPluginKey, rate)
Chris@44 75 plug.initialise(2, 2, 2)
Chris@44 76 try:
Chris@44 77 # Too few channels
Chris@44 78 result = plug.process([[3,4]], vh.RealTime(0, 0))
Chris@44 79 assert False
Chris@44 80 except TypeError:
Chris@44 81 pass
Chris@44 82 try:
Chris@44 83 # Too many channels
Chris@44 84 result = plug.process([[3,4],[5,6],[7,8]], vh.RealTime(0, 0))
Chris@44 85 assert False
Chris@44 86 except TypeError:
Chris@44 87 pass
Chris@44 88 result = plug.process([[3,3],[4,4]], vh.RealTime(0, 0))
Chris@44 89 assert (result[8][0]["values"] == np.array([3.0,4.0])).all()
Chris@44 90
Chris@44 91 def test_process_output_3ch():
Chris@44 92 plug = vh.loadPlugin(testPluginKey, rate)
Chris@44 93 plug.initialise(3, 2, 2)
Chris@44 94 try:
Chris@44 95 # Too few channels
Chris@44 96 result = plug.process([[3,4],[5,6]], vh.RealTime(0, 0))
Chris@44 97 assert False
Chris@44 98 except TypeError:
Chris@44 99 pass
Chris@44 100 try:
Chris@44 101 # Too many channels
Chris@44 102 result = plug.process([[3,4],[5,6],[7,8],[9,10]], vh.RealTime(0, 0))
Chris@44 103 assert False
Chris@44 104 except TypeError:
Chris@44 105 pass
Chris@44 106 result = plug.process([[3,3],[4,4],[5,5]], vh.RealTime(0, 0))
Chris@44 107 assert (result[8][0]["values"] == np.array([3.0,4.0,5.0])).all()
Chris@44 108
Chris@44 109
Chris@43 110