def runTest(self): # Sanity check of the relationship of our parameters self.assertLess(TestAddPlayerSecondary.CANDIDATE_POINTS, OptimalLineupTest.OPTIMAL_LINEUP_SS_POINTS) self.assertGreater(TestAddPlayerSecondary.CANDIDATE_POINTS, OptimalLineupTest.OPTIMAL_LINEUP_2B_POINTS) self.assertLess(TestAddPlayerSecondary.CANDIDATE_SALARY / float(TestAddPlayerSecondary.CANDIDATE_POINTS), OptimalLineupTest.OPTIMAL_LINEUP_2B_SALARY / float(OptimalLineupTest.OPTIMAL_LINEUP_2B_POINTS)) self.assertLessEqual(OptimalLineupTest.OPTIMAL_LINEUP_TOTAL_SALARY - OptimalLineupTest.OPTIMAL_LINEUP_2B_SALARY + TestAddPlayerSecondary.CANDIDATE_SALARY, Draftkings.CONTEST_SALARY) player = PregameHitterGameEntry() player.rotowire_id = TestAddPlayerSecondary.CANDIDATE_ID player.primary_position = TestAddPlayerSecondary.CANDIDATE_PRIMARY_POS player.secondary_position = TestAddPlayerSecondary.CANDIDATE_SECONDARY_POS player.predicted_draftkings_points = TestAddPlayerSecondary.CANDIDATE_POINTS player.draftkings_salary = TestAddPlayerSecondary.CANDIDATE_SALARY self.optimal_lineup.add(player) self.assertEqual(self.optimal_lineup.position_map[TestAddPlayerSecondary.CANDIDATE_PRIMARY_POS]._player.rotowire_id, OptimalLineupTest.OPTIMAL_LINEUP_SS_ID) self.assertEqual(self.optimal_lineup.position_map[TestAddPlayerSecondary.CANDIDATE_SECONDARY_POS]._player.rotowire_id, TestAddPlayerSecondary.CANDIDATE_ID) self.assertEqual(self.optimal_lineup.get_total_salary(), OptimalLineupTest.OPTIMAL_LINEUP_TOTAL_SALARY - OptimalLineupTest.OPTIMAL_LINEUP_2B_SALARY + TestAddPlayerSecondary.CANDIDATE_SALARY)
def runTest(self): player = PregameHitterGameEntry() player.rotowire_id = TestAddPlayerWorse.CANDIDATE_ID player.primary_position = TestAddPlayerWorse.CANDIDATE_PRIMARY_POS player.secondary_position = TestAddPlayerWorse.CANDIDATE_SECONDARY_POS player.predicted_draftkings_points = TestAddPlayerWorse.CANDIDATE_POINTS player.draftkings_salary = TestAddPlayerWorse.CANDIDATE_SALARY self.optimal_lineup.add(player) self.assertEqual(self.optimal_lineup[TestAddPlayerWorse.CANDIDATE_PRIMARY_POS].rotowire_id, OptimalLineupTest.OPTIMAL_LINEUP_SS_ID) self.assertEqual(self.optimal_lineup[TestAddPlayerWorse.CANDIDATE_SECONDARY_POS].rotowire_id, OptimalLineupTest.OPTIMAL_LINEUP_3B_ID) self.assertEqual(self.optimal_lineup.get_total_salary(), OptimalLineupTest.OPTIMAL_LINEUP_TOTAL_SALARY)
def runTest(self): # Add the mediocre player player = PregameHitterGameEntry() player.rotowire_id = TestAddOutfielder.CANDIDATE_ID player.primary_position = TestAddOutfielder.CANDIDATE_PRIMARY_POS player.secondary_position = TestAddOutfielder.CANDIDATE_SECONDARY_POS player.predicted_draftkings_points = TestAddOutfielder.CANDIDATE_POINTS player.draftkings_salary = TestAddOutfielder.CANDIDATE_SALARY self.optimal_lineup.add(player) self.assertEqual(self.optimal_lineup[TestAddOutfielder.CANDIDATE_PRIMARY_POS][TestAddOutfielder.CANDIDATE_INSERTION_POSITION][1].rotowire_id, TestAddOutfielder.CANDIDATE_ID) self.assertEqual(self.optimal_lineup[TestAddOutfielder.CANDIDATE_SECONDARY_POS].rotowire_id, OptimalLineupTest.OPTIMAL_LINEUP_1B_ID) self.assertEqual(self.optimal_lineup.get_total_salary(), OptimalLineupTest.OPTIMAL_LINEUP_TOTAL_SALARY - OptimalLineupTest.OPTIMAL_LINEUP_OF3_SALARY + TestAddOutfielder.CANDIDATE_SALARY) # Add the best player best_player = PregameHitterGameEntry() best_player.rotowire_id = TestAddOutfielder.BEST_CANDIDATE_ID best_player.primary_position = TestAddOutfielder.BEST_CANDIDATE_PRIMARY_POS best_player.secondary_position = TestAddOutfielder.BEST_CANDIDATE_SECONDARY_POS best_player.predicted_draftkings_points = TestAddOutfielder.BEST_CANDIDATE_POINTS best_player.draftkings_salary = TestAddOutfielder.BEST_CANDIDATE_SALARY self.optimal_lineup.add(best_player) self.assertEqual(self.optimal_lineup[TestAddOutfielder.BEST_CANDIDATE_PRIMARY_POS][TestAddOutfielder.BEST_CANDIDATE_INSERTION_POSITION][1].rotowire_id, TestAddOutfielder.BEST_CANDIDATE_ID) self.assertEqual(self.optimal_lineup.get_total_salary(), OptimalLineupTest.OPTIMAL_LINEUP_TOTAL_SALARY - OptimalLineupTest.OPTIMAL_LINEUP_OF3_SALARY + TestAddOutfielder.CANDIDATE_SALARY - OptimalLineupTest.OPTIMAL_LINEUP_OF2_SALARY + TestAddOutfielder.BEST_CANDIDATE_SALARY)
def runTest(self): # Add the mediocre player player = PregameHitterGameEntry() player.rotowire_id = TestAddOutfielder.CANDIDATE_ID player.primary_position = TestAddOutfielder.CANDIDATE_PRIMARY_POS player.secondary_position = TestAddOutfielder.CANDIDATE_SECONDARY_POS player.predicted_draftkings_points = TestAddOutfielder.CANDIDATE_POINTS player.draftkings_salary = TestAddOutfielder.CANDIDATE_SALARY self.optimal_lineup.add(player) worst_player = heapq.heappop(self.optimal_lineup.position_map[TestAddOutfielder.CANDIDATE_PRIMARY_POS]._position_heap) self.assertEqual(self.optimal_lineup.position_map[TestAddOutfielder.CANDIDATE_PRIMARY_POS]._position_heap[0][1].rotowire_id, OptimalLineupTest.OPTIMAL_LINEUP_OF1_ID) heapq.heappush(self.optimal_lineup.position_map[TestAddOutfielder.CANDIDATE_PRIMARY_POS]._position_heap, worst_player) self.assertEqual(self.optimal_lineup.position_map[TestAddOutfielder.CANDIDATE_SECONDARY_POS]._player.rotowire_id, OptimalLineupTest.OPTIMAL_LINEUP_1B_ID) self.assertEqual(self.optimal_lineup.get_total_salary(), OptimalLineupTest.OPTIMAL_LINEUP_TOTAL_SALARY - OptimalLineupTest.OPTIMAL_LINEUP_1B_SALARY)
def setUp(self): self.optimal_lineup = OptimalLineupDict() player1 = PregameHitterGameEntry() player1.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_SP1_ID player1.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_SP1_SALARY player1.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_SP1_POINTS player1.primary_position = "SP" self.optimal_lineup.add(player1) player2 = PregameHitterGameEntry() player2.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_SP2_ID player2.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_SP2_SALARY player2.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_SP2_POINTS player2.primary_position = "SP" self.optimal_lineup.add(player2) player3 = PregameHitterGameEntry() player3.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_C_ID player3.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_C_SALARY player3.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_C_POINTS player3.primary_position = "C" player3.secondary_position = "1B" self.optimal_lineup.add(player3) player4 = PregameHitterGameEntry() player4.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_1B_ID player4.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_1B_SALARY player4.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_1B_POINTS player4.primary_position = "1B" player4.secondary_position = "1B" self.optimal_lineup.add(player4) player5 = PregameHitterGameEntry() player5.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_2B_ID player5.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_2B_SALARY player5.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_2B_POINTS player5.primary_position = "2B" player5.secondary_position = "SS" self.optimal_lineup.add(player5) player6 = PregameHitterGameEntry() player6.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_3B_ID player6.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_3B_SALARY player6.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_3B_POINTS player6.primary_position = "3B" player6.primary_position = "3B" self.optimal_lineup.add(player6) player7 = PregameHitterGameEntry() player7.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_SS_ID player7.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_SS_SALARY player7.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_SS_POINTS player7.primary_position = "SS" player7.secondary_position = "SS" self.optimal_lineup.add(player7) player8 = PregameHitterGameEntry() player8.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_OF1_ID player8.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_OF1_SALARY player8.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_OF1_POINTS player8.primary_position = "OF" player8.secondary_position = "OF" self.optimal_lineup.add(player8) player9 = PregameHitterGameEntry() player9.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_OF2_ID player9.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_OF2_SALARY player9.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_OF2_POINTS player9.primary_position = "OF" player9.primary_position = "OF" self.optimal_lineup.add(player9) player10 = PregameHitterGameEntry() player10.rotowire_id = OptimalLineupTest.OPTIMAL_LINEUP_OF3_ID player10.draftkings_salary = OptimalLineupTest.OPTIMAL_LINEUP_OF3_SALARY player10.predicted_draftkings_points = OptimalLineupTest.OPTIMAL_LINEUP_OF3_POINTS player10.primary_position = "OF" player10.secondary_position = "OF" self.optimal_lineup.add(player10)