Chris@36: Chris@36: import vampyhost as vh Chris@144: import vamp Chris@36: Chris@82: plugin_key = "vamp-test-plugin:vamp-test-plugin" Chris@36: Chris@82: plugin_key_freq = "vamp-test-plugin:vamp-test-plugin-freq" Chris@63: Chris@36: rate = 44100 Chris@36: Chris@148: expectedVersion = 4 Chris@62: Chris@62: def test_plugin_exists(): Chris@82: assert plugin_key in vh.list_plugins() Chris@82: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@109: assert "pluginVersion" in plug.info Chris@109: if plug.info["pluginVersion"] != expectedVersion: Chris@109: print("Test plugin version " + str(plug.info["pluginVersion"]) + " does not match expected version " + str(expectedVersion)) Chris@109: assert plug.info["pluginVersion"] == expectedVersion Chris@62: Chris@144: def test_plugin_exists_module(): Chris@144: assert plugin_key in vamp.list_plugins() Chris@144: Chris@63: def test_plugin_exists_in_freq_version(): Chris@82: assert plugin_key_freq in vh.list_plugins() Chris@63: Chris@43: def test_getoutputlist(): Chris@82: outputs = vh.get_outputs_of(plugin_key) Chris@148: assert len(outputs) == 11 Chris@45: assert "input-summary" in outputs Chris@43: Chris@144: def test_getoutputlist_module(): Chris@144: outputs = vamp.get_outputs_of(plugin_key) Chris@148: assert len(outputs) == 11 Chris@144: assert "input-summary" in outputs Chris@144: Chris@86: def test_getoutputlist_2(): Chris@86: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@86: outputs = plug.get_outputs() Chris@148: assert len(outputs) == 11 Chris@86: Chris@86: def test_get_output_by_id(): Chris@86: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@86: out = plug.get_output("input-summary") Chris@111: assert "sampleType" in out Chris@148: assert out["output_index"] == 9 Chris@86: try: Chris@86: out = plug.get_output("chops") Chris@86: assert False Chris@102: except Exception: Chris@86: pass Chris@86: try: Chris@86: out = plug.get_output("") Chris@86: assert False Chris@102: except Exception: Chris@86: pass Chris@86: Chris@86: def test_get_output_by_index(): Chris@86: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@86: out = plug.get_output(0) Chris@111: assert "sampleType" in out Chris@86: assert out["identifier"] == "instants" Chris@87: assert out["output_index"] == 0 Chris@86: try: Chris@86: out = plug.get_output(20) Chris@86: assert False Chris@102: except Exception: Chris@86: pass Chris@86: try: Chris@86: out = plug.get_output(-1) Chris@86: assert False Chris@102: except Exception: Chris@86: pass Chris@86: try: Chris@86: out = plug.get_output(plug) Chris@86: assert False Chris@102: except Exception: Chris@86: pass Chris@86: Chris@36: def test_inputdomain(): Chris@82: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@110: assert plug.inputDomain == vh.TIME_DOMAIN Chris@36: Chris@36: def test_info(): Chris@82: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@39: assert plug.info["identifier"] == "vamp-test-plugin" Chris@36: Chris@36: def test_parameterdescriptors(): Chris@82: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@39: assert plug.parameters[0]["identifier"] == "produce_output" Chris@139: Chris@144: def test_getparameters_module(): Chris@144: params = vamp.get_parameters_of(plugin_key) Chris@144: assert len(params) == 1 Chris@144: assert params[0]["identifier"] == "produce_output" Chris@144: Chris@139: def test_timestamp_method_fail(): Chris@139: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@139: try: Chris@139: plug.set_process_timestamp_method(vh.SHIFT_DATA) Chris@139: assert False Chris@139: except Exception: Chris@139: pass Chris@139: Chris@139: def test_timestamp_method_fail2(): Chris@139: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_INPUT_DOMAIN) Chris@139: # Not a freq-domain plugin: shouldn't throw, but should return false Chris@139: assert (not plug.set_process_timestamp_method(vh.SHIFT_DATA)) Chris@139: Chris@139: def test_timestamp_method_succeed(): Chris@139: plug = vh.load_plugin(plugin_key_freq, rate, vh.ADAPT_INPUT_DOMAIN) Chris@139: assert plug.set_process_timestamp_method(vh.SHIFT_DATA) Chris@36: Chris@51: def test_setparameter(): Chris@82: plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE) Chris@51: assert plug.parameters[0]["identifier"] == "produce_output" Chris@109: assert plug.parameters[0]["defaultValue"] == 1 Chris@109: assert plug.get_parameter_value("produce_output") == plug.parameters[0]["defaultValue"] Chris@80: assert plug.set_parameter_value("produce_output", 0) == True Chris@80: assert plug.get_parameter_value("produce_output") == 0 Chris@80: assert plug.set_parameter_values({ "produce_output": 1 }) == True Chris@80: assert plug.get_parameter_value("produce_output") == 1 Chris@51: try: Chris@80: plug.set_parameter_value("produce_output", "fish") Chris@51: assert False Chris@51: except TypeError: Chris@51: pass Chris@51: try: Chris@80: plug.set_parameter_value(4, 0) Chris@51: assert False Chris@51: except TypeError: Chris@51: pass Chris@51: try: Chris@80: plug.set_parameter_value("steak", 0) Chris@51: assert False Chris@102: except Exception: Chris@51: pass Chris@51: try: Chris@80: plug.get_parameter_value(4) Chris@51: assert False Chris@51: except TypeError: Chris@51: pass Chris@51: try: Chris@80: plug.get_parameter_value("steak") Chris@51: assert False Chris@102: except Exception: Chris@51: pass Chris@51: