def test_optimizer_positions_processing(self): positions = [ LineupPosition('1', ('1', )), LineupPosition('2', ('2', )), LineupPosition('3', ('3', )), LineupPosition('23', ('2', '3')), LineupPosition('23', ('2', '3')), LineupPosition('all', ('1', '2', '3')), LineupPosition('all', ('1', '2', '3')), ] test_settings = type('TestSettings', (settings.BaseSettings, ), {}) test_settings.positions = positions optimizer = LineupOptimizer(test_settings) self.assertEqual(len(optimizer._positions), 5) self.assertEqual(optimizer._positions[('1', )].min, 1) self.assertEqual(optimizer._positions[('1', )].max, 3) self.assertEqual(optimizer._positions[('2', )].min, 1) self.assertEqual(optimizer._positions[('2', )].max, 5) self.assertEqual(optimizer._positions[('3', )].min, 1) self.assertEqual(optimizer._positions[('3', )].max, 5) self.assertEqual(optimizer._positions[('2', '3')].min, 4) self.assertEqual(optimizer._positions[('2', '3')].max, 6) self.assertEqual(optimizer._positions[('1', '2', '3')].min, 7) self.assertEqual(optimizer._positions[('1', '2', '3')].max, 7) self.assertEqual(len(optimizer._not_linked_positions), 2) self.assertEqual(optimizer._not_linked_positions[('1', '2')].min, 2) self.assertEqual(optimizer._not_linked_positions[('1', '2')].max, 8) self.assertEqual(optimizer._not_linked_positions[('1', '3')].min, 2) self.assertEqual(optimizer._not_linked_positions[('1', '3')].max, 8)
def get_optimizer(site, sport): # type: (str, str) -> LineupOptimizer try: return LineupOptimizer(SETTINGS_MAPPING[site][sport], CSV_IMPORTERS_MAPPING[site]) except KeyError: raise NotImplementedError
def test_optimizer_positions_processing(self): optimizer = LineupOptimizer(self.TestSettings) positions = get_positions_for_optimizer(optimizer.settings.positions) self.assertEqual(len(positions), 5) self.assertEqual(positions[('1', )], 1) self.assertEqual(positions[('2', )], 1) self.assertEqual(positions[('3', )], 1) self.assertEqual(positions[('2', '3')], 4) self.assertEqual(positions[('1', '2', '3')], 7)
def test_optimizer_positions_processing_with_multipositions(self): optimizer = LineupOptimizer(self.TestSettings) positions = get_positions_for_optimizer(optimizer.settings.positions, {('1', '2'), ('2', '3'), ('1', '3')}) self.assertEqual(len(positions), 7) self.assertEqual(positions[('1', )], 1) self.assertEqual(positions[('2', )], 1) self.assertEqual(positions[('3', )], 1) self.assertEqual(positions[('2', '3')], 4) self.assertEqual(positions[('1', '2')], 2) self.assertEqual(positions[('1', '3')], 2) self.assertEqual(positions[('1', '2', '3')], 7)
def test_optimizer_positions_processing(self): positions = [ LineupPosition('1', ('1', )), LineupPosition('2', ('2', )), LineupPosition('3', ('3', )), LineupPosition('23', ('2', '3')), LineupPosition('23', ('2', '3')), LineupPosition('all', ('1', '2', '3')), LineupPosition('all', ('1', '2', '3')), ] test_settings = type('TestSettings', (settings.BaseSettings, ), {}) test_settings.positions = positions optimizer = LineupOptimizer(test_settings, None) positions = optimizer.get_positions_for_optimizer() self.assertEqual(len(positions), 7) self.assertEqual(positions[('1', )], 1) self.assertEqual(positions[('2', )], 1) self.assertEqual(positions[('3', )], 1) self.assertEqual(positions[('2', '3')], 4) self.assertEqual(positions[('1', '2')], 2) self.assertEqual(positions[('1', '3')], 2) self.assertEqual(positions[('1', '2', '3')], 7)
def test_optimizer_positions_processing(self): class TestSettings(settings.BaseSettings): positions = [ LineupPosition('1', ('1', )), LineupPosition('2', ('2', )), LineupPosition('3', ('3', )), LineupPosition('23', ('2', '3')), LineupPosition('23', ('2', '3')), LineupPosition('all', ('1', '2', '3')), LineupPosition('all', ('1', '2', '3')), ] optimizer = LineupOptimizer(TestSettings) positions = optimizer.get_positions_for_optimizer() self.assertEqual(len(positions), 7) self.assertEqual(positions[('1', )], 1) self.assertEqual(positions[('2', )], 1) self.assertEqual(positions[('3', )], 1) self.assertEqual(positions[('2', '3')], 4) self.assertEqual(positions[('1', '2')], 2) self.assertEqual(positions[('1', '3')], 2) self.assertEqual(positions[('1', '2', '3')], 7)
def setUp(self): self.lineup_optimizer = LineupOptimizer(settings.DraftKingsBasketballSettings) self.lineup_optimizer.load_players(self.players[:])
def get_optimizer(site: str, sport: str, **kwargs) -> LineupOptimizer: return LineupOptimizer(SitesRegistry.get_settings(site, sport), **kwargs)
def get_optimizer(site, sport, **kwargs): # type: (str, str, **Any) -> LineupOptimizer return LineupOptimizer(SitesRegistry.get_settings(site, sport), **kwargs)
def get_optimizer(site, sport): # type: (str, str) -> LineupOptimizer return LineupOptimizer(*SitesRegistry.get_optimizer_args(site, sport))