def test_random_choice_error(): """random_choice should raise an error when probabilities do not sum to one.""" rstate = RandomState(0) p = rstate.rand(10) p /= p.sum() p *= 1.001 with pytest.raises(ValueError): nestle.random_choice(10, p=p, rstate=rstate)
def test_random_choice(): """nestle.random_choice() is designed to mimic np.random.choice(), for numpy < v1.7.0. In cases where we have both, test that they agree. """ rstate = RandomState(0) p = rstate.rand(10) p /= p.sum() for seed in range(10): rstate.seed(seed) i = rstate.choice(10, p=p) rstate.seed(seed) j = nestle.random_choice(10, p=p, rstate=rstate) assert i == j