def test_spawn_equiv():
    ss = SeedSequence(0)
    children = ss.spawn(2)
    direct = [
        SeedSequence(0, spawn_key=(0, )),
        SeedSequence(0, spawn_key=(1, ))
    ]
    assert len(children) == 2
    for c, d in zip(children, direct):
        assert_array_equal(c.generate_state(4), d.generate_state(4))
def test_against_numpy_spawn():
    entropy = [
        1231854054, 2485020620, 2472030289, 641337343, 3981837114, 248869471,
        532471113, 949593482, 1224833511, 2864447214
    ]
    ss = SeedSequence(entropy)
    np_ss = NPSeedSequence(entropy)
    ss_children = ss.spawn(2)
    np_ss_children = np_ss.spawn(2)
    assert ss.n_children_spawned == np_ss.n_children_spawned
    for child, np_child in zip(ss_children, np_ss_children):
        assert_array_equal(child.generate_state(10),
                           np_child.generate_state(10))
def test_state():
    ss = SeedSequence(0)
    assert "entropy" in ss.state
    assert ss.state["entropy"] == 0
    assert "n_children_spawned" in ss.state
    assert ss.state["n_children_spawned"] == 0
    assert "pool_size" in ss.state
    assert ss.state["pool_size"] == 4

    for key in "spawn_key":
        assert key not in ss.state
    children = ss.spawn(10)
    assert ss.state["n_children_spawned"] == 10

    assert "spawn_key" in children[0].state
    assert children[0].state["spawn_key"] == (0, )

    ss = SeedSequence(0, pool_size=8)
    assert "pool_size" in ss.state
    assert ss.state["pool_size"] == 8