Example #1
0
    def test_get_team_result_on_date_nominal(self):
        """

        """
        my_csv = 'player_box_scores.csv'
        df = Api.get_existing_data_frame(my_csv, logger=self.logger)
        date = datetime.datetime(day=25, month=10, year=2019)
        res = Api.get_team_result_on_date('Los Angeles Lakers', date, df)
        self.assertEqual('95-86', res)
Example #2
0
 def test_filter_df_on_team_names_nominal(self):
     """
     The function `filter_df_on_team_names` shall filter the given data frame only where the box score data is from
     one of the given team names.
     """
     my_csv = 'small_data_set.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     team_df = Api.filter_df_on_team_names(df, ['Los Angeles Lakers'])
     self.assertEqual(team_df.shape[0], 3)
     team_df = Api.filter_df_on_team_names(
         df, ['Los Angeles Lakers', 'Chicago Bulls'])
     self.assertEqual(team_df.shape[0], 4)
Example #3
0
 def test_create_scatter_plot_with_trend_line_svg_save(self):
     """
     The function `create_scatter_plot_with_trend_line` shall create and save a scatter plot.
     """
     my_csv = 'small_data_set.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_scatter_plot_with_trend_line(
         x_key='minutes_played',
         y_key='points',
         df=df,
         save_path='svg_buffer')
     self.assertEqual(41174, len(plot_path))
Example #4
0
 def test_create_scatter_plot_with_trend_line_nominal(self):
     """
     The function `create_scatter_plot_with_trend_line` shall create and save a scatter plot.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_scatter_plot_with_trend_line(
         x_key='minutes_played',
         y_key='points',
         df=df,
         save_path=self.logs_dir)
     self.assertTrue(os.path.exists('%s.png' % plot_path))
Example #5
0
 def test_create_date_plot_invalid_grid(self):
     """
     The function `create_date_plot` shall create and save a date plot with a default grid when provided
     with nominal data and grid is not one of the following: both, x, or y.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_date_plot(player='Anthony Davis',
                                            y_key='points',
                                            df=df,
                                            save_path=self.logs_dir,
                                            grid='BAD')
     self.assertTrue(os.path.exists('%s.png' % plot_path))
Example #6
0
 def test_create_date_plot_nominal(self):
     """
     The function `create_date_plot` shall create and save a date plot when provided nominal data.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, outlier_df, _ = Api.create_date_plot(
         player='Anthony Davis',
         y_key='points',
         df=df,
         save_path=self.logs_dir)
     self.assertTrue(os.path.exists('%s.png' % plot_path))
     self.assertEqual(5, outlier_df.shape[0])
Example #7
0
 def test_create_date_plot_player_substring(self):
     """
     The function `create_date_plot` shall return a plot path of invalid player name when given a substring of a
     player name that exists in the pandas.DataFrame object provided.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_date_plot(player='Anthony',
                                            y_key='points',
                                            df=df,
                                            save_path=self.logs_dir,
                                            grid='both')
     self.assertEqual(plot_path, 'Invalid player name of Anthony')
Example #8
0
 def test_create_scatter_plot_with_trend_line_save_path(self):
     """
     The function `create_scatter_plot_with_trend_line` shall create and save a scatter plot if given a
     specific path.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     save_path = os.path.join(self.logs_dir, 'test.png')
     plot_path, _, _ = Api.create_scatter_plot_with_trend_line(
         x_key='minutes_played', y_key='points', df=df, save_path=save_path)
     self.assertTrue(os.path.exists(plot_path))
     self.assertTrue(os.path.exists(save_path))
     self.assertEqual(plot_path, save_path)
Example #9
0
 def test_create_date_plot_invalid_max_seconds(self):
     """
     The function `create_date_plot` shall create and save a plot with default max and min seconds when provided
     an invalid max seconds value.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_date_plot(player='Anthony Davis',
                                            y_key='points',
                                            df=df,
                                            save_path=self.logs_dir,
                                            max_seconds='a')
     self.assertTrue('Max/Min seconds incorrect type' in plot_path)
Example #10
0
 def test_create_date_plot_y_grid(self):
     """
     The function `create_date_plot` shall create and save a date plot with a y axis grid only when provided
     with nominal data and grid = 'y'.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_date_plot(player='Anthony Davis',
                                            y_key='points',
                                            df=df,
                                            save_path=self.logs_dir,
                                            grid='y')
     self.assertTrue(os.path.exists('%s.png' % plot_path))
Example #11
0
 def test_create_bar_plot_one_column(self):
     """
     The function `create_bar_plot` shall create and save a bar plot when only one column is provided.
     """
     my_csv = 'small_data_set.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path = Api.create_bar_plot(df, ['points'],
                                     save_path=self.logs_dir,
                                     team=Team.LOS_ANGELES_LAKERS.name,
                                     date=datetime.datetime(day=22,
                                                            month=10,
                                                            year=2019))
     self.assertTrue(os.path.exists('%s.png' % plot_path))
Example #12
0
 def test_create_scatter_plot_with_trend_line_filter_teams(self):
     """
     The function `create_scatter_plot_with_trend_line` shall create and save a scatter plot with a filtered data
     frame based on team name.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_scatter_plot_with_trend_line(
         x_key='minutes_played',
         y_key='points',
         df=df,
         teams=['Los Angeles Lakers'],
         save_path=self.logs_dir)
     self.assertTrue(os.path.exists('%s.png' % plot_path))
Example #13
0
 def test_get_team_date_nominal(self):
     """
     The function `get_team_date` shall retrieve a pandas.DataFrame object containing the player box score
     information of a given day and team.
     """
     my_csv = 'small_data_set.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     team_df = Api.get_team_date_df(
         df, 'CHICAGO_BULLS', datetime.datetime(day=23, month=10,
                                                year=1996))
     self.assertEqual(team_df.shape[0], 0)
     team_df = Api.get_team_date_df(
         df, 'CHICAGO_BULLS', datetime.datetime(day=22, month=10,
                                                year=1996))
     self.assertEqual(team_df.shape[0], 1)
Example #14
0
 def test_create_date_plot_outlier_count(self):
     """
     The function `create_date_plot` shall create and save a plot at the desired location and create a
     pandas.DataFrame object holding the desired number of outlier points.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, outlier_df, _ = Api.create_date_plot(
         player='Anthony Davis',
         y_key='points',
         df=df,
         num_outliers=8,
         save_path=self.logs_dir)
     self.assertTrue(os.path.exists('%s.png' % plot_path))
     self.assertEqual(8, outlier_df.shape[0])
Example #15
0
 def test_create_scatter_plot_with_trend_line_minutes_filter(self):
     """
     The function `create_scatter_plot_with_trend_line` shall create and save a scatter plot when provided with
     a minimum and maximum minutes value.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_scatter_plot_with_trend_line(
         x_key='minutes_played',
         y_key='points',
         df=df,
         min_seconds=10,
         max_seconds=30,
         save_path=self.logs_dir)
     self.assertTrue(os.path.exists('%s.png' % plot_path))
Example #16
0
 def test_create_scatter_plot_with_trend_line_data_frames(self):
     """
     The function `create_scatter_plot_with_trend_line` shall create and save a scatter plot, return
     the outlier DataFrame object, and return the total filtered DataFrame object.
     """
     my_csv = 'small_data_set.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, outlier_df, total_df = Api.create_scatter_plot_with_trend_line(
         x_key='minutes_played',
         y_key='points',
         df=df,
         save_path=self.logs_dir)
     self.assertTrue(os.path.exists('%s.png' % plot_path))
     self.assertEqual(outlier_df.shape[0], 5)
     self.assertEqual(total_df.shape[0], 55)
Example #17
0
 def test_create_date_plot_nominal_params(self):
     """
     The function `create_date_plot` shall create and save a date plot when provided nominal data and optional
         **kwarg arguments.
     """
     my_csv = 'player_box_scores.csv'
     df = Api.get_existing_data_frame(my_csv, logger=self.logger)
     plot_path, _, _ = Api.create_date_plot(player='Anthony Davis',
                                            y_key='points',
                                            df=df,
                                            save_path=self.logs_dir,
                                            min_seconds=300,
                                            max_seconds=2200,
                                            num_outliers=7,
                                            grid='x',
                                            mean_line=False)
     self.assertTrue(os.path.exists('%s.png' % plot_path))