def METHOD_NAME(depth, chunks, channel_axis):
    """Test channel_axis combinations.
    For depth and chunks, test in three ways:
    1.) scalar (to be applied over all axes)
    2.) tuple of length ``image.ndim - 1`` corresponding to spatial axes
    3.) tuple of length ``image.ndim`` corresponding to all axes
    """
    cat = img_as_float(data.chelsea())
    func = color.rgb2ycbcr
    cat_ycbcr_expected = func(cat, channel_axis=-1)
    # move channel axis to another position
    cat = np.moveaxis(cat, -1, channel_axis)
    if chunks == 'ndim':
        # explicitly specify the chunksize for the channel axis
        chunks = [128, 128]
        chunks.insert(channel_axis % cat.ndim, cat.shape[channel_axis])
    if depth == 'ndim':
        # explicitly specify the depth for the channel axis
        depth = [8, 8]
        depth.insert(channel_axis % cat.ndim, 0)
    cat_ycbcr = apply_parallel(func, cat, chunks=chunks, depth=depth,
                               dtype=cat.dtype, channel_axis=channel_axis,
                               extra_keywords=dict(channel_axis=channel_axis))
    # move channels of output back to the last dimension
    cat_ycbcr = np.moveaxis(cat_ycbcr, channel_axis, -1)
    assert_array_almost_equal(cat_ycbcr_expected, cat_ycbcr)