annotate test/test_process_block.py @ 151:5a6b8f4be9b9 tracks tip

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