示例#1
0
 def testSeveralChoices(self):
     choices = ChoiceDoer([0, 3, 0, 2])
     rider = createRouleur()
     p = Player(choices, [rider])
     p.pickNextMoves()
     p.pickNextMoves()
     assert_equals(7, rider.nextMove)
示例#2
0
 def testBackOfGroupInAscent(self):
     track = Track([(1, "ascent"), (9, "normal")])
     grimpeur = Rider(0, 0)
     rouleur = Rider(1, 0)
     streamer = Rider(3, 0)
     slipstreaming([grimpeur, rouleur, streamer], track)
     assert_equals((0, 0), grimpeur.position())
     assert_equals((2, 0), rouleur.position())
示例#3
0
 def testNextMovesSelected(self):
     choices = ChoiceDoer([0, 3, 0, 2])
     rouleur = createRouleur()
     sprinteur = createSprinteur()
     p = Player(choices, [rouleur, sprinteur])
     p.pickNextMoves()
     assert_equals(6, rouleur.nextMove)
     assert_equals(4, sprinteur.nextMove)
示例#4
0
 def testRanking(self):
     first = createRider(5, 0)
     second = createRider(4, 0)
     third = createRider(3, 0)
     fourth = createRider(0, 0)
     race = self.createRace([fourth, second, third, first])
     while not race.isOver():
         race.newTurn(Logger())
     assert_equals([first, second, third, fourth], race.ranking())
示例#5
0
 def testSlipstreamLogs(self):
     self.track = Track([(10, "normal")])
     self.addRider(1)
     self.addRider(3)
     self.addRider(4)
     self.addRider(6)
     riders = [self.rider] + self.others
     logger = Logger()
     slipstreaming(riders, self.track, logger)
     assert_equals([[2, 1], [5, 4, 3, 2]], logger.groups)
示例#6
0
 def testObstacles(self):
     riders = [
         RiderToken(0, 0),
         RiderToken(1, 0),
         RiderToken(2, 1),
         RiderToken(3, 0),
         RiderToken(3, 1)
     ]
     obstacles = Obstacles(riders)
     assert_equals([(0, 0), (1, 1), (2, 0), (3, 2), (4, 0)],
                   findPath(obstacles, (0, 0), (4, 0)))
示例#7
0
 def testGroups(self):
     firstA = Rider(5)
     secondA = Rider(4)
     firstB = Rider(1)
     secondB = Rider(0)
     exhaust([firstA, secondA, firstB, secondB])
     assert_equals(0, secondA.exhausts)
     assert_equals(1, firstA.exhausts)
     assert_equals(0, secondB.exhausts)
     assert_equals(1, firstB.exhausts)
示例#8
0
 def testRaceIsOverIfAllRidersHavePassedLine(self):
     race = self.createRace([createRider(5, 0)])
     assert_equals(True, race.isOver())
示例#9
0
 def testRaceOver(self):
     race = self.createRace([])
     assert_equals(True, race.isOver())
示例#10
0
 def testThroughAscent(self):
     self.race.set("ascent", 1)
     self.move(9)
     assert_equals((5, 0), self.rider.position())
示例#11
0
 def testSolo(self):
     rider = Rider(0)
     exhaust([rider])
     assert_equals(1, rider.exhausts)
示例#12
0
 def testBlocked(self):
     self.race.addRider(1, 0)
     self.race.addRider(1, 1)
     self.move(1)
     assert_equals((0, 0), self.rider.position())
示例#13
0
def tests():
    assert_equals(0, countYesInGroup([]))
    assert_equals(1, countYesInGroup(["d"]))
    assert_equals(2, countYesInGroup(["ad"]))
    assert_equals(2, countYesInGroup(["a", "ab"]))
    assert_equals(3, countYesInGroup(["a", "bc"]))

    assert_equals(0, countAllYesInGroup([""]))
    assert_equals(1, countAllYesInGroup(["a"]))
    assert_equals(1, countAllYesInGroup(["a", "a"]))
    assert_equals(2, countAllYesInGroup(["ab", "ab", "abc"]))
    assert_equals(0, countAllYesInGroup(["a", "ab", "c"]))
示例#14
0
 def testRiderMove(self):
     self.move(1)
     assert_equals((1, 0), self.rider.position())
示例#15
0
 def testTwoRiders(self):
     self.race.addRider(1, 0)
     self.move(1)
     assert_equals((1, 1), self.rider.position())
示例#16
0
 def testRiderAtStart(self):
     assert_equals((0, 0), self.rider.position())
示例#17
0
 def testShouldStayAtSamePositionIfBlocked(self):
     self.race.addRider(0, 0)  # Myself
     self.race.addRider(1, 0)
     self.race.addRider(1, 1)
     self.move(1)
     assert_equals((0, 0), self.rider.position())
示例#18
0
 def testStopBeforeAscent(self):
     self.race.set("ascent", 7)
     self.move(9)
     assert_equals((6, 0), self.rider.position())
示例#19
0
 def testRiderMovesAfterATurn(self):
     rider = createRider(0, 0)
     race = self.createRace([rider])
     race.newTurn(Logger())
     assert_equals(2, rider.position()[0])
示例#20
0
 def testDescent(self):
     self.race.setAll("descent")
     self.move(1)
     assert_equals((5, 0), self.rider.position())
示例#21
0
 def testDontPlayForArrivedRiders(self):
     rider = createRider(5, 0)
     rider.nextMove = 100
     race = self.createRace([rider])
     race.newTurn(Logger())
     assert_equals(100, rider.nextMove)
示例#22
0
 def testNoTeams(self):
     assert_equals([], createChampionship(SimpleGame(), []))
示例#23
0
def tests():
    assert_equals(0, howManyColors({}))

    d = {"light red": ["shiny gold"]}
    assert_equals(1, howManyColors(d))

    d = {"light red": ["shiny blue"]}
    assert_equals(0, howManyColors(d))

    d = {"light red": ["shiny gold"], "shiny blue": ["shiny gold"]}
    assert_equals(2, howManyColors(d))


    d = {"light red": ["shiny blue"], "shiny blue": ["shiny gold"]}
    assert_equals(2, howManyColors(d))

    d = {"light red": ["shiny blue"], "shiny blue": ["green gold"], "green gold": ["shiny gold"]}
    assert_equals(3, howManyColors(d))

    key, values = parseRule("light red bags contain 1 bright white bag, 2 muted yellow bags.")
    assert_equals("light red", key)
    assert_equals(["bright white", "muted yellow"], values)
示例#24
0
 def testEndOfRace(self):
     self.race = Race(4)
     self.move(4)
     assert_equals((3, 0), self.rider.position())
示例#25
0
 def testGroup(self):
     rider = Rider(0)
     exhaust([rider, Rider(1)])
     assert_equals(0, rider.exhausts)
示例#26
0
 def testThatAllGamesDone(self):
     championship = createChampionship(
         FranckGame(), ["a", "b", "c", "d", "e", "f", "g", "h"])
     assert_equals(7, count_different_opponents(championship, "a"))
示例#27
0
 def assertPosition(self, square):
     assert_equals((square, 0), self.rider.position())
示例#28
0
 def testCreateRace(self):
     riders = [createRider(0, 0)]
     race = self.createRace(riders)
     assert_equals(False, race.isOver())
     assert_similars([], race.ranking())
示例#29
0
 def testEightTeams(self):
     assert_equals(28, len(createChampionship(SimpleGame(), ["a"] * 8)))
示例#30
0
 def testStartInAscent(self):
     self.race.setAll("ascent")
     self.move(9)
     assert_equals((5, 0), self.rider.position())