From 2db467326919362c7418b6a8a8011037c725cda7 Mon Sep 17 00:00:00 2001 From: nvill Date: Mon, 18 May 2026 15:01:30 -0500 Subject: [PATCH 1/3] Add BOUNDS_MZR_PARAMS namedtuple. --- dsps/metallicity/umzr.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dsps/metallicity/umzr.py b/dsps/metallicity/umzr.py index e75dbce..ac7179c 100644 --- a/dsps/metallicity/umzr.py +++ b/dsps/metallicity/umzr.py @@ -67,6 +67,7 @@ MZRUParams = namedtuple("MZRUParams", _MZR_UPNAMES) DEFAULT_MZR_PARAMS = MZRParams(**DEFAULT_MZR_PDICT) +BOUNDS_MZR_PARAMS = MZRParams(**MZR_PBDICT) def get_ran_t0_params(ran_key, bounds_pdict=MZR_T0_PBDICT): From 297879725f9544cf6d47afc6289587417bb5a28c Mon Sep 17 00:00:00 2001 From: nvill Date: Tue, 19 May 2026 14:00:51 -0500 Subject: [PATCH 2/3] Change bounds namedtuple name for consistency. --- dsps/metallicity/umzr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dsps/metallicity/umzr.py b/dsps/metallicity/umzr.py index ac7179c..f47dd07 100644 --- a/dsps/metallicity/umzr.py +++ b/dsps/metallicity/umzr.py @@ -67,7 +67,7 @@ MZRUParams = namedtuple("MZRUParams", _MZR_UPNAMES) DEFAULT_MZR_PARAMS = MZRParams(**DEFAULT_MZR_PDICT) -BOUNDS_MZR_PARAMS = MZRParams(**MZR_PBDICT) +MZR_PBOUNDS = MZRParams(**MZR_PBDICT) def get_ran_t0_params(ran_key, bounds_pdict=MZR_T0_PBDICT): From 32f98c009d5c897973f26c2c6755a87bdb237a40 Mon Sep 17 00:00:00 2001 From: nvill Date: Tue, 19 May 2026 14:45:48 -0500 Subject: [PATCH 3/3] Add test to ensure that default values are within the bounds. --- dsps/metallicity/tests/test_umzr.py | 14 ++++++++++++-- dsps/metallicity/umzr.py | 3 +-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/dsps/metallicity/tests/test_umzr.py b/dsps/metallicity/tests/test_umzr.py index c1af356..909d229 100644 --- a/dsps/metallicity/tests/test_umzr.py +++ b/dsps/metallicity/tests/test_umzr.py @@ -1,5 +1,4 @@ -""" -""" +""" """ import numpy as np from jax import random as jran @@ -101,3 +100,14 @@ def test_default_umzr_params(): gen = zip(umzr.DEFAULT_MZR_U_PARAMS, umzr.DEFAULT_MZR_U_PARAMS._fields) for u_param, key in gen: assert np.all(np.isfinite(u_param)), f"Parameter `{key}` is NaN" + + +def test_default_values_within_bounds(): + values = umzr.DEFAULT_MZR_PARAMS._asdict() + bounds = umzr.MZR_PBOUNDS._asdict() + + assert len(values) == len(bounds) + + for param_name, val in values.items(): + low, high = bounds[param_name] + assert low <= val <= high diff --git a/dsps/metallicity/umzr.py b/dsps/metallicity/umzr.py index f47dd07..1450c4e 100644 --- a/dsps/metallicity/umzr.py +++ b/dsps/metallicity/umzr.py @@ -1,5 +1,4 @@ -"""Mass-metallicity-redshift scaling relation with unbounding behavior -""" +"""Mass-metallicity-redshift scaling relation with unbounding behavior""" from collections import OrderedDict, namedtuple