コード例 #1
0
def test_number_in_play():
    caretaker = Caretaker.Caretaker()
    assert caretaker.number_in_play("Centaur") == 0
    caretaker.take_one("Centaur")
    assert caretaker.number_in_play("Centaur") == 1
    caretaker.kill_one("Centaur")
    assert caretaker.number_in_play("Centaur") == 0
    caretaker.take_one("Centaur")
    caretaker.take_one("Centaur")
    caretaker.kill_one("Centaur")
    assert caretaker.number_in_play("Centaur") == 1
コード例 #2
0
def test_take_too_many():
    caretaker = Caretaker.Caretaker()
    assert caretaker.num_left("Serpent") == 10
    for unused in xrange(10):
        caretaker.take_one("Serpent")
    assert caretaker.num_left("Serpent") == 0
    try:
        caretaker.take_one("Serpent")
    except Exception:
        pass
    else:
        assert False, "should have raised"
コード例 #3
0
def test_put_one_back():
    caretaker = Caretaker.Caretaker()
    assert caretaker.num_left("Angel") == 18
    caretaker.take_one("Angel")
    assert caretaker.num_left("Angel") == 17
    caretaker.put_one_back("Angel")
    assert caretaker.num_left("Angel") == 18
    caretaker.put_one_back("Unknown")
    try:
        caretaker.num_left("Unknown")
    except Exception:
        pass
    else:
        assert False
コード例 #4
0
def test_kill_one():
    caretaker = Caretaker.Caretaker()
    assert caretaker.num_left("Angel") == 18
    caretaker.take_one("Angel")
    assert caretaker.num_left("Angel") == 17
    caretaker.kill_one("Angel")
    assert caretaker.num_left("Angel") == 18

    assert caretaker.num_left("Centaur") == 25
    caretaker.take_one("Centaur")
    assert caretaker.num_left("Centaur") == 24
    assert caretaker.graveyard["Centaur"] == 0
    caretaker.kill_one("Centaur")
    assert caretaker.num_left("Centaur") == 24
    assert caretaker.graveyard["Centaur"] == 1
コード例 #5
0
def test_could_recruit():
    now = time.time()
    game = Game.Game("g1", "p0", now, now, 2, 6)
    player = Player.Player("p0", game, 0)

    legion = Legion.Legion(
        player, "Rd02",
        Creature.n2c(["Titan", "Gargoyle", "Centaur", "Centaur"]), 1)
    caretaker = Caretaker.Caretaker()

    assert not legion.could_recruit("Marsh", caretaker)
    assert not legion.could_recruit("Desert", caretaker)
    assert legion.could_recruit("Plains", caretaker)
    assert legion.could_recruit("Brush", caretaker)
    assert legion.could_recruit("Tower", caretaker)
コード例 #6
0
def test_available_recruits():
    now = time.time()
    game = Game.Game("g1", "p0", now, now, 2, 6)
    player = Player.Player("p0", game, 0)

    legion = Legion.Legion(
        player, "Rd02",
        Creature.n2c(["Titan", "Lion", "Gargoyle", "Centaur", "Centaur"]), 1)
    caretaker = Caretaker.Caretaker()

    assert legion.available_recruits("Marsh", caretaker) == []
    assert legion.available_recruits("Desert", caretaker) == ["Lion"]
    assert legion.available_recruits("Plains",
                                     caretaker) == ["Centaur", "Lion"]
    assert legion.available_recruits("Brush", caretaker) == ["Gargoyle"]
    assert legion.available_recruits(
        "Tower", caretaker) == ["Ogre", "Centaur", "Gargoyle", "Warlock"]
コード例 #7
0
def test_put_back_too_many():
    caretaker = Caretaker.Caretaker()
    assert caretaker.num_left("Serpent") == 10
    caretaker.put_one_back("Serpent")
    assert caretaker.num_left("Serpent") == 10
コード例 #8
0
def test_init():
    caretaker = Caretaker.Caretaker()
    assert caretaker.num_left("Centaur") == 25
    assert caretaker.num_left("Titan") == 6
    assert caretaker.num_left("Wyvern") == 18
コード例 #9
0
def test_take_one():
    caretaker = Caretaker.Caretaker()
    assert caretaker.num_left("Wyvern") == 18
    caretaker.take_one("Wyvern")
    assert caretaker.num_left("Wyvern") == 17
コード例 #10
0
def test_available_recruits_and_recruiters():
    now = time.time()
    game = Game.Game("g1", "p0", now, now, 2, 6)
    player = Player.Player("p0", game, 0)

    legion = Legion.Legion(
        player, "Rd01",
        Creature.n2c(["Titan", "Gargoyle", "Centaur", "Centaur"]), 1)
    caretaker = Caretaker.Caretaker()

    assert legion.available_recruits_and_recruiters("Marsh", caretaker) == []
    assert legion.available_recruits_and_recruiters("Desert", caretaker) == []
    assert legion.available_recruits_and_recruiters("Plains", caretaker) == [
        ("Centaur", "Centaur"), ("Lion", "Centaur", "Centaur")
    ]
    assert legion.available_recruits_and_recruiters("Brush", caretaker) == [
        ("Gargoyle", "Gargoyle")
    ]
    assert legion.available_recruits_and_recruiters("Tower", caretaker) == [
        ("Ogre", ), ("Centaur", ), ("Gargoyle", ), ("Warlock", "Titan")
    ]

    caretaker.counts["Centaur"] = 0
    assert legion.available_recruits_and_recruiters("Plains", caretaker) == [
        ("Lion", "Centaur", "Centaur")
    ]

    legion2 = Legion.Legion(
        player, "Rd02",
        Creature.n2c(["Titan", "Gargoyle", "Gargoyle", "Gargoyle"]), 1)
    assert legion2.available_recruits_and_recruiters("Tower", caretaker) == [
        ("Ogre", ), ("Gargoyle", ), ("Warlock", "Titan"),
        ("Guardian", "Gargoyle", "Gargoyle", "Gargoyle")
    ]
    assert legion2.available_recruits_and_recruiters("Brush", caretaker) == [
        ("Gargoyle", "Gargoyle"), ("Cyclops", "Gargoyle", "Gargoyle")
    ]

    legion3 = Legion.Legion(player, "Rd03", Creature.n2c(["Colossus"]), 1)
    assert legion3.available_recruits_and_recruiters("Tundra", caretaker) == [
        ("Troll", "Colossus"), ("Warbear", "Colossus"), ("Giant", "Colossus"),
        ("Colossus", "Colossus")
    ]
    assert legion3.available_recruits_and_recruiters(
        "Mountains", caretaker) == [("Lion", "Colossus"),
                                    ("Minotaur", "Colossus"),
                                    ("Dragon", "Colossus"),
                                    ("Colossus", "Colossus")]
    assert legion3.available_recruits_and_recruiters("Marsh", caretaker) == []

    legion4 = Legion.Legion(
        player, "Rd04",
        Creature.n2c(["Behemoth", "Cyclops", "Cyclops", "Cyclops"]), 1)
    assert legion4.available_recruits_and_recruiters("Brush", caretaker) == [
        ("Gargoyle", "Cyclops"), ("Cyclops", "Cyclops"),
        ("Gorgon", "Cyclops", "Cyclops")
    ]
    logging.info(legion4.available_recruits_and_recruiters(
        "Jungle", caretaker))
    assert legion4.available_recruits_and_recruiters("Jungle", caretaker) == [
        ("Gargoyle", "Cyclops"),
        ("Gargoyle", "Behemoth"),
        ("Cyclops", "Cyclops"),
        ("Cyclops", "Behemoth"),
        ("Behemoth", "Cyclops", "Cyclops", "Cyclops"),
        ("Behemoth", "Behemoth"),
    ]