Ejemplo n.º 1
0
 def _get_pitch(self, soup, pa):
     """
     get pitch data
     :param soup: Beautifulsoup object
     :param pa: atbat data for plate appearance
     :return: pitches result(list)
     """
     pitches = []
     ball_tally, strike_tally = 0, 0
     for pitch in soup.find_all('pitch'):
         # pitching result
         pitch = Pitch.row(pitch, pa, pitches, ball_tally, strike_tally)
         pitches.append(pitch)
         # ball count
         ball_tally, strike_tally = RetroSheet.ball_count(ball_tally, strike_tally, pitch['pitch_res'])
     return pitches
Ejemplo n.º 2
0
 def _get_pitch(self, soup, pa):
     """
     get pitch data
     :param soup: Beautifulsoup object
     :param pa: atbat data for plate appearance
     :return: pitches result(list)
     """
     pitches = []
     ball_tally, strike_tally = 0, 0
     for pitch in soup.find_all('pitch'):
         # pitching result
         pitch = Pitch.row(pitch, pa, pitches, ball_tally, strike_tally)
         pitches.append(pitch)
         # ball count
         ball_tally, strike_tally = RetroSheet.ball_count(
             ball_tally, strike_tally, pitch['pitch_res'])
     return pitches
Ejemplo n.º 3
0
 def test_ball_count(self):
     """
     Ball Count
     """
     # ball:0 strike:0
     self.assertEqual(RetroSheet.ball_count(0, 0, 'B'), (1, 0))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'S'), (0, 1))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'C'), (0, 1))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'X'), (0, 1))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'F'), (0, 1))
     # ball:1 strike:0
     self.assertEqual(RetroSheet.ball_count(1, 0, 'B'), (2, 0))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'S'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'C'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'X'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'F'), (1, 1))
     # ball:2 strike:0
     self.assertEqual(RetroSheet.ball_count(2, 0, 'B'), (3, 0))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'S'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'C'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'X'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'F'), (2, 1))
     # ball:3 strike:0
     self.assertEqual(RetroSheet.ball_count(3, 0, 'B'), (4, 0))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'S'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'C'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'X'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'F'), (3, 1))
     # ball:0 strike:1
     self.assertEqual(RetroSheet.ball_count(0, 1, 'B'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'S'), (0, 2))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'C'), (0, 2))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'X'), (0, 2))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'F'), (0, 2))
     # ball:1 strike:1
     self.assertEqual(RetroSheet.ball_count(1, 1, 'B'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'S'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'C'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'X'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'F'), (1, 2))
     # ball:2 strike:1
     self.assertEqual(RetroSheet.ball_count(2, 1, 'B'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'S'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'C'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'X'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'F'), (2, 2))
     # ball:3 strike:1
     self.assertEqual(RetroSheet.ball_count(3, 1, 'B'), (4, 1))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'S'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'C'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'X'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'F'), (3, 2))
     # ball:0 strike:2
     self.assertEqual(RetroSheet.ball_count(0, 2, 'B'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'S'), (0, 3))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'C'), (0, 3))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'X'), (0, 3))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'F'), (0, 2))
     # ball:1 strike:2
     self.assertEqual(RetroSheet.ball_count(1, 2, 'B'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'S'), (1, 3))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'C'), (1, 3))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'X'), (1, 3))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'F'), (1, 2))
     # ball:2 strike:2
     self.assertEqual(RetroSheet.ball_count(2, 2, 'B'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'S'), (2, 3))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'C'), (2, 3))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'X'), (2, 3))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'F'), (2, 2))
     # ball:3 strike:2
     self.assertEqual(RetroSheet.ball_count(3, 2, 'B'), (4, 2))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'S'), (3, 3))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'C'), (3, 3))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'X'), (3, 3))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'F'), (3, 2))
Ejemplo n.º 4
0
 def test_ball_count(self):
     """
     Ball Count
     """
     # ball:0 strike:0
     self.assertEqual(RetroSheet.ball_count(0, 0, 'B'), (1, 0))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'S'), (0, 1))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'C'), (0, 1))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'X'), (0, 1))
     self.assertEqual(RetroSheet.ball_count(0, 0, 'F'), (0, 1))
     # ball:1 strike:0
     self.assertEqual(RetroSheet.ball_count(1, 0, 'B'), (2, 0))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'S'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'C'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'X'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(1, 0, 'F'), (1, 1))
     # ball:2 strike:0
     self.assertEqual(RetroSheet.ball_count(2, 0, 'B'), (3, 0))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'S'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'C'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'X'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(2, 0, 'F'), (2, 1))
     # ball:3 strike:0
     self.assertEqual(RetroSheet.ball_count(3, 0, 'B'), (4, 0))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'S'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'C'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'X'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(3, 0, 'F'), (3, 1))
     # ball:0 strike:1
     self.assertEqual(RetroSheet.ball_count(0, 1, 'B'), (1, 1))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'S'), (0, 2))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'C'), (0, 2))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'X'), (0, 2))
     self.assertEqual(RetroSheet.ball_count(0, 1, 'F'), (0, 2))
     # ball:1 strike:1
     self.assertEqual(RetroSheet.ball_count(1, 1, 'B'), (2, 1))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'S'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'C'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'X'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(1, 1, 'F'), (1, 2))
     # ball:2 strike:1
     self.assertEqual(RetroSheet.ball_count(2, 1, 'B'), (3, 1))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'S'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'C'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'X'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(2, 1, 'F'), (2, 2))
     # ball:3 strike:1
     self.assertEqual(RetroSheet.ball_count(3, 1, 'B'), (4, 1))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'S'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'C'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'X'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(3, 1, 'F'), (3, 2))
     # ball:0 strike:2
     self.assertEqual(RetroSheet.ball_count(0, 2, 'B'), (1, 2))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'S'), (0, 3))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'C'), (0, 3))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'X'), (0, 3))
     self.assertEqual(RetroSheet.ball_count(0, 2, 'F'), (0, 2))
     # ball:1 strike:2
     self.assertEqual(RetroSheet.ball_count(1, 2, 'B'), (2, 2))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'S'), (1, 3))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'C'), (1, 3))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'X'), (1, 3))
     self.assertEqual(RetroSheet.ball_count(1, 2, 'F'), (1, 2))
     # ball:2 strike:2
     self.assertEqual(RetroSheet.ball_count(2, 2, 'B'), (3, 2))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'S'), (2, 3))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'C'), (2, 3))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'X'), (2, 3))
     self.assertEqual(RetroSheet.ball_count(2, 2, 'F'), (2, 2))
     # ball:3 strike:2
     self.assertEqual(RetroSheet.ball_count(3, 2, 'B'), (4, 2))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'S'), (3, 3))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'C'), (3, 3))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'X'), (3, 3))
     self.assertEqual(RetroSheet.ball_count(3, 2, 'F'), (3, 2))