Beispiel #1
0
def test_sample_discrete():
    X, Y, Z = Geometric('X', S.Half), Poisson('Y', 4), Poisson('Z', 1000)
    W = Poisson('W', Rational(1, 100))
    assert sample(X) in X.pspace.domain.set
    assert sample(Y) in Y.pspace.domain.set
    assert sample(Z) in Z.pspace.domain.set
    assert sample(W) in W.pspace.domain.set
Beispiel #2
0
def test_sample():
    X, Y, Z = Geometric('X', S(1) / 2), Poisson('Y', 4), Poisson('Z', 1000)
    W = Poisson('W', S(1) / 100)
    assert sample(X) in X.pspace.domain.set
    assert sample(Y) in Y.pspace.domain.set
    assert sample(Z) in Z.pspace.domain.set
    assert sample(W) in W.pspace.domain.set
Beispiel #3
0
def test_sample_discrete():
    X, Y, Z = Geometric("X", S.Half), Poisson("Y", 4), Poisson("Z", 1000)
    W = Poisson("W", Rational(1, 100))
    assert sample(X) in X.pspace.domain.set
    assert sample(Y) in Y.pspace.domain.set
    assert sample(Z) in Z.pspace.domain.set
    assert sample(W) in W.pspace.domain.set
Beispiel #4
0
def test_sample_scipy():
    p = S(2) / 3
    x = Symbol('x', integer=True, positive=True)
    pdf = p * (1 - p)**(x - 1)  # pdf of Geometric Distribution
    distribs_scipy = [
        DiscreteRV(x, pdf, set=S.Naturals),
        Geometric('G', 0.5),
        Logarithmic('L', 0.5),
        NegativeBinomial('N', 5, 0.4),
        Poisson('P', 1),
        Skellam('S', 1, 1),
        YuleSimon('Y', 1),
        Zeta('Z', 2)
    ]
    size = 3
    numsamples = 5
    scipy = import_module('scipy')
    if not scipy:
        skip('Scipy is not installed. Abort tests for _sample_scipy.')
    else:
        with ignore_warnings(
                UserWarning
        ):  ### TODO: Restore tests once warnings are removed
            z_sample = list(
                sample(Zeta("G", 7), size=size, numsamples=numsamples))
            assert len(z_sample) == numsamples
            for X in distribs_scipy:
                samps = next(sample(X, size=size, library='scipy'))
                samps2 = next(sample(X, size=(2, 2), library='scipy'))
                for sam in samps:
                    assert sam in X.pspace.domain.set
                for i in range(2):
                    for j in range(2):
                        assert samps2[i][j] in X.pspace.domain.set
def test_sample():
    X, Y, Z = Geometric('X', S(1)/2), Poisson('Y', 4), Poisson('Z', 1000)
    W = Poisson('W', S(1)/100)
    assert sample(X) in X.pspace.domain.set
    assert sample(Y) in Y.pspace.domain.set
    assert sample(Z) in Z.pspace.domain.set
    assert sample(W) in W.pspace.domain.set
def test_sample_discrete():
    X = Geometric('X', S.Half)
    scipy = import_module('scipy')
    if not scipy:
        skip('Scipy not installed. Abort tests')
    with ignore_warnings(
            UserWarning):  ### TODO: Restore tests once warnings are removed
        assert next(sample(X)) in X.pspace.domain.set
        samps = next(sample(
            X, size=2))  # This takes long time if ran without scipy
        for samp in samps:
            assert samp in X.pspace.domain.set

    libraries = ['scipy', 'numpy', 'pymc3']
    for lib in libraries:
        try:
            imported_lib = import_module(lib)
            if imported_lib:
                s0, s1, s2 = [], [], []
                s0 = list(sample(X, numsamples=10, library=lib, seed=0))
                s1 = list(sample(X, numsamples=10, library=lib, seed=0))
                s2 = list(sample(X, numsamples=10, library=lib, seed=1))
                assert s0 == s1
                assert s1 != s2
        except NotImplementedError:
            continue
Beispiel #7
0
def test_sample_discrete():
    X = Geometric('X', S.Half)
    scipy = import_module('scipy')
    if not scipy:
        skip('Scipy not installed. Abort tests')
    with ignore_warnings(UserWarning): ### TODO: Restore tests once warnings are removed
        assert next(sample(X)) in X.pspace.domain.set
        samps = next(sample(X, size=2)) # This takes long time if ran without scipy
        for samp in samps:
            assert samp in X.pspace.domain.set
Beispiel #8
0
def test_sample_numpy():
    distribs_numpy = [Geometric('G', 0.5), Poisson('P', 1), Zeta('Z', 2)]
    size = 3
    numpy = import_module('numpy')
    if not numpy:
        skip('Numpy is not installed. Abort tests for _sample_numpy.')
    else:
        with ignore_warnings(UserWarning):
            for X in distribs_numpy:
                samps = next(sample(X, size=size, library='numpy'))
                for sam in samps:
                    assert sam in X.pspace.domain.set
            raises(NotImplementedError,
                   lambda: next(sample(Skellam('S', 1, 1), library='numpy')))
    raises(
        NotImplementedError, lambda: Skellam('S', 1, 1).pspace.distribution.
        sample(library='tensorflow'))
Beispiel #9
0
def test_sample_pymc3():
    distribs_pymc3 = [
        Geometric('G', 0.5),
        Poisson('P', 1),
        NegativeBinomial('N', 5, 0.4)
    ]
    size = 3
    pymc3 = import_module('pymc3')
    if not pymc3:
        skip('PyMC3 is not installed. Abort tests for _sample_pymc3.')
    else:
        with ignore_warnings(UserWarning): ### TODO: Restore tests once warnings are removed
            for X in distribs_pymc3:
                samps = next(sample(X, size=size, library='pymc3'))
                for sam in samps:
                    assert sam in X.pspace.domain.set
            raises(NotImplementedError,
                lambda: next(sample(Skellam('S', 1, 1), library='pymc3')))
Beispiel #10
0
def test_sampling_methods():
    distribs_numpy = [
        Geometric('G', 0.5),
        Poisson('P', 1),
        Zeta('Z', 2)
    ]
    distribs_scipy = [
        Geometric('G', 0.5),
        Logarithmic('L', 0.5),
        Poisson('P', 1),
        Skellam('S', 1, 1),
        YuleSimon('Y', 1),
        Zeta('Z', 2)
    ]
    distribs_pymc3 = [
        Geometric('G', 0.5),
        Poisson('P', 1),
    ]
    size = 3
    numpy = import_module('numpy')
    if not numpy:
        skip('Numpy is not installed. Abort tests for _sample_numpy.')
    else:
        with ignore_warnings(UserWarning):
            for X in distribs_numpy:
                samps = X.pspace.distribution._sample_numpy(size)
                for samp in samps:
                    assert samp in X.pspace.domain.set
    scipy = import_module('scipy')
    if not scipy:
        skip('Scipy is not installed. Abort tests for _sample_scipy.')
    else:
        with ignore_warnings(UserWarning):
            for X in distribs_scipy:
                samps = next(sample(X, size=size))
                for samp in samps:
                    assert samp in X.pspace.domain.set
    pymc3 = import_module('pymc3')
    if not pymc3:
        skip('PyMC3 is not installed. Abort tests for _sample_pymc3.')
    else:
        with ignore_warnings(UserWarning):
            for X in distribs_pymc3:
                samps = X.pspace.distribution._sample_pymc3(size)
                for samp in samps:
                    assert samp in X.pspace.domain.set
Beispiel #11
0
def test_sample():
    X, Y = Geometric('X', S(1) / 2), Poisson('Y', 4)
    assert sample(X) in X.pspace.domain.set
    assert sample(Y) in Y.pspace.domain.set
Beispiel #12
0
def test_sample():
    X, Y = Geometric('X', S(1)/2), Poisson('Y', 4)
    assert sample(X) in X.pspace.domain.set
    assert sample(Y) in Y.pspace.domain.set
Beispiel #13
0
def test_sample_discrete():
    X = Geometric('X', S.Half)
    assert sample(X) in X.pspace.domain.set
    samps = sample(X, size=4)
    for samp in samps:
        assert samp in X.pspace.domain.set