diff --git a/CHANGES b/CHANGES index 9d7de4298..1ac88e210 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,7 @@ Pint Changelog 0.25 (unreleased) ----------------- +- Fixed bug when using context and added regression test. - Fix the default behaviour for pint-convert (cli) for importing uncertainties package (PR #2032, Issue #2016) - Added mu and mc as alternatives for SI micro prefix - Added ℓ as alternative for liter @@ -15,6 +16,7 @@ Pint Changelog 0.24.1 (2024-06-24) ----------------- +- Fixed bug when using context and added regression test. (This PR) - Fix custom formatter needing the registry object. (PR #2011) - Support python 3.9 following difficulties installing with NumPy 2. (PR #2019) - Fix default formatting of dimensionless unit issue. (PR #2012) diff --git a/pint/facets/context/registry.py b/pint/facets/context/registry.py index 8f9f71ca5..46e2ba9a7 100644 --- a/pint/facets/context/registry.py +++ b/pint/facets/context/registry.py @@ -244,6 +244,7 @@ def enable_contexts( # Finally we add them to the active context. self._active_ctx.insert_contexts(*contexts) + self._build_cache() self._switch_context_cache_and_units() def disable_contexts(self, n: int | None = None) -> None: diff --git a/pint/testsuite/regressions/__init__py b/pint/testsuite/regressions/__init__py new file mode 100644 index 000000000..e69de29bb diff --git a/pint/testsuite/regressions/conv.txt b/pint/testsuite/regressions/conv.txt new file mode 100644 index 000000000..ffec92da9 --- /dev/null +++ b/pint/testsuite/regressions/conv.txt @@ -0,0 +1,14 @@ +# Density +density_lng = 2.244 * cubic_metre_lng / metric_ton + +# Calorific value +cv_lng = 1.22 * toe / metric_ton * 1.054261895 + +metric_tons_per_second = metric_ton / s + +@context lng + [volume] / [time] -> [mass] / [time]: value / density_lng + [mass] / [time] -> [volume] / [time]: value * density_lng + [mass] / [time] -> [energy] / [time]: value * cv_lng + [energy] / [time] -> [mass] / [time]: value / cv_lng +@end diff --git a/pint/testsuite/regressions/test_contexts.py b/pint/testsuite/regressions/test_contexts.py new file mode 100644 index 000000000..8d938b9ff --- /dev/null +++ b/pint/testsuite/regressions/test_contexts.py @@ -0,0 +1,10 @@ +from pint import UnitRegistry + + +class TestRegressions: + def test_lng_conversion(self): + ureg = UnitRegistry() + ureg.load_definitions("pint/testsuite/regressions/conv.txt") + ureg.enable_contexts("lng") + u = ureg.Unit("watt") + assert u.compatible_units()