diff --git a/changelog/10533.bugfix.rst b/changelog/10533.bugfix.rst new file mode 100644 index 000000000..c49e4c3aa --- /dev/null +++ b/changelog/10533.bugfix.rst @@ -0,0 +1 @@ +Fix :func:`pytest.approx` handling of dictionaries containing one or more values of `0.0` in class ApproxMapping. diff --git a/testing/python/approx.py b/testing/python/approx.py index 6acb466ff..631e52b56 100644 --- a/testing/python/approx.py +++ b/testing/python/approx.py @@ -630,6 +630,19 @@ class TestApprox: def test_dict_vs_other(self): assert 1 != approx({"a": 0}) + def test_dict_for_div_by_zero(self, assert_approx_raises_regex): + assert_approx_raises_regex( + {"foo": 42.0}, + {"foo": 0.0}, + [ + r" comparison failed. Mismatched elements: 1 / 1:", + rf" Max absolute difference: {SOME_FLOAT}", + r" Max relative difference: inf", + r" Index \| Obtained\s+\| Expected ", + rf" foo | {SOME_FLOAT} \| {SOME_FLOAT} ± {SOME_FLOAT}", + ], + ) + def test_numpy_array(self): np = pytest.importorskip("numpy")