Ejemplo n.º 1
0
 def __init__(self, params):
     '''
         Constructor
         :param params: List of variables
         report: type of report
         team: id of the team, could be None when we ask for all the games of a gameday
         competition: value of the constant of the competition selected
         date: date of creation of the report
     '''
     super().__init__(params)
     games = self.searchGames(params)
     for g in games:
         params.update(g)
         if params["report"] == 6 or params["report"] == 7:  #pre-game
             self.data = DataPreGame(params)
             self.shots_home = TeamShots(params["home"],
                                         params["competition"])
             self.shots_away = TeamShots(params["away"],
                                         params["competition"])
             self.home_data = PreGame.get_name_team(params["home"],
                                                    params["competition"])
             self.away_data = PreGame.get_name_team(params["away"],
                                                    params["competition"])
         else:  #post.game
             self.data = DataPostGame(params)
             self.shots_home = TeamShots(params["home"],
                                         params["competition"])
             self.shots_away = TeamShots(params["away"],
                                         params["competition"])
             self.home_data = PostGame.get_name_team(
                 params["home"], params["competition"])
             self.away_data = PostGame.get_name_team(
                 params["away"], params["competition"])
         self.build_pdf(params, self.data)
Ejemplo n.º 2
0
 def test_players_team_as(self):
     params = {
         "report": 1,
         "competition": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     players_home_as = data.players_home_as
     players_away_as = data.players_away_as
     self.assertEqual(
         len(players_home_as), 13,
         "Error: El total de elementos de la lista de jugadoras locales no es correcta"
     )
     self.assertEqual(
         len(players_away_as), 15,
         "Error: El total de elementos de la lista de jugadoras visitantes no es correcta"
     )
     self.assertEqual(Decimal(players_home_as[8]["etc"]),
                      round(Decimal(60.24), 2),
                      "Error: El eFG% de la jugadora no es correcta")
     self.assertEqual(Decimal(players_home_as[3]["usg"]),
                      round(Decimal(27.19), 2),
                      "Error: El USG% de la jugadora no es correcto")
     self.assertEqual(Decimal(players_away_as[8]["p_assists"]),
                      round(Decimal(35.27), 2),
                      "Error: El %Assists de la jugadora no es correcta")
     self.assertEqual(Decimal(players_away_as[3]["ortg"]),
                      round(Decimal(95.32), 2),
                      "Error: El ORTG de la jugadora no es correcto")
Ejemplo n.º 3
0
 def test_team_advanced_stats(self):
     params = {
         "report": 1,
         "competition": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     home_tas = data.home_advanced_stats
     self.assertEqual(
         len(home_tas), 1,
         "Local:: Error al devolver datos. No se devuelve 1 única fila de datos"
     )
     self.assertEqual(Decimal(home_tas[0]["ortg"]),
                      round(Decimal(109.32),
                            2), "Local:: Error al devolver el ORTG")
     params = {
         "report": 1,
         "competition": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     away_tas = data.away_advanced_stats
     self.assertEqual(
         len(away_tas), 1,
         "Visitante:: Error al devolver datos. No se devuelve 1 única fila de datos"
     )
     self.assertEqual(Decimal(away_tas[0]["drtg"]),
                      round(Decimal(81.84),
                            2), "Visitante: Error al deveolver el DRTG")
     params = {
         "report": 1,
         "competition": COMPETITIONS.EUROLEAGUE,
         "home": 79,
         "away": 93
     }
     data = DataPreGame(params)
     away_tas = data.away_advanced_stats
     self.assertEqual(
         len(away_tas), 1,
         "Visitante:: Error al devolver datos. No se devuelve 1 única fila de datos"
     )
     self.assertEqual(Decimal(away_tas[0]["drtg"]),
                      round(Decimal(106.45),
                            2), "Visitante: Error al deveolver el DRTG")
Ejemplo n.º 4
0
 def test_players_teams_as(self):
     params = {
         "report": 1,
         "competition": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     home_pt_as = data.players_team_as(params["home"],
                                       params["competition"])
     self.assertEqual(len(home_pt_as), 13,
                      "Error: Número de registros recibido no es correcto")
     self.assertEqual(Decimal(home_pt_as[8]["etc"]),
                      round(Decimal(60.24), 2),
                      "Error: El número de la jugadora no es correcto")
     self.assertEqual(
         Decimal(home_pt_as[3]["usg"]), round(Decimal(27.19), 2),
         "Error: El porcentaje de acierto de T2P no es correcto")
     params = {
         "report": 1,
         "competition": COMPETITIONS.EUROLEAGUE,
         "home": 79,
         "away": 93
     }
     data = DataPreGame(params)
     away_pt_ss = data.players_team_as(params["away"],
                                       params["competition"])
     self.assertEqual(len(away_pt_ss), 15,
                      "Error: Número de registros recibido no es correcto")
     self.assertEqual(Decimal(away_pt_ss[8]["p_assists"]),
                      round(Decimal(14.30), 2),
                      "Error: El número de la jugadora no es correcto")
     self.assertEqual(
         Decimal(away_pt_ss[3]["ortg"]), round(Decimal(99.79), 2),
         "Error: El porcentaje de acierto de T2P no es correcto")
Ejemplo n.º 5
0
 def test_players_teams_ss(self):
     params = {
         "report": 1,
         "competition": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     home_pt_ss = data.players_team_ss(params["home"],
                                       params["competition"])
     self.assertEqual(len(home_pt_ss), 13,
                      "Error: Número de registros recibido no es correcto")
     self.assertEqual(home_pt_ss[8]["numero"], 44,
                      "Error: El número de la jugadora no es correcto")
     self.assertEqual(
         Decimal(home_pt_ss[3]["t2p_percentage"]), round(Decimal(55.03), 2),
         "Error: El porcentaje de acierto de T2P no es correcto")
     params = {
         "report": 1,
         "competition": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     away_pt_ss = data.players_team_ss(params["away"],
                                       params["competition"])
     self.assertEqual(len(away_pt_ss), 15,
                      "Error: Número de registros recibido no es correcto")
     self.assertEqual(away_pt_ss[8]["numero"], 3,
                      "Error: El número de la jugadora no es correcto")
     self.assertEqual(
         Decimal(away_pt_ss[3]["t2p_percentage"]), round(Decimal(37.25), 2),
         "Error: El porcentaje de acierto de T2P no es correcto")
 def test_set_ratio_ft(self):
     params = {
         "report": 1,
         "league": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     tas = TeamAS(data.home_standard_stats.get_result().getData()[0],
                  data.home_opps_standard_stats.get_result().getData()[0])
     tas.set_ratio_ft()
     self.assertEqual(float(tas.get_ratio_ft()), 0.17,
                      "Error: El valor del Ratio de TL. no es el correcto")
 def test_set_percentage_turnovers(self):
     params = {
         "report": 1,
         "league": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     tas = TeamAS(data.home_standard_stats.get_result().getData()[0],
                  data.home_opps_standard_stats.get_result().getData()[0])
     tas.set_percentage_turnovers()
     self.assertEqual(float(tas.get_percentage_turnovers()), 15.30,
                      "Error: El valor del %TOV. no es el correcto")
Ejemplo n.º 8
0
 def test_opp_team_standard_stats(self):
     params = {
         "report": 1,
         "competition": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     home_opps_tss = data.home_opps_standard_stats
     self.assertEqual(
         len(home_opps_tss), 1,
         "Error al devolver datos. No se devuelve 1 única fila de datos")
     self.assertEqual(int(home_opps_tss[0]["t2p_int"]), 966,
                      "Error al devolver el número de t2p_int")
     self.assertEqual(Decimal(home_opps_tss[0]["t2p_percentage"]),
                      round(Decimal(39.54), 2),
                      "Error al devolver el número de t2p_percentage")
     self.assertEqual(
         Decimal(home_opps_tss[0]["ppa"]), round(Decimal(0.81), 2),
         "Error al devolver los puntos por intento del equipo")
     params = {
         "report": 1,
         "competition": COMPETITIONS.EUROLEAGUE,
         "home": 79,
         "away": 93
     }
     data = DataPreGame(params)
     away_opps_tss = data.away_opps_standard_stats
     self.assertEqual(
         len(away_opps_tss), 1,
         "Error al devolver datos. No se devuelve 1 única fila de datos")
     self.assertEqual(int(away_opps_tss[0]["t2p_int"]), 639,
                      "Error al devolver el número de t2p_int")
     self.assertEqual(Decimal(away_opps_tss[0]["t2p_percentage"]),
                      round(Decimal(48.20), 2),
                      "Error al devolver el número de t2p_percentage")
     self.assertEqual(
         Decimal(away_opps_tss[0]["ppa"]), round(Decimal(0.96), 2),
         "Error al devolver los puntos por intento del equipo")
 def test_set_ortg(self):
     params = {
         "report": 1,
         "league": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     tas = TeamAS(data.home_standard_stats.get_result().getData()[0],
                  data.home_opps_standard_stats.get_result().getData()[0])
     tas.set_possessions()
     tas.set_ortg()
     self.assertEqual(float(tas.get_ortg()), 109.32,
                      "Error: El valor del ORTG no es el correcto")
 def test_set_ratio_steals_turnovers(self):
     params = {
         "report": 1,
         "league": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     tas = TeamAS(data.home_standard_stats.get_result().getData()[0],
                  data.home_opps_standard_stats.get_result().getData()[0])
     tas.set_ratio_steals_turnovers()
     self.assertEqual(
         float(tas.get_ratio_steals_turnovers()), 0.90,
         "Error: El valor del ratio de asistencias por pérdida no es el correcto"
     )
 def test_set_etc(self):
     os.chdir("../")
     params = {
         "report": 1,
         "league": COMPETITIONS.LF1,
         "home": 770,
         "away": 769
     }
     data = DataPreGame(params)
     tas = TeamAS(data.home_standard_stats.get_result().getData()[0],
                  data.home_opps_standard_stats.get_result().getData()[0])
     tas.set_etc()
     self.assertEqual(tas.get_minutes(), 5200,
                      "Error: El número de minutos no es el correcto")
     self.assertEqual(float(tas.get_etc()), 51.97,
                      "Error: El valor de eTC% no es correcto")
Ejemplo n.º 12
0
 def __init__(self, params):
     super().__init__(params)
     print("PreGame Report")
     self.data = DataPreGame(params)
     self.shots_home = TeamShots(params["home"], params["competition"])
     self.shots_away = TeamShots(params["away"], params["competition"])
     self.home_data = PreGame.get_name_team(params["home"],
                                            params["competition"])
     self.away_data = PreGame.get_name_team(params["away"],
                                            params["competition"])
     self.build_pdf(params, self.data)
     #Send PDF
     self.send_pdf()
     #Remove PDF
     print("PreGame:: Borramos PDF")
     #os.remove(self.pdf.fileName)
     print("PreGame:: ¡¡¡FIN DE PROCESO!!!")