import random from sympy.core.random import random as rand, seed, shuffle, _assumptions_shuffle from sympy.core.symbol import Symbol, symbols from sympy.functions.elementary.trigonometric import sin, acos from sympy.abc import x def test_random(): random.seed(42) a = random.random() random.seed(42) Symbol('z').is_finite b = random.random() assert a == b got = set() for i in range(2): random.seed(28) m0, m1 = symbols('m_0 m_1', real=True) _ = acos(-m0/m1) got.add(random.uniform(0,1)) assert len(got) == 1 random.seed(10) y = 0 for i in range(4): y += sin(random.uniform(-10,10) * x) random.seed(10) z = 0 for i in range(4): z += sin(random.uniform(-10,10) * x) assert y == z def test_seed(): assert rand() < 1 seed(1) a = rand() b = rand() seed(1) c = rand() d = rand() assert a == c if not c == d: assert a != b else: assert a == b abc = 'abc' first = list(abc) second = list(abc) third = list(abc) seed(123) shuffle(first) seed(123) shuffle(second) _assumptions_shuffle(third) assert first == second == third