def test_resample_deprecation(rng):
    data = [1, 2, 3]
    from numpy import VisibleDeprecationWarning

    with pytest.warns(VisibleDeprecationWarning):
        r = list(resample(data, 10))
        assert np.shape(r) == (10, 3)

    with pytest.warns(VisibleDeprecationWarning):
        resample(data, 10, "balanced")

    with pytest.warns(VisibleDeprecationWarning):
        with pytest.raises(ValueError):
            resample(data, 10, "foo")

    with pytest.warns(VisibleDeprecationWarning):
        resample(data, 10, "balanced", [1, 1, 2])

    with pytest.warns(VisibleDeprecationWarning):
        with pytest.raises(ValueError):
            resample(data, 10, "balanced", [1, 1])

    with pytest.warns(VisibleDeprecationWarning):
        resample(data, 10, "balanced", [1, 1, 2], rng)

    with pytest.warns(VisibleDeprecationWarning):
        resample(data, 10, "balanced", [1, 1, 2], 1)

    with pytest.warns(VisibleDeprecationWarning):
        with pytest.raises(TypeError):
            resample(data, 10, "balanced", [1, 1, 2], 1.3)

    with pytest.warns(VisibleDeprecationWarning):
        with pytest.raises(ValueError):  # too many arguments
            resample(data, 10, "balanced", [1, 1, 2], 1, 2)
def test_resample_full_strata(method):
    data = np.arange(3)
    for b in resample(data, size=2, strata=data, method=method):
        assert_equal(data, b)
def test_resample_invalid_strata_raises():
    msg = "must have the same shape"
    with pytest.raises(ValueError, match=msg):
        next(resample((1, 2, 3), strata=np.arange(4)))
def test_resample_equal_along_axis():
    data = np.reshape(np.tile([0, 1, 2], 3), newshape=(3, 3))
    for b in resample(data, size=2):
        assert_equal(data, b)
def test_resample_3d_parametric_normal_raises():
    with pytest.raises(ValueError):
        next(resample(np.ones((2, 2, 2)), method="normal"))
def test_resample_2d_parametric_raises(method):
    with pytest.raises(ValueError):
        next(resample(np.ones((2, 2)), method=method))
def test_resample_invalid_family_raises():
    msg = "Invalid family"
    with pytest.raises(ValueError, match=msg):
        next(resample((1, 2, 3), method="foobar"))
def run_resample(n, method):
    x = np.arange(n)
    r = []
    for b in resample(x, method=method):
        r.append(b)
    return r