Skip to content

Commit e837647

Browse files
committed
Refactored tests
1 parent 98e3571 commit e837647

File tree

6 files changed

+350
-284
lines changed

6 files changed

+350
-284
lines changed

tests/test_exporter.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ class TestLineupExporter(unittest.TestCase):
1616
def setUpClass(cls):
1717
optimizer = get_optimizer(Site.YAHOO, Sport.BASKETBALL)
1818
cls.players = [
19-
Player(1, 'First Name 1', 'Last Name 1', ['PG'], 'Team1', 20, 20),
20-
Player(2, 'First Name 2', 'Last Name 2', ['SG'], 'Team2', 20, 20),
21-
Player(3, 'First Name 3', 'Last Name 3', ['SF'], 'Team3', 20, 20),
22-
Player(4, 'First Name 4', 'Last Name 4', ['PF'], 'Team4', 20, 20),
23-
Player(5, 'First Name 5', 'Last Name 5', ['C'], 'Team5', 20, 20),
24-
Player(6, 'First Name 6', 'Last Name 6', ['PG', 'SG'], 'Team6', 20, 20),
25-
Player(7, 'First Name 7', 'Last Name 7', ['SF', 'PF'], 'Team7', 20, 20),
26-
Player(8, 'First Name 8', 'Last Name 8', ['PG', 'SG', 'SF'], 'Team8', 20, 20),
19+
Player('1', 'First Name 1', 'Last Name 1', ['PG'], 'Team1', 20, 20),
20+
Player('2', 'First Name 2', 'Last Name 2', ['SG'], 'Team2', 20, 20),
21+
Player('3', 'First Name 3', 'Last Name 3', ['SF'], 'Team3', 20, 20),
22+
Player('4', 'First Name 4', 'Last Name 4', ['PF'], 'Team4', 20, 20),
23+
Player('5', 'First Name 5', 'Last Name 5', ['C'], 'Team5', 20, 20),
24+
Player('6', 'First Name 6', 'Last Name 6', ['PG', 'SG'], 'Team6', 20, 20),
25+
Player('7', 'First Name 7', 'Last Name 7', ['SF', 'PF'], 'Team7', 20, 20),
26+
Player('8', 'First Name 8', 'Last Name 8', ['PG', 'SG', 'SF'], 'Team8', 20, 20),
2727
]
2828
optimizer.load_players(cls.players)
2929
cls.lineups = list(optimizer.optimize(1))

tests/test_late_swap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from pydfs_lineup_optimizer.constants import Site, Sport
88
from pydfs_lineup_optimizer.lineup import Lineup
99
from pydfs_lineup_optimizer.player import LineupPlayer, GameInfo
10-
from .utils import create_players, load_players
10+
from .utils import create_players
1111

1212

1313
class LateSwapTestCase(unittest.TestCase):

tests/test_optimizer.py

Lines changed: 9 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -6,60 +6,31 @@
66
from pydfs_lineup_optimizer.lineup_optimizer import LineupOptimizer
77
from pydfs_lineup_optimizer.settings import LineupPosition
88
from pydfs_lineup_optimizer.exceptions import LineupOptimizerException
9-
from pydfs_lineup_optimizer.utils import ratio
9+
from pydfs_lineup_optimizer.utils import get_positions_for_optimizer
1010
from pydfs_lineup_optimizer.sites.yahoo.settings import YahooFootballSettings
1111
from .utils import create_players, load_players
1212

1313

1414
class OptimizerMethodsTestCase(unittest.TestCase):
15-
@classmethod
16-
def setUpClass(cls):
17-
cls.players = load_players()
18-
1915
def setUp(self):
16+
self.players = load_players()
2017
self.lineup_optimizer = get_optimizer(Site.DRAFTKINGS, Sport.BASKETBALL)
21-
self.lineup_optimizer.load_players(self.players[:])
22-
23-
def test_optimizer_positions_processing(self):
24-
class TestSettings(settings.BaseSettings):
25-
positions = [
26-
LineupPosition('1', ('1', )),
27-
LineupPosition('2', ('2', )),
28-
LineupPosition('3', ('3', )),
29-
LineupPosition('23', ('2', '3')),
30-
LineupPosition('23', ('2', '3')),
31-
LineupPosition('all', ('1', '2', '3')),
32-
LineupPosition('all', ('1', '2', '3')),
33-
]
34-
optimizer = LineupOptimizer(TestSettings)
35-
positions = optimizer.get_positions_for_optimizer()
36-
self.assertEqual(len(positions), 7)
37-
self.assertEqual(positions[('1', )], 1)
38-
self.assertEqual(positions[('2', )], 1)
39-
self.assertEqual(positions[('3', )], 1)
40-
self.assertEqual(positions[('2', '3')], 4)
41-
self.assertEqual(positions[('1', '2')], 2)
42-
self.assertEqual(positions[('1', '3')], 2)
43-
self.assertEqual(positions[('1', '2', '3')], 7)
18+
self.lineup_optimizer.load_players(self.players)
4419

4520
def test_add_player_to_lineup(self):
46-
self.lineup_optimizer.reset_lineup()
4721
self.lineup_optimizer.add_player_to_lineup(self.players[0])
4822
self.assertTrue(self.players[0] in self.lineup_optimizer.locked_players)
4923

5024
def test_same_players_in_lineup(self):
51-
self.lineup_optimizer.reset_lineup()
5225
self.lineup_optimizer.add_player_to_lineup(self.players[0])
5326
with self.assertRaises(LineupOptimizerException):
5427
self.lineup_optimizer.add_player_to_lineup(self.players[0])
5528

5629
def test_add_player_with_many_positions(self):
5730
players = create_players(['PG/SG', 'PG', 'PG', 'PG', 'PG/SG/SF', 'SF', 'SF'])
5831
self.lineup_optimizer.extend_players(players)
59-
self.lineup_optimizer.add_player_to_lineup(players[0])
60-
self.lineup_optimizer.add_player_to_lineup(players[1])
61-
self.lineup_optimizer.add_player_to_lineup(players[2])
62-
self.lineup_optimizer.add_player_to_lineup(players[3])
32+
for player in players[:4]:
33+
self.lineup_optimizer.add_player_to_lineup(player)
6334
lineup = next(self.lineup_optimizer.optimize(1))
6435
self.assertTrue(all([p in lineup.players for p in players[:4]]))
6536
self.lineup_optimizer.add_player_to_lineup(players[4])
@@ -81,25 +52,20 @@ def test_exact_number_of_players_for_position(self):
8152
next(optimizer.optimize(1))
8253

8354
def test_adding_player_with_salary_bigger_than_budget(self):
84-
self.lineup_optimizer.reset_lineup()
85-
player = Player(1, '1', '1', ['PG'], 'DEN', 100000, 2)
55+
player = Player('1', '1', '1', ['PG'], 'DEN', 100000, 2)
8656
with self.assertRaises(LineupOptimizerException):
8757
self.lineup_optimizer.add_player_to_lineup(player)
8858

8959
def test_adding_player_to_formed_position(self):
90-
self.lineup_optimizer.reset_lineup()
91-
players = []
92-
for i in '1234':
93-
players.append(Player(int(i), i, i, ['PG'], 'DEN', 10, 2))
60+
players = create_players(['PG'] * 4)
9461
for i in range(3):
9562
self.lineup_optimizer.add_player_to_lineup(players[i])
9663
with self.assertRaises(LineupOptimizerException):
9764
self.lineup_optimizer.add_player_to_lineup(players[3])
9865

9966
def test_remove_player_from_lineup(self):
10067
optimizer = self.lineup_optimizer
101-
optimizer.reset_lineup()
102-
player = Player(1, 'P', 'P', ['PG'], 'DEN', 10, 2)
68+
player = Player('1', 'P', 'P', ['PG'], 'DEN', 10, 2)
10369
optimizer.extend_players([player])
10470
optimizer.add_player_to_lineup(player)
10571
optimizer.remove_player_from_lineup(player)
@@ -108,11 +74,7 @@ def test_remove_player_from_lineup(self):
10874
optimizer.remove_player_from_lineup(player)
10975

11076
def test_lineup_with_max_players(self):
111-
self.lineup_optimizer.reset_lineup()
112-
players = [Player(1, 'P1', 'P1', ['PG'], 'DEN', 10, 2), Player(5, 'P5', 'P5', ['SG'], 'DEN', 10, 2),
113-
Player(2, 'P2', 'P2', ['SF'], 'DEN', 10, 2), Player(6, 'P6', 'P6', ['PF'], 'DEN', 10, 2),
114-
Player(3, 'P3', 'P3', ['C'], 'DEN', 10, 2), Player(7, 'P7', 'P7', ['PG'], 'DEN', 10, 2),
115-
Player(4, 'P4', 'P4', ['PF'], 'DEN', 10, 2), Player(8, 'P8', 'P8', ['PG'], 'DEN', 10, 2)]
77+
players = create_players(['PG', 'SG', 'SF', 'PF', 'C', 'PG', 'SF', 'C'])
11678
self.lineup_optimizer.extend_players(players)
11779
for player in players:
11880
self.lineup_optimizer.add_player_to_lineup(player)
@@ -124,38 +86,3 @@ def test_get_optimizer(self):
12486
self.assertEqual(optimizer._settings, YahooFootballSettings)
12587
with self.assertRaises(NotImplementedError):
12688
get_optimizer(Site.DRAFTKINGS, 'Some sport')
127-
128-
def test_ratio(self):
129-
threshold = 0.8
130-
self.assertTrue(ratio('Blake Griffin', 'Blake Griffin') >= threshold)
131-
self.assertTrue(ratio('griffin', 'Blake Griffin') >= threshold)
132-
self.assertTrue(ratio('grifin', 'Blake Griffin') >= threshold)
133-
self.assertFalse(ratio('Hood', 'Blake Griffin') >= threshold)
134-
135-
def test_lineup_building(self):
136-
optimizer = get_optimizer(Site.DRAFTKINGS, Sport.BASKETBALL)
137-
optimizer._build_lineup(create_players(['PG', 'SG', 'SF', 'PF', 'C', 'SG', 'SF', 'SF']))
138-
optimizer._build_lineup(create_players(['PG/SG', 'SG/SF', 'SF/PF', 'PF/C', 'C/PG', 'SG/SF', 'SF/PF', 'SF/PF']))
139-
optimizer._build_lineup(create_players(['PG', 'PG', 'C', 'C', 'SG/SF', 'SF/PF', 'SF/PF', 'PG/SG']))
140-
optimizer._build_lineup(create_players(['C', 'SG/SF', 'PG/SG', 'SG/SF', 'SG/SF', 'C', 'SF/PF', 'PG']))
141-
optimizer._build_lineup(create_players(['SG', 'PF', 'C', 'C', 'PF', 'PG/SF', 'PG/SG', 'PG/SG']))
142-
optimizer._build_lineup(create_players(['PG', 'PG/SG', 'PG/SG/SF', 'PG/SF/PF', 'PG/PF/C', 'PG', 'PG/SF/PF',
143-
'PG/SG']))
144-
with self.assertRaises(LineupOptimizerException):
145-
optimizer._build_lineup(create_players(['PG', 'SG', 'SF', 'PF', 'C', 'SG', 'C', 'C']))
146-
optimizer = get_optimizer(Site.DRAFTKINGS, Sport.FOOTBALL)
147-
optimizer._build_lineup(create_players(['QB', 'WR', 'WR', 'WR', 'WR', 'RB', 'RB', 'TE', 'DST']))
148-
with self.assertRaises(LineupOptimizerException):
149-
optimizer._build_lineup(create_players(['QB', 'WR', 'WR', 'WR', 'WR', 'WR', 'RB', 'RB', 'TE']))
150-
optimizer = get_optimizer(Site.DRAFTKINGS, Sport.HOCKEY)
151-
optimizer._build_lineup(create_players(['LW', 'RW', 'LW', 'RW', 'C', 'C', 'D', 'D', 'G']))
152-
with self.assertRaises(LineupOptimizerException):
153-
optimizer._build_lineup(create_players(['LW', 'RW', 'LW', 'RW', 'LW', 'C', 'D', 'D', 'G']))
154-
optimizer = get_optimizer(Site.DRAFTKINGS, Sport.BASEBALL)
155-
optimizer._build_lineup(create_players(['SP', 'SP', 'C', '1B', '2B', '3B', 'SS', 'OF', 'OF', 'OF']))
156-
with self.assertRaises(LineupOptimizerException):
157-
optimizer._build_lineup(create_players(['P', 'C', 'C', '1B', '2B', '3B', 'SS', 'OF', 'OF', 'OF']))
158-
optimizer = get_optimizer(Site.FANTASY_DRAFT, Sport.BASKETBALL)
159-
optimizer._build_lineup(create_players(['PG', 'PG', 'PG', 'SF', 'SF', 'SF', 'SF', 'SF']))
160-
with self.assertRaises(LineupOptimizerException):
161-
optimizer._build_lineup(create_players(['PG', 'PG', 'SF', 'SF', 'SF', 'SF', 'SF', 'SF']))

0 commit comments

Comments
 (0)