def __init__(self, experiment_df, output_directory, plotter, experiment_name=None): if experiment_name: self.name = experiment_name else: # Take name from first row. self.name = experiment_df.experiment.iloc[0] # FuzzBench repo commit hash. self.git_hash = None if 'git_hash' in experiment_df.columns: # Not possible to represent hashes for multiple experiments. if len(experiment_df.experiment.unique()) == 1: self.git_hash = experiment_df.git_hash.iloc[0] # Earliest trial start time. self.started = experiment_df.time_started.dropna().min() # Latest trial end time. self.ended = experiment_df.time_ended.dropna().max() # Keep data frame without non-interesting columns. self._experiment_df = data_utils.drop_uninteresting_columns( experiment_df) # Directory where the rendered plots are written to. self._output_directory = output_directory self._plotter = plotter
def __init__(self, experiment_df, output_directory, plotter, experiment_name=None): if experiment_name: self.name = experiment_name else: # Take name from first row. self.name = experiment_df.experiment[0] # Earliest trial start time. self.started = experiment_df.time_started.min() # Latest trial end time. self.ended = experiment_df.time_ended.max() # Keep data frame without non-interesting columns. self._experiment_df = data_utils.drop_uninteresting_columns( experiment_df) # Directory where the rendered plots are written to. self._output_directory = output_directory self._plotter = plotter self.git_hash = data_utils.get_git_hash(experiment_df)
def __init__( # pylint: disable=too-many-arguments self, experiment_df, coverage_dict, output_directory, plotter, experiment_name=None): if experiment_name: self.name = experiment_name else: # Take name from first row. self.name = experiment_df.experiment.iloc[0] # FuzzBench repo commit hash. self.git_hash = None if 'git_hash' in experiment_df.columns: # Not possible to represent hashes for multiple experiments. if len(experiment_df.experiment.unique()) == 1: self.git_hash = experiment_df.git_hash.iloc[0] # Earliest trial start time. self.started = experiment_df.time_started.dropna().min() # Latest trial end time. self.ended = experiment_df.time_ended.dropna().max() # Keep a full version of the dataframe (to count unique bugs) self._full_experiment_df = experiment_df # Keep data frame without non-interesting columns. experiment_df = data_utils.drop_uninteresting_columns(experiment_df) # Add relative columns (% of experiment max, % of fuzzer max) self._experiment_df = data_utils.add_relative_columns(experiment_df) # Directory where the rendered plots are written to. self._output_directory = output_directory self._plotter = plotter # Dictionary to store the full coverage data. self._coverage_dict = coverage_dict
def test_drop_uniteresting_columns(): experiment_df = create_experiment_data() cleaned_df = data_utils.drop_uninteresting_columns(experiment_df) assert 'time_started' not in cleaned_df.columns