def assert_data_correct(d_arr, op, axis): from datarray.datarray import _names_to_numbers super_opr = getattr(np.ndarray, op) axis_idx = _names_to_numbers(d_arr.axes, [axis])[0] d1 = super_opr(np.asarray(d_arr), axis=axis_idx) opr = getattr(d_arr, op) d2 = np.asarray(opr(axis=axis)) assert (d1==d2).all(), 'data computed incorrectly on operation %s'%op
def assert_data_correct(d_arr, op, axis): from datarray.datarray import _names_to_numbers super_opr = getattr(np.ndarray, op) axis_idx = _names_to_numbers(d_arr.axes, [axis])[0] d1 = super_opr(np.asarray(d_arr), axis=axis_idx) opr = getattr(d_arr, op) d2 = np.asarray(opr(axis=axis)) assert (d1 == d2).all(), 'data computed incorrectly on operation %s' % op
def assert_axes_correct(d_arr, op, axis): from datarray.datarray import _names_to_numbers, _pull_axis opr = getattr(d_arr, op) d = opr(axis=axis) axis_idx = _names_to_numbers(d_arr.axes, [axis])[0] if op not in accumulations: axes = _pull_axis(d_arr.axes, d_arr.axes[axis_idx]) else: axes = d_arr.axes assert all( [ax1==ax2 for ax1, ax2 in zip(d.axes, axes)] ), \ 'mislabeled axes from operation %s'%op
def check_data_axes(d_arr, op, axis, exp_axes, *args, **kwargs): """ Check data and axes correct after operation `op` """ from datarray.datarray import _names_to_numbers super_opr = getattr(np.ndarray, op) axis_idx = _names_to_numbers(d_arr.axes, [axis])[0] d1 = super_opr(np.asarray(d_arr), axis_idx, *args, **kwargs) opr = getattr(d_arr, op) d_arr_out = opr(axis, *args, **kwargs) nt.assert_equal(d_arr_out.axes, exp_axes) d2 = np.asarray(d_arr_out) npt.assert_equal(d1.shape, d2.shape) npt.assert_array_equal(d1, d2)