From e437809ca3e139b3dc7ffe952cf33e93cb115016 Mon Sep 17 00:00:00 2001 From: Mateusz Baran Date: Fri, 27 Feb 2026 09:05:52 +0100 Subject: [PATCH] Fix `all` with `ArrayPartition` and a functor --- src/array_partition.jl | 2 +- test/partitions_test.jl | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/array_partition.jl b/src/array_partition.jl index ffaadb89..bb4057f8 100644 --- a/src/array_partition.jl +++ b/src/array_partition.jl @@ -226,7 +226,7 @@ Base.filter(f, A::ArrayPartition) = ArrayPartition(map(x -> filter(f, x), A.x)) Base.any(f, A::ArrayPartition) = any((any(f, x) for x in A.x)) Base.any(f::Function, A::ArrayPartition) = any((any(f, x) for x in A.x)) Base.any(A::ArrayPartition) = any(identity, A) -Base.all(f, A::ArrayPartition) = all(f, (all(f, x) for x in A.x)) +Base.all(f, A::ArrayPartition) = all((all(f, x) for x in A.x)) Base.all(f::Function, A::ArrayPartition) = all((all(f, x) for x in A.x)) Base.all(A::ArrayPartition) = all(identity, A) diff --git a/test/partitions_test.jl b/test/partitions_test.jl index 3d81753a..0cc1226a 100644 --- a/test/partitions_test.jl +++ b/test/partitions_test.jl @@ -370,3 +370,8 @@ for i in 1:length(part_a.x) @test sub_a == sub_b # Test for value equality @test typeof(sub_a) === typeof(sub_b) # Test type equality end + +# ArrayPartition `all` with a functor +struct TestIsnanFunctor end +(::TestIsnanFunctor)(x) = isnan(x) +@test all(TestIsnanFunctor(), ArrayPartition([NaN], [NaN]))