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)
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)
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))
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))
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))
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])
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')
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)
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)
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))
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))
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))
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)
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])
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))
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)
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))