@testing.for_all_dtypes_combination(names=['x_type', 'y_type'])
@testing.numpy_cupy_allclose(rtol=1e-06)
def check_array_doubly_broadcasted_op(self, op, xp, x_type, y_type, no_bool=False, no_complex=False):
    x_dtype = numpy.dtype(x_type)
    y_dtype = numpy.dtype(y_type)
    if (no_bool and (x_dtype == '?') and (y_dtype == '?')):
        return xp.array(True)
    if (no_complex and ((x_dtype.kind == 'c') or (y_dtype.kind == 'c'))):
        return xp.array(True)
    a = xp.array([[[1, 2, 3]], [[4, 5, 6]]], x_type)
    b = xp.array([[1], [2], [3]], y_type)
    return op(a, b)
@testing.for_all_dtypes_combination(names=['x_type', 'y_type'])
@testing.numpy_cupy_allclose(rtol=1e-06)
def check_array_doubly_broadcasted_op(self, op, xp, x_type, y_type, no_bool=False, no_complex=False):
    x_dtype = numpy.dtype(x_type)
    y_dtype = numpy.dtype(y_type)
    if (no_bool and (x_dtype == '?') and (y_dtype == '?')):
        return xp.array(True)
    if (no_complex and ((x_dtype.kind == 'c') or (y_dtype.kind == 'c'))):
        return xp.array(True)
    a = xp.array([[[1, 2, 3]], [[4, 5, 6]]], x_type)
    b = xp.array([[1], [2], [3]], y_type)
    return op(a, b)