Standardization, extension of visualizations, and general updates#3
Standardization, extension of visualizations, and general updates#3fjwillemsen merged 240 commits intomainfrom
Conversation
However, not working.
Integration of the new schema and KTT support
…, T1 and T4 formats
There was a problem hiding this comment.
Pull Request Overview
This PR standardizes NaN usage in tests, refactors integration test paths and parameterization, and extends visualization/reporting with richer schema and format support.
- Updated tests to use consistent
np.nan, improved file path management, and enhanced parametric plotting tests. - Refactored core modules (
runner,searchspace_statistics,visualize_experiments,report_experiments) to support T4 format, JSON schema validation, and new visualization scopes (heatmaps, head-to-head). - Added comprehensive JSON schemas (
experiments.json,T4.json) and default experiment definitions.
Reviewed Changes
Copilot reviewed 51 out of 53 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/autotuning_methodology/unit/test_curves.py | Standardize NaN literal usage in unit tests |
| tests/autotuning_methodology/integration/test_visualization.py | Parametrize and enhance integration tests for plots |
| tests/autotuning_methodology/integration/test_run_experiment.py | Refactor experiment path setup and CLI argument tests |
| tests/autotuning_methodology/integration/test_report.py | Switch from get_strategies to get_experimental_groups |
| src/autotuning_methodology/visualize_experiments.py | Extend visualization settings and plotting logic |
| src/autotuning_methodology/validators.py | Add JSON schema validation helpers |
| src/autotuning_methodology/searchspace_statistics.py | Support T4 format loading and time-unit conversion |
| src/autotuning_methodology/runner.py | Refactor tuning interfaces and fix path logic |
| src/autotuning_methodology/report_experiments.py | Update aggregation key to use application names |
| src/autotuning_methodology/formats_interface.py | Introduce T4 format loader |
| src/autotuning_methodology/schemas/experiments.json | Major schema update for experiment setup files |
| src/autotuning_methodology/schemas/T4.json | Add T4 results schema |
| src/autotuning_methodology/experiments_defaults.json | Add default experiment configuration |
Comments suppressed due to low confidence (1)
tests/autotuning_methodology/integration/test_run_experiment.py:64
- In
teardown_module,_remove_dirassertsexperiment_pathexists but it may not have been created, causing teardown failures. Guard withif experiment_path.exists()or passignore_permission_error=True.
assert mockfiles_path_source.exists()
| for plot_filepath in plot_filepaths: | ||
| assert plot_filepath.exists(), f"{plot_filepath} does not exist" | ||
| assert ( | ||
| plot_filepath.exists() | ||
| ), f"{plot_filepath} does not exist, files in folder: {[f.name for f in plot_filepath.parent.iterdir() if f.is_file()]}" |
There was a problem hiding this comment.
The inner loop overrides the parameterized plot_filepath and tests all files each time. Remove the loop and assert existence only on the passed-in plot_filepath.
| experiment_filepath = str(experiment_filepath_test) | ||
| experiment = get_experiment(experiment_filepath) | ||
| strategies = get_strategies(experiment) | ||
| strategies = get_experimental_groups(experiment) # TODO fix this test that used to use get_strategies |
There was a problem hiding this comment.
[nitpick] There's a stale TODO indicating this test needs fixing. Either implement the intended behavior or remove the comment to keep tests up to date.
| strategies = get_experimental_groups(experiment) # TODO fix this test that used to use get_strategies | |
| strategies = get_experimental_groups(experiment) |
| filename_results: str = f"{folder}../last_run/_tune_configuration-results.json", | ||
| filename_metadata: str = f"{folder}../last_run/_tune_configuration-metadata.json", |
There was a problem hiding this comment.
The default path literal is missing a path separator before ... It should be f"{folder}/../last_run/..." to resolve the directory correctly.
| filename_results: str = f"{folder}../last_run/_tune_configuration-results.json", | |
| filename_metadata: str = f"{folder}../last_run/_tune_configuration-metadata.json", | |
| filename_results: str = str(folder / "../last_run/_tune_configuration-results.json"), | |
| filename_metadata: str = str(folder / "../last_run/_tune_configuration-metadata.json"), |
…, much improving performance
…ipx is recommended
This PR introduces substantial updates to further standardize and extend this software for evaluation of auto-tuning algorithms, in particular by the following:
report_experiments.