From 498c764c8caba10d30f42365b647a82639bf2152 Mon Sep 17 00:00:00 2001 From: AZero13 Date: Fri, 5 Dec 2025 16:44:12 -0500 Subject: [PATCH] SequenceAllSatisfy is mapped to SequenceContainsWhere, and not SequenceAllSatisfy This is a typo. SequenceAllSatisfy should map to SequenceAllSatisfy. --- .../Archiving/PredicateCodableConfiguration.swift | 2 +- .../PredicateCodableTests.swift | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Sources/FoundationEssentials/Predicate/Archiving/PredicateCodableConfiguration.swift b/Sources/FoundationEssentials/Predicate/Archiving/PredicateCodableConfiguration.swift index d4fab3740..70fa24dd4 100644 --- a/Sources/FoundationEssentials/Predicate/Archiving/PredicateCodableConfiguration.swift +++ b/Sources/FoundationEssentials/Predicate/Archiving/PredicateCodableConfiguration.swift @@ -391,7 +391,7 @@ extension PredicateCodableConfiguration { configuration.allowPartialType(PredicateExpressions.Range, PredicateExpressions.Value>.self, identifier: "PredicateExpressions.Range") configuration.allowPartialType(PredicateExpressions.SequenceContains, PredicateExpressions.Value>.self, identifier: "PredicateExpressions.SequenceContains") configuration.allowPartialType(PredicateExpressions.SequenceContainsWhere, PredicateExpressions.Value>.self, identifier: "PredicateExpressions.SequenceContainsWhere") - configuration.allowPartialType(PredicateExpressions.SequenceContainsWhere, PredicateExpressions.Value>.self, identifier: "PredicateExpressions.SequenceAllSatisfy") + configuration.allowPartialType(PredicateExpressions.SequenceAllSatisfy, PredicateExpressions.Value>.self, identifier: "PredicateExpressions.SequenceAllSatisfy") configuration.allowPartialType(PredicateExpressions.SequenceStartsWith, PredicateExpressions.Value<[Int]>>.self, identifier: "PredicateExpressions.SequenceStartsWith") configuration.allowPartialType(PredicateExpressions.SequenceMaximum>.self, identifier: "PredicateExpressions.SequenceMaximum") configuration.allowPartialType(PredicateExpressions.SequenceMinimum>.self, identifier: "PredicateExpressions.SequenceMinimum") diff --git a/Tests/FoundationEssentialsTests/PredicateCodableTests.swift b/Tests/FoundationEssentialsTests/PredicateCodableTests.swift index 5124fd0d9..7dba21e57 100644 --- a/Tests/FoundationEssentialsTests/PredicateCodableTests.swift +++ b/Tests/FoundationEssentialsTests/PredicateCodableTests.swift @@ -213,6 +213,19 @@ private struct PredicateCodableTests { } } + @Test func sequenceAllSatisfyRoundTrip() throws { + let predicate = #Predicate<[Int]> { + $0.allSatisfy { $0 > 0 } + } + + let decoded = try _encodeDecode(predicate, for: StandardConfig.self) + + #expect(try predicate.evaluate([1, 2, 3])) + #expect(try decoded.evaluate([1, 2, 3])) + #expect(try !predicate.evaluate([-1, 2, 3])) + #expect(try !decoded.evaluate([-1, 2, 3])) + } + @Test func disallowedKeyPath() throws { var predicate = #Predicate { $0.f