@@ -89,8 +89,15 @@ func XCTAssertEqualSequences<S1: Sequence, S2: Sequence>(
89
89
func XCTAssertUnorderedEqualSequences< S1: Sequence , S2: Sequence > (
90
90
_ expression1: @autoclosure ( ) throws -> S1 ,
91
91
_ expression2: @autoclosure ( ) throws -> S2 ,
92
+ _ message: @autoclosure ( ) -> String = " " ,
92
93
file: StaticString = #file, line: UInt = #line
93
94
) rethrows where S1. Element: Equatable , S1. Element == S2 . Element {
95
+ func fail( _ reason: String ) {
96
+ let message = message ( )
97
+ XCTFail ( message. isEmpty ? reason : " \( message) - \( reason) " ,
98
+ file: file, line: line)
99
+ }
100
+
94
101
var s1 = Array ( try expression1 ( ) )
95
102
var missing : [ S1 . Element ] = [ ]
96
103
for elt in try expression2 ( ) {
@@ -101,15 +108,14 @@ func XCTAssertUnorderedEqualSequences<S1: Sequence, S2: Sequence>(
101
108
s1. remove ( at: idx)
102
109
}
103
110
104
- XCTAssertTrue (
105
- missing. isEmpty, " first sequence missing ' \( missing) ' elements from second sequence " ,
106
- file: file, line: line
107
- )
111
+ if !missing. isEmpty {
112
+ fail ( " first sequence missing ' \( missing) ' elements from second sequence " )
113
+ }
114
+
115
+ if !s1. isEmpty {
116
+ fail ( " first sequence contains \( s1) missing from second sequence " )
117
+ }
108
118
109
- XCTAssertTrue (
110
- s1. isEmpty, " first sequence contains \( s1) missing from second sequence " ,
111
- file: file, line: line
112
- )
113
119
}
114
120
115
121
func XCTAssertEqualSequences< S1: Sequence , S2: Sequence > (
0 commit comments