From 9251200777246f0797d6c9302005ffc079d1fdd6 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 26 Sep 2026 07:53:58 -0400 Subject: [PATCH 1/2] Fix DiscreteMeasures IntervalArithmetic 1.x clamp_domain API The Interval Ext used Base.intersect and ==, which throw on all IA 1.x releases; switch to intersect_interval and isequal_interval so floor downgrade tests pass at IntervalArithmetic 1.0.11. Co-Authored-By: Chris Rackauckas Co-Authored-By: Cursor Agent Agent-Harness: Cursor Agent CLI 2026.09.26-dd393fe Agent-Model: auto Agent-Session: local session, transcript at /home/crackauc/sandbox/agent-jobs/OptimalUncertaintyQuantification.jl/jobs/54-cursor/log.txt on amdci2.julia.csail.mit.edu --- lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl | 2 +- .../test/Core/discrete_measures_tests.jl | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl b/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl index 62ae7ca..d5ca913 100644 --- a/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl +++ b/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl @@ -5,7 +5,7 @@ using DiscreteMeasures, IntervalArithmetic println("Load Ext") function DiscreteMeasures.clamp_domain(x::Interval, lb, ub) bounds = interval(lb, ub) - return intersect(x, bounds) + return intersect_interval(x, bounds) end function DiscreteMeasures.clamp_weight(w::Interval{T}, maxw::T = one(T)) where {T} diff --git a/lib/DiscreteMeasures/test/Core/discrete_measures_tests.jl b/lib/DiscreteMeasures/test/Core/discrete_measures_tests.jl index 14a48ab..8f9febb 100644 --- a/lib/DiscreteMeasures/test/Core/discrete_measures_tests.jl +++ b/lib/DiscreteMeasures/test/Core/discrete_measures_tests.jl @@ -91,11 +91,13 @@ end end @testset "Interval Ext" begin - @test clamp_domain(interval(-2, -1), 0, 2) == emptyinterval() - @test clamp_domain(interval(-2, 1), 0, 2) == interval(0, 1) - @test clamp_domain(interval(0.1, 0.5), 0, 2) == interval(0.1, 0.5) - @test clamp_domain(interval(0.5, 5), 0, 2) == interval(0.5, 2) - @test clamp_domain(interval(3, 4), 0, 2) == emptyinterval() + # IntervalArithmetic 1.x: use isequal_interval — `==` on non-thin + # decorated intervals throws InconclusiveBooleanOperation. + @test isequal_interval(clamp_domain(interval(-2, -1), 0, 2), emptyinterval()) + @test isequal_interval(clamp_domain(interval(-2, 1), 0, 2), interval(0, 1)) + @test isequal_interval(clamp_domain(interval(0.1, 0.5), 0, 2), interval(0.1, 0.5)) + @test isequal_interval(clamp_domain(interval(0.5, 5), 0, 2), interval(0.5, 2)) + @test isequal_interval(clamp_domain(interval(3, 4), 0, 2), emptyinterval()) end end From 7bcb7d1eed4166571df5d7af12d46bd12cccf2aa Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 26 Sep 2026 09:35:18 -0400 Subject: [PATCH 2/2] Make IntervalArithmeticExt imports explicit for ExplicitImports QA Broad `using IntervalArithmetic` failed no_implicit_imports when the extension was loaded in the combined All suite; list Interval, interval, and intersect_interval (and DiscreteMeasures.clamp_domain) explicitly. Co-Authored-By: Chris Rackauckas Co-Authored-By: Cursor Agent Agent-Harness: Cursor Agent CLI 2026.09.26-dd393fe Agent-Model: auto Agent-Session: local session, transcript at /home/crackauc/sandbox/agent-jobs/OptimalUncertaintyQuantification.jl/jobs/54-cursor/log.txt on amdci2.julia.csail.mit.edu --- lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl b/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl index d5ca913..0b597f3 100644 --- a/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl +++ b/lib/DiscreteMeasures/ext/IntervalArithmeticExt.jl @@ -1,6 +1,7 @@ module IntervalArithmeticExt -using DiscreteMeasures, IntervalArithmetic +using DiscreteMeasures: DiscreteMeasures, clamp_domain +using IntervalArithmetic: IntervalArithmetic, Interval, interval, intersect_interval println("Load Ext") function DiscreteMeasures.clamp_domain(x::Interval, lb, ub)