From 30851d46c6b381772350072231fb29b4578906be Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 6 Oct 2026 12:54:09 +0200 Subject: [PATCH 1/2] Add the ssp245 experiment ssp245 was missing from experiments_ismip7.csv, so the checker refused every ssp245 file. Like ssp370, it starts in 2015 and ends in 2100: the ISMIP7 forcing, so far for CESM2-WACCM only, covers those years on both ice sheets. The ssp534-over test now covers both scenarios that only the ESM experiments use. Co-Authored-By: Claude Opus 5.5 (1M context) --- isschecker/data/experiments_ismip7.csv | 1 + tests/test_compliance_checker.py | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/isschecker/data/experiments_ismip7.csv b/isschecker/data/experiments_ismip7.csv index d688762..4bd25ed 100644 --- a/isschecker/data/experiments_ismip7.csv +++ b/isschecker/data/experiments_ismip7.csv @@ -1,6 +1,7 @@ experiment;start_year_min;start_year_max;end_year;duration historical;1850;2014;2014;-1 ssp370;2015;2015;2100;86 +ssp245;2015;2015;2100;86 ssp126;2015;2015;2300;286 ssp585;2015;2015;2300;286 ssp534-over;2015;2015;2300;286 diff --git a/tests/test_compliance_checker.py b/tests/test_compliance_checker.py index 44c280d..95137e8 100644 --- a/tests/test_compliance_checker.py +++ b/tests/test_compliance_checker.py @@ -639,14 +639,17 @@ def test_checker_reports_historical_time_range_violation(case_dir): ) -def test_checker_accepts_an_ssp534_over_run(tmp_path): - """The overshoot scenario of E001 and E002 runs 2015-2300.""" +@pytest.mark.parametrize( + ("scenario", "end_year"), [("ssp534-over", 2300), ("ssp245", 2100)] +) +def test_checker_accepts_an_esm_experiment_scenario(tmp_path, scenario, end_year): + """Scenarios forced only in the ESM experiments, not in the core ones.""" generate_test_files.create_netcdf_file( None, grid_name="GrIS_16000m", - scenario="ssp534-over", + scenario=scenario, start_year=2015, - nyears=286, + nyears=end_year - 2015 + 1, include_scalars=True, include_xyt=False, set_counter="E001", @@ -658,7 +661,7 @@ def test_checker_accepts_an_ssp534_over_run(tmp_path): assert summary["total_errors"] == 0, summary["log_text"] assert ( - "covering nominal years 2015-2300, as experiment 'ssp534-over'" + f"covering nominal years 2015-{end_year}, as experiment '{scenario}'" " requires: OK" in summary["log_text"] ) From 83688c794160cf02080b314a3a6785cbd7d14def Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 6 Oct 2026 12:54:09 +0200 Subject: [PATCH 2/2] Bump the version to 0.9.0 for the ssp245 experiment Co-Authored-By: Claude Opus 5.5 (1M context) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index edf9c2c..882adee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "isschecker" -version = "0.8.0" +version = "0.9.0" description = "ISMIP7 compliance checker for ice sheet model simulation NetCDF datasets" readme = "README.md" license = "MIT"