diff --git a/preprocessor/tools/jastadd2.jar b/preprocessor/tools/jastadd2.jar index f9c004f2f312f45848968530ca2e5c2de8db881c..2796ca1608038a32a5b9173fdd07248207b5a192 100644 Binary files a/preprocessor/tools/jastadd2.jar and b/preprocessor/tools/jastadd2.jar differ diff --git a/trainbenchmark/trainbenchmark-reporting/individual.R b/trainbenchmark/trainbenchmark-reporting/individual.R index 9d9a1f67a5f3c3949cd8c37a4cde2b466006cdf2..bdd70e34084e80b7b43860bed746d137e624ab73 100644 --- a/trainbenchmark/trainbenchmark-reporting/individual.R +++ b/trainbenchmark/trainbenchmark-reporting/individual.R @@ -29,10 +29,12 @@ sizes[["Repair"]] = c("8k", "15k", "33k", "66k", "135k", "271k", "566k", "1.1M", toolList = read.csv("tool-list.csv") +dir.create("../diagrams/recent") for (scenario in c("inject", "repair")) { + dir.create(file.path("../diagrams/recent", scenario)) # load the data - tsvs = list.files("../results/merged/individual", pattern = paste("times-.*", scenario, ".*\\.csv", sep=""), full.names = T, recursive = T) + tsvs = list.files(paste("../results/merged/individual", scenario, sep="/"), pattern = "times-.*\\.csv", full.names = T, recursive = T) l = lapply(tsvs, read.csv) times = rbindlist(l) @@ -181,4 +183,4 @@ for (scenario in c("inject", "repair")) { } } -} \ No newline at end of file +} diff --git a/trainbenchmark/trainbenchmark-reporting/merge_results.py b/trainbenchmark/trainbenchmark-reporting/merge_results.py index 537299a1d8300c651827c459ee9ff8dea6e23d01..dfe5e7344a565ec570f5c52532d17a11a8a1bcd6 100755 --- a/trainbenchmark/trainbenchmark-reporting/merge_results.py +++ b/trainbenchmark/trainbenchmark-reporting/merge_results.py @@ -1,6 +1,5 @@ #!/usr/bin/env python import argparse -import csv import glob import json import logging @@ -51,11 +50,11 @@ def include_file_config(args): def create_link(fileToLink, linkName, dry_run): + (logger.info if args.dry_run else logger.debug)('Linking %s to %s', fileToLink, linkName) if dry_run: return if os.path.lexists(linkName): os.unlink(linkName) - (logger.info if args.dry_run else logger.debug)('Linking %s to %s', fileToLink, linkName) os.symlink(fileToLink, linkName) @@ -89,6 +88,10 @@ def copy_replace(fileTocopy, all_runs_dir, tool_name, run, dry_run): run_name = new_run_name(run) targetFile = os.path.join( all_runs_dir, os.path.basename(fileTocopy).replace(tool_name, run_name)) + if dry_run: + logger.info('Would copy "%s" to "%s"', fileTocopy, targetFile) + return + logger.debug('Copying "%s" to "%s"', fileTocopy, targetFile) first = True with open(fileTocopy) as fdr_source, open(targetFile, 'w') as fdr_target: for line in fdr_source: @@ -116,9 +119,12 @@ def main(args): run1/ -> global_run_dir merged/ -> merged_dir individual/ -> merged_dir_individual - times.csv@ - - combined/ -> merged_dir_benchmark - times.csv@ - + inject/ -> merged_dir_individual_inject + times.csv@ - (only newest measurements of inject) + repair/ -> merged_dir_individual_repair + times.csv@ - (only newest measurements of repair) + benchmark/ -> merged_dir_benchmark + times.csv@ - (only newest measurements of benchmark) """ log_action = logger.info if args.dry_run else logger.debug @@ -127,22 +133,19 @@ def main(args): merged_dir = os.path.join(result_dir, 'merged') merged_dir_benchmark = os.path.join(merged_dir, 'benchmark') merged_dir_individual = os.path.join(merged_dir, 'individual') - for dir_name in (merged_dir, merged_dir_benchmark, merged_dir_individual): + merged_dir_individual_inject = os.path.join(merged_dir_individual, 'inject') + merged_dir_individual_repair = os.path.join(merged_dir_individual, 'repair') + for dir_name in (merged_dir, merged_dir_benchmark, merged_dir_individual, + merged_dir_individual_inject, merged_dir_individual_repair): ensure_directory(dir_name, args.dry_run) - # Gathering tools - tools = [] - reader = csv.reader(args.tools) - next(reader) - for row in reader: - if not row: - continue - tools.append(row[0]) - logger.debug('result_dir: %s, tools: %s', result_dir, tools) + # Using tools from config + logger.debug('result_dir: %s, tools: %s', result_dir, args.tools) # Clean symlinks if requested or max_size is set if (args.clean or args.max_size) and not args.dry_run: - for dir_to_clean in [merged_dir, merged_dir_benchmark, merged_dir_individual]: + for dir_to_clean in [merged_dir, merged_dir_benchmark, merged_dir_individual, + merged_dir_individual_inject, merged_dir_individual_inject]: for link in os.listdir(dir_to_clean): linkName = os.path.join(dir_to_clean, link) if os.path.islink(linkName): @@ -152,7 +155,7 @@ def main(args): os.remove(linkName) # Merge results - for tool in tools: + for tool in args.tools: if tool.startswith('#'): logger.debug('Ignoring tool "%s"', tool[1:]) continue @@ -182,7 +185,7 @@ def main(args): ensure_directory(global_run_dir, args.dry_run) for csvFile in os.listdir(run_dir): # link file in run directory - fileToLink = os.path.join(tool_dir, run, csvFile) + fileToLink = os.path.join(run_dir, csvFile) linkName = os.path.join(global_run_dir, csvFile) create_link(fileToLink, linkName, args.dry_run) # skip if max-size is set and size is exceeded @@ -199,8 +202,16 @@ def main(args): logging.warn('file did not match pattern: %s', csvFile) # link file in merged directory if csvFile not in already_merged: - linkName = os.path.join(merged_dir_benchmark if BENCHMARK_PATTERN.match(csvFile) - else merged_dir_individual, csvFile) + if BENCHMARK_PATTERN.match(csvFile): + target_dir = merged_dir_benchmark + elif 'inject' in csvFile: + target_dir = merged_dir_individual_inject + elif 'repair' in csvFile: + target_dir = merged_dir_individual_repair + else: + # this file has a strange name + logger.warn('Ignoring file "%s" with unknown pattern', fileToLink) + linkName = os.path.join(target_dir, csvFile) create_link(fileToLink, linkName, args.dry_run) already_merged.append(csvFile) else: diff --git a/trainbenchmark/trainbenchmark-tool-jastadd-base/libs/jastadd2.jar b/trainbenchmark/trainbenchmark-tool-jastadd-base/libs/jastadd2.jar index e25dc7f37bcebab5edcf1bb845dda0adf4aeb3ef..2796ca1608038a32a5b9173fdd07248207b5a192 100644 Binary files a/trainbenchmark/trainbenchmark-tool-jastadd-base/libs/jastadd2.jar and b/trainbenchmark/trainbenchmark-tool-jastadd-base/libs/jastadd2.jar differ