Exemple #1
0
def test_empty_sample_is_error():
    rnd = Random(0)
    sampler = Sampler()
    with pytest.raises(IndexError):
        sampler.sample(rnd)
    sampler[1] = 1
    sampler[1] = 0
    with pytest.raises(IndexError):
        sampler.sample(rnd)
Exemple #2
0
def test_samples_only_non_zero_while_updating(weights, rnd):
    sampler = Sampler()

    model = {}

    for k, v in weights:
        model[k] = v
        sampler[k] = v
        if v > 0:
            assert sampler[k] == model[k]
        else:
            assert k not in sampler
        if sum(model.values()) > 0:
            s = sampler.sample(rnd)
            assert model[s] > 0
Exemple #3
0
def test_can_delete_an_item(rnd, data, weights):
    keys = sorted(weights)
    sampler = Sampler(weights)
    key = data.draw(st.sampled_from(keys))
    del sampler[key]
    assert sampler.sample(rnd) != key
Exemple #4
0
def test_sample_from_single(rnd):
    sampler = Sampler()
    sampler[0] = 1
    assert sampler.sample(rnd) == 0
Exemple #5
0
def test_samples_only_non_zero(weights, rnd):
    assume(sum(weights.values()) > 0)
    sampler = Sampler(weights)

    assert weights[sampler.sample(rnd)] > 0