def main(program_slice, vulnerability_pattern, debug=False): program_slice_json = read_from_json(program_slice) vuln_pattern_json = read_from_json(vulnerability_pattern) output_filename = program_slice[:-5] + ".output.json" output = program_analysis(program_slice_json, vuln_pattern_json, debug=debug) write_to_json(output, output_filename)
def test_slice1(): program_slice = "{}/data/slice1.json".format(ROOT_DIR) pattern = "{}/tests/test_slice1/slice1_vuln_pattern.json".format(ROOT_DIR) analyzer(program_slice, pattern, debug=True) output = read_from_json("{}/data/slice1.output.json".format(ROOT_DIR)) assert output == [{ "vulnerability": "SQL injection", "source": "a", "sink": "z", "sanitizer": "", }]
def test_slice4(): program_slice = "{}/data/slice4.json".format(ROOT_DIR) pattern = "{}/tests/test_slice4/slice4_vuln_pattern.json".format(ROOT_DIR) analyzer(program_slice, pattern, debug=False) output = read_from_json("{}/data/slice4.output.json".format(ROOT_DIR)) assert output == [{ "vulnerability": "SQL injection", "source": "koneksi", "sink": "s", "sanitizer": "", }]
y_column_name, step_size=step_size) best_score, best_number_features, best_feature_sets = get_scores_from_feature_sub_sets( df, features_in_sub_sets, y_column_name) return best_score, best_number_features, data[best_feature_sets + [y_column_name]] if __name__ == "__main__": data: pd.DataFrame = pd.read_csv( "{}/data/df_without_corr.csv".format(ROOT_DIR)) find_best_feature_sub_sets(data, y_column_name="class", step_size=1, verbose=True, save_to_file=True) feature_sets = read_from_json("feature_sets") print( get_scores_from_feature_sub_sets( data, feature_sets=feature_sets, y_column_name="class", classifier=knn_model, save_to_file=True, )) feature_sub_set_scores = read_from_json("feature_sub_set_scores") plots_feature_sub_set_scores(feature_sub_set_scores)