diff --git a/src/pyrecest/distributions/hypertorus/hypertoroidal_uniform_distribution.py b/src/pyrecest/distributions/hypertorus/hypertoroidal_uniform_distribution.py index 61350d5e0..9db03bf98 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") diff --git a/tests/distributions/test_hypertoroidal_uniform_scalar_boundary_order.py b/tests/distributions/test_hypertoroidal_uniform_scalar_boundary_order.py index e38dbe2e6..34fe48732 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]))