예제 #1
0
def test_fit():
    import random
    random.seed(1234)
    n = Normal.fit(Uniform.fit(Normal(2, 1.5).random(1000)))
    #print n.mean
    #print n.stddev
    assert abs(n.mean - 2) < 0.3
    assert abs(n.stddev - 1.5) < 0.3
    n = Normal.fit([1, 2, 3, 4, 5])
    assert n.mean == 3
    assert n.stddev == sqrt(2)
    n = Uniform.fit([1, 2, 3, 4, 5])
    assert n.mean == 3
    assert n.stddev == sqrt(2)
예제 #2
0
def test_fit():
    import random
    random.seed(1234)
    n = Normal.fit(Uniform.fit(Normal(2, 1.5).random(1000)))
    #print n.mean
    #print n.stddev
    assert abs(n.mean - 2) < 0.3
    assert abs(n.stddev - 1.5) < 0.3
    n = Normal.fit([1, 2, 3, 4, 5])
    assert n.mean == 3
    assert n.stddev == sqrt(2)
    n = Uniform.fit([1, 2, 3, 4, 5])
    assert n.mean == 3
    assert n.stddev == sqrt(2)
예제 #3
0
def test_RandomDomain():
    from sympy.stats import Normal, Die, Exponential, pspace, where
    X = Normal('x1', 0, 1)
    assert str(where(X > 0)) == "Domain: 0 < x1"

    D = Die('d1', 6)
    assert str(where(D > 4)) == "Domain: Or(d1 == 5, d1 == 6)"

    A = Exponential('a', 1)
    B = Exponential('b', 1)
    assert str(pspace(Tuple(A, B)).domain) == "Domain: And(0 <= a, 0 <= b)"
예제 #4
0
파일: test_str.py 프로젝트: ness01/sympy
def test_RandomDomain():
    from sympy.stats import Normal, Die, Exponential, pspace, Where
    X = Normal(0, 1, symbol=Symbol('x1'))
    assert str(Where(X > 0)) == "Domain: 0 < x1"

    D = Die(6, symbol=Symbol('d1'))
    assert str(Where(D > 4)) == "Domain: Or(d1 == 5, d1 == 6)"

    A = Exponential(1, symbol=Symbol('a'))
    B = Exponential(1, symbol=Symbol('b'))
    assert str(pspace(Tuple(A, B)).domain) == "Domain: And(0 <= a, 0 <= b)"
예제 #5
0
def test_printing():
    assert str(Normal(x + y, z)) == "Normal(x + y, z)"
    assert str(Sample([x, y, 1])) in [
        "Sample([x, y, 1])",
        "Sample([y, 1, x])",
        "Sample([1, x, y])",
        "Sample([y, x, 1])",
        "Sample([x, 1, y])",
        "Sample([1, y, x])",
    ]
    assert str(Uniform(x, y)) == "Uniform(x, y)"
    assert str(Uniform(x + y, y)) == "Uniform(x + y, y)"
예제 #6
0
def test_Normal():
    assert str(Normal(x + y, z)) == "Normal(x + y, z)"
예제 #7
0
def test_statistics():
    x = Symbol("x")
    y = Symbol("y")
    for c in (ContinuousProbability, ContinuousProbability(), Normal,
              Normal(x, y), Sample, Sample([1, 3, 4]), Uniform, Uniform(x, y)):
        check(c)
예제 #8
0
def test_normal():
    dps, mp.dps = mp.dps, 20

    N = Normal(0, 1)
    assert N.random()
    assert N.mean == 0
    assert N.variance == 1
    assert N.probability(-1, 1) == erf(1/sqrt(2))
    assert N.probability(-1, 0) == erf(1/sqrt(2))/2
    N = Normal(2, 4)
    assert N.mean == 2
    assert N.variance == 16
    assert N.confidence(1) == (-oo, oo)
    assert N.probability(1, 3) == erf(1/sqrt(32))
    assert N.pdf(1).evalf() == (exp(Rational(-1, 32)) / (4*sqrt(2*pi))).evalf()
    for p in [0.1, 0.3, 0.7, 0.9, 0.995]:
        a, b = N.confidence(p)
        assert abs(float(N.probability(a, b).evalf()) - p) < 1e-10

    N = Normal(0, 2/sqrt(2*pi))
    assert N.pdf(0) == Rational(1, 2)
    mp.dps = dps
예제 #9
0
def test_normal():
    dps, mp.dps = mp.dps, 20

    N = Normal(0, 1)
    assert N.random()
    assert N.mean == 0
    assert N.variance == 1
    assert N.probability(-1, 1) == erf(1 / sqrt(2))
    assert N.probability(-1, 0) == erf(1 / sqrt(2)) / 2
    N = Normal(2, 4)
    assert N.mean == 2
    assert N.variance == 16
    assert N.confidence(1) == (-oo, oo)
    assert N.probability(1, 3) == erf(1 / sqrt(32))
    assert N.pdf(1).evalf() == (exp(Rational(-1, 32)) /
                                (4 * sqrt(2 * pi))).evalf()
    for p in [0.1, 0.3, 0.7, 0.9, 0.995]:
        a, b = N.confidence(p)
        assert abs(float(N.probability(a, b).evalf()) - p) < 1e-10

    N = Normal(0, 2 / sqrt(2 * pi))
    assert N.pdf(0) == Rational(1, 2)
    mp.dps = dps
예제 #10
0
def test_pickling():
    for c in (ContinuousProbability, ContinuousProbability(), Normal,
              Normal(x, y), Sample, Sample([1, 3, 4]), Uniform, Uniform(x, y)):
        check(c)