def test_xs_same_as_skl_rmse_weighted(a_1d, b_1d, weights_linear_time_1d): actual = rmse(a_1d, b_1d, "time", weights_linear_time_1d) expected = mean_squared_error(a_1d, b_1d, squared=False, sample_weight=weights_linear_time_1d) assert np.allclose(actual, expected)
def test_rmse_r_xr_dask(a_dask, b_dask, dim): actual = rmse(a_dask, b_dask, dim) dim, axis = _preprocess(dim) _a_dask = a_dask.values _b_dask = b_dask.values axis = tuple(a_dask.dims.index(d) for d in dim) res = _rmse(_a_dask, _b_dask, axis) expected = actual.copy() expected.values = res assert_allclose(actual, expected)
def test_rmse_r_xr(a, b, dim): actual = rmse(a, b, dim) dim, axis = _preprocess(dim) _a = a.values _b = b.values axis = tuple(a.dims.index(d) for d in dim) res = _rmse(_a, _b, axis) expected = actual.copy() expected.values = res assert_allclose(actual, expected)
def test_rmse_r_xr(a, b, dim, weight, weights_ones, weights_latitude): # Generates subsetted weights to pass in as arg to main function and for the numpy testing. weights_arg, weights_np = adjust_weights(weight, dim, weights_ones, weights_latitude) actual = rmse(a, b, dim, weights=weights_arg) assert actual.chunks is None dim, axis = _preprocess_dims(dim) _a = a _b = b _weights_np = _preprocess_weights(_a, dim, dim, weights_np) axis = tuple(a.dims.index(d) for d in dim) res = _rmse(_a.values, _b.values, _weights_np.values, axis) expected = actual.copy() expected.values = res assert_allclose(actual, expected)
def test_xs_same_as_skl_rmse(a_1d, b_1d, squared): actual = rmse(a_1d, b_1d, "time") expected = mean_squared_error(a_1d, b_1d, squared=squared) assert np.allclose(actual, expected)
def test_rmse_same_as_sklearn(a, b): """Tests that root mean squared error is same as computed from sklearn.""" xs_rmse = rmse(a, b, 'time') sklearn_rmse = np.sqrt(mean_squared_error(a, b)) assert np.allclose(xs_rmse, sklearn_rmse)
def test_rmse_accessor_dask(ds_dask): dim = 'lon' actual = rmse(ds_dask['a'], ds_dask['b'], dim).compute() expected = ds_dask.xs.rmse('a', 'b', dim).compute() assert_allclose(actual, expected)