diff --git a/benchmark/scripts/be_report.py b/benchmark/scripts/be_report.py index 0bbb3af..2f0d9d5 100755 --- a/benchmark/scripts/be_report.py +++ b/benchmark/scripts/be_report.py @@ -13,13 +13,14 @@ If no argument is set, displays the datasets and its characteristics def main(args_test=None): arguments = Arguments() arguments.xset("file").xset("excel").xset("sql").xset("compare") - arguments.xset("best").xset("grid").xset("model", required=False).xset( - "score" - ) + arguments.xset("best").xset("grid").xset("model", required=False) + arguments.xset("score", required=False) args = arguments.parse(args_test) + if args.best: + args.grid = None if args.grid: - args.best = False - if args.file is None and args.best is None: + args.best = None + if args.file is None and args.best is None and args.grid is None: ReportDatasets.report() else: if args.best is not None or args.grid is not None: @@ -29,9 +30,13 @@ def main(args_test=None): report = Report(args.file, args.compare) report.report() if args.excel: - excel = Excel(args.file, args.compare) + excel = Excel( + file_name=args.file, + compare=args.compare, + ) excel.report() - Files.open(excel.get_file_name()) + is_test = args_test != None + Files.open(excel.get_file_name(), is_test) if args.sql: sql = SQL(args.file) sql.report() diff --git a/benchmark/tests/scripts/Be_Report_test.py b/benchmark/tests/scripts/Be_Report_test.py index 5e913c6..5308fa0 100644 --- a/benchmark/tests/scripts/Be_Report_test.py +++ b/benchmark/tests/scripts/Be_Report_test.py @@ -1,4 +1,6 @@ import os +from openpyxl import load_workbook +from ...Utils import Folders from ..TestBase import TestBase @@ -6,6 +8,14 @@ class BeReportTest(TestBase): def setUp(self): self.prepare_scripts_env() + def tearDown(self) -> None: + files = [ + "results_accuracy_ODTE_Galgo_2022-04-20_10:52:20_0.sql", + "results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.xlsx", + ] + self.remove_files(files, Folders.results) + return super().tearDown() + def test_be_report(self): file_name = os.path.join( "results", @@ -18,8 +28,76 @@ class BeReportTest(TestBase): def test_be_report_compare(self): file_name = "results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json" stdout, stderr = self.execute_script( - "be_report", - ["-f", file_name, "-c", "1"], + "be_report", ["-f", file_name, "-c", "1"] ) self.assertEqual(stderr.getvalue(), "") self.check_output_file(stdout, "report_compared") + + def test_be_report_datatsets(self): + stdout, stderr = self.execute_script("be_report", []) + self.assertEqual(stderr.getvalue(), "") + self.check_output_file(stdout, "report_datasets") + + def test_be_report_best(self): + stdout, stderr = self.execute_script( + "be_report", ["-s", "accuracy", "-m", "STree", "-b", "1"] + ) + self.assertEqual(stderr.getvalue(), "") + self.check_output_file(stdout, "report_best") + + def test_be_report_grid(self): + stdout, stderr = self.execute_script( + "be_report", ["-s", "accuracy", "-m", "STree", "-g", "1"] + ) + self.assertEqual(stderr.getvalue(), "") + self.check_output_file(stdout, "report_grid") + + def test_be_report_best_both(self): + stdout, stderr = self.execute_script( + "be_report", + ["-s", "accuracy", "-m", "STree", "-b", "1", "-g", "1"], + ) + self.assertEqual(stderr.getvalue(), "") + self.check_output_file(stdout, "report_best") + + def test_be_report_excel_compared(self): + file_name = "results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json" + stdout, stderr = self.execute_script( + "be_report", + ["-f", file_name, "-x", "1", "-c", "1"], + ) + file_name = os.path.join( + Folders.results, file_name.replace(".json", ".xlsx") + ) + book = load_workbook(file_name) + sheet = book["STree"] + self.check_excel_sheet(sheet, "excel_compared") + self.assertEqual(stderr.getvalue(), "") + self.check_output_file(stdout, "report_compared") + + def test_be_report_excel(self): + file_name = "results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json" + stdout, stderr = self.execute_script( + "be_report", + ["-f", file_name, "-x", "1"], + ) + file_name = os.path.join( + Folders.results, file_name.replace(".json", ".xlsx") + ) + book = load_workbook(file_name) + sheet = book["STree"] + self.check_excel_sheet(sheet, "excel") + self.assertEqual(stderr.getvalue(), "") + self.check_output_file(stdout, "report") + + def test_be_report_sql(self): + file_name = "results_accuracy_ODTE_Galgo_2022-04-20_10:52:20_0.json" + stdout, stderr = self.execute_script( + "be_report", + ["-f", file_name, "-q", "1"], + ) + file_name = os.path.join( + Folders.results, file_name.replace(".json", ".sql") + ) + self.check_file_file(file_name, "sql") + self.assertEqual(stderr.getvalue(), "")