예제 #1
0
async def test_get_fail(conf, game):
    """Test zip file that fails"""
    prof = game.random_profile()
    zipf = batch_to_zip("sleep 0.2 && false")

    with zipsched.zipsched(game, conf, zipf) as sched:
        future = sched.sample_payoffs(prof)
        with pytest.raises(ValueError):
            await future
예제 #2
0
async def test_no_obs(conf, game):
    """Test zip sched that doesn't write observations"""
    prof = game.random_profile()
    zipf = batch_to_zip("sleep 0.2")

    with zipsched.zipsched(game, conf, zipf) as sched:
        future = sched.sample_payoffs(prof)
        with pytest.raises(ValueError):
            await future
예제 #3
0
async def test_simultaneous_obs(conf, game, count):
    """Test scheduler appropriately schedules simultaneous observations"""
    profs = game.random_profiles(10).repeat(2, 0)
    zipf = "cdasim/cdasim.zip"

    with zipsched.zipsched(game, conf, zipf, simultaneous_obs=count) as sched:
        sched = countsched.countsched(sched, count)
        awaited = await asyncio.gather(
            *[sched.sample_payoffs(p) for p in profs])

    pays = np.stack(awaited)
    assert pays.shape == profs.shape
    assert np.allclose(pays[profs == 0], 0)
    assert np.any(pays != 0)
예제 #4
0
async def test_no_conf(game):
    """Test scheduler without a configuration"""
    profs = game.random_profiles(20)
    zipf = "cdasim/cdasim.zip"

    with zipsched.zipsched(game, {}, zipf) as sched:
        assert rsgame.empty_copy(sched) == game
        awaited = await asyncio.gather(
            *[sched.sample_payoffs(p) for p in profs])

    pays = np.stack(awaited)
    assert pays.shape == profs.shape
    assert np.allclose(pays[profs == 0], 0)
    assert np.any(pays != 0)
예제 #5
0
async def test_basic_profile(conf, game):
    """Test scheduling a basic profile"""
    profs = game.random_profiles(20)
    zipf = "cdasim/cdasim.zip"

    with zipsched.zipsched(game, conf, zipf) as sched:
        assert str(sched) is not None
        assert rsgame.empty_copy(sched) == game
        awaited = await asyncio.gather(
            *[sched.sample_payoffs(p) for p in profs])

    pays = np.stack(awaited)
    assert pays.shape == profs.shape
    assert np.allclose(pays[profs == 0], 0)
    assert np.any(pays != 0)
예제 #6
0
async def test_bad_zipfile(conf, game):
    """Test that improper zip file fails"""
    zipf = "nonexistent"
    with pytest.raises(FileNotFoundError):
        with zipsched.zipsched(game, conf, zipf):
            pass  # pragma: no cover