def test_actual_results_cost_matrix(params, arr_desired): """Test that the actual results are the expected ones.""" arr_actual = cost_matrix(x, y, **params) np.testing.assert_allclose(arr_actual, arr_desired, atol=1e-5, rtol=0.)
def test_parameter_check_cost_matrix(params, err_msg): """Test parameter validation.""" with pytest.raises(ValueError, match=re.escape(err_msg)): cost_matrix(x, y, **params)
plt.xlabel('x', fontsize=12) plt.ylabel('y', fontsize=12) plt.title("{0}\nDTW(x, y) = {1:.2f}".format('itakura', dtw_itakura), fontsize=14) # Dynamic Time Warping: multiscale resolution, radius = 5, 2 dtw_multiscale, path_multiscale = dtw( x, y, dist='square', method='multiscale', options={'resolution': resolution, 'radius': radius}, return_path=True ) x_padded = x.reshape(-1, resolution).mean(axis=1) y_padded = y.reshape(-1, resolution).mean(axis=1) cost_mat_res = cost_matrix(x_padded, y_padded, dist='square', region=None) acc_cost_mat_res = accumulated_cost_matrix(cost_mat_res) path_res = _return_path(acc_cost_mat_res) multiscale_region = _blurred_path_region( n_timestamps_1, n_timestamps_2, resolution, x_padded.size, y_padded.size, path_res, radius=radius ) matrix_multiscale = np.zeros((n_timestamps_1 + 1, n_timestamps_2 + 1)) for i in range(n_timestamps_1): matrix_multiscale[i, np.arange(*multiscale_region[:, i])] = 0.5 matrix_multiscale[tuple(path_multiscale)] = 1. plt.subplot(2, 2, 4) plt.pcolor(timestamps_1, timestamps_2, matrix_multiscale.T,