Ejemplo n.º 1
0
def test_turn_scheduler():
    ts = TurnScheduler()
    ts.add("D", 2)
    ts.add("C", 1)
    ts.add("B", 1)
    ts.add("X", 1)
    ts.add("A", 0)
    ts.remove("X")

    assert ts.advance_time() == ("A", 0)
    ts.addpop("A", 20)
    assert ts.advance_time() == ("B", 1)
    ts.addpop("B", 0)
    assert ts.advance_time() == ("B", 0)
    ts.addpop("B", 0)
    assert ts.advance_time() == ("B", 0)
    ts.addpop("B", 19)
    assert ts.advance_time() == ("C", 0)
    ts.addpop("C", 19)
    assert ts.advance_time() == ("D", 1)
    ts.addpop("D", 18)

    ts.add("E", 18)

    assert ts.advance_time() == ("E", 18)
    ts.addpop("E", 1)
    assert ts.advance_time() == ("D", 0)
    ts.addpop("D", 1)
    assert ts.advance_time() == ("C", 0)
    ts.addpop("C", 1)
    assert ts.advance_time() == ("B", 0)
    ts.addpop("B", 1)
    assert ts.advance_time() == ("A", 0)
    ts.addpop("A", 1)