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/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" 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"] )