def test_order_substitutes(): t = Squad() class MockPlayer: def __init__(self, points, is_starting, name, squad): self.predicted_points = {0: {0: points}} self.is_starting = is_starting self.name = name self.squad = squad self.sub_position = None players = [ MockPlayer(10, False, "a", "A"), MockPlayer(9, False, "b", "B"), MockPlayer(8, False, "c", "C"), MockPlayer(11, True, "d", "D"), ] t.players = players t.order_substitutes(0, 0) expected_sub_positions = [0, 1, 2, None] for player, sub_position in zip(players, expected_sub_positions): assert player.sub_position == sub_position # test the logic that's use in __repr__ as well subs = [p for p in t.players if not p.is_starting] subs.sort(key=lambda p: p.sub_position) expected_names = ["a", "b", "c"] for player, expected_name in zip(subs, expected_names): assert player.name == expected_name
def test_get_expected_points(): t = Squad() class MockPlayer: def __init__( self, name, squad, position, points, is_starting, is_captain, is_vice_captain, ): self.name = name self.squad = squad self.position = position self.predicted_points = {0: {0: points}} self.is_starting = is_starting self.sub_position = None self.is_captain = is_captain self.is_vice_captain = is_vice_captain def calc_predicted_points(self, tag): pass # 3 pts captain (x2 = 6pts, or x3 = 9pts for TC) # 2 pts starters # 1 pt subs players = [ MockPlayer("a", "A", "GK", 2, True, False, False), MockPlayer("b", "B", "GK", 1, False, False, False), # sub 1 MockPlayer("c", "C", "DEF", 2, True, False, False), MockPlayer("d", "D", "DEF", 2, True, False, False), MockPlayer("e", "E", "DEF", 2, True, False, False), MockPlayer("f", "F", "DEF", 1, False, False, False), # sub 2 MockPlayer("g", "G", "DEF", 1, False, False, False), # sub 3 MockPlayer("h", "H", "MID", 2, True, False, False), MockPlayer("i", "I", "MID", 2, True, False, False), MockPlayer("j", "J", "MID", 2, True, False, False), MockPlayer("k", "K", "MID", 2, True, False, False), MockPlayer("l", "L", "MID", 1, False, False, False), # sub 4 MockPlayer("m", "M", "FWD", 3, True, True, False), # captain MockPlayer("n", "N", "FWD", 2, True, False, True), # vice-captain MockPlayer("o", "O", "FWD", 2, True, False, False), ] t.players = players t.num_position = {"GK": 2, "DEF": 5, "MID": 5, "FWD": 3} # no chips assert t.get_expected_points(0, 0) == 26 # bench boost assert t.get_expected_points(0, 0, bench_boost=True) == 30 # triple captain assert t.get_expected_points(0, 0, triple_captain=True) == 29