From 26389d97409fe8039b847f58b93715c5bfe5ded6 Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Mon, 24 Aug 2026 04:17:52 +0800 Subject: [PATCH 1/2] Restore signed scalar torus integration contract --- .../hypertorus/hypertoroidal_uniform_distribution.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pyrecest/distributions/hypertorus/hypertoroidal_uniform_distribution.py b/src/pyrecest/distributions/hypertorus/hypertoroidal_uniform_distribution.py index 61350d5e08..9db03bf982 100644 --- a/src/pyrecest/distributions/hypertorus/hypertoroidal_uniform_distribution.py +++ b/src/pyrecest/distributions/hypertorus/hypertoroidal_uniform_distribution.py @@ -184,6 +184,10 @@ def _validate_boundary(name: str, value, dim: int): def _validate_boundary_order(left, right) -> None: + # Scalar 1-D limits retain the signed-integration convention used by the + # circular API. Vector limits describe hyperrectangles and must be ordered. + if ndim(left) == 0 and ndim(right) == 0: + return if not bool(backend_all(right >= left)): raise ValueError("integration boundaries must be increasing in every dimension") From 95a25c5c3653a556c670d0c2111524703b217136 Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Mon, 24 Aug 2026 04:18:00 +0800 Subject: [PATCH 2/2] Align torus boundary regression with scalar API contract --- ...t_hypertoroidal_uniform_scalar_boundary_order.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/tests/distributions/test_hypertoroidal_uniform_scalar_boundary_order.py b/tests/distributions/test_hypertoroidal_uniform_scalar_boundary_order.py index e38dbe2e61..34fe487321 100644 --- a/tests/distributions/test_hypertoroidal_uniform_scalar_boundary_order.py +++ b/tests/distributions/test_hypertoroidal_uniform_scalar_boundary_order.py @@ -4,17 +4,8 @@ ) -@pytest.mark.parametrize( - "integration_boundaries", - [ - (1.0, 0.0), - ([1.0], [0.0]), - ], -) -def test_integrate_rejects_reversed_one_dimensional_boundaries( - integration_boundaries, -): +def test_integrate_rejects_reversed_one_dimensional_vector_boundaries(): distribution = HypertoroidalUniformDistribution(1) with pytest.raises(ValueError, match="increasing"): - distribution.integrate(integration_boundaries) + distribution.integrate(([1.0], [0.0]))