@@ -12,6 +12,19 @@ func checkMatch<S: Collection, T: Collection>(_ x: S, _ y: T, _ i: S.Index)
12
12
expectEqual ( x [ i] , y [ i] )
13
13
}
14
14
15
+ func checkMatchContiguousStorage< S: Collection , T: Collection > ( _ x: S , _ y: T )
16
+ where S. Element == T . Element , S. Element: Equatable
17
+ {
18
+ let xElement = x. withContiguousStorageIfAvailable { $0. first }
19
+ let yElement = y. withContiguousStorageIfAvailable { $0. first }
20
+ expectEqual ( xElement, yElement)
21
+ }
22
+
23
+ func checkHasContiguousStorage< S: Collection > ( _ x: S ) {
24
+ let hasStorage = x. withContiguousStorageIfAvailable { _ in true } ?? false
25
+ expectTrue ( hasStorage)
26
+ }
27
+
15
28
SubstringTests . test ( " Equality " ) {
16
29
let s = " abcdefg "
17
30
let s1 = s [ s. index ( s. startIndex, offsetBy: 2 ) ..<
@@ -228,6 +241,13 @@ SubstringTests.test("UTF8View") {
228
241
expectEqual ( " " , String ( t. dropLast ( 100 ) ) !)
229
242
expectEqual ( " " , String ( u. dropFirst ( 100 ) ) !)
230
243
expectEqual ( " " , String ( u. dropLast ( 100 ) ) !)
244
+
245
+ checkHasContiguousStorage ( s. utf8)
246
+ checkHasContiguousStorage ( t)
247
+ checkHasContiguousStorage ( u)
248
+ checkMatchContiguousStorage ( Array ( s. utf8) , s. utf8)
249
+ checkMatchContiguousStorage ( Array ( t) , t)
250
+ checkMatchContiguousStorage ( Array ( u) , u)
231
251
}
232
252
}
233
253
0 commit comments