@@ -36,6 +36,7 @@ class TestNSCharacterSet : XCTestCase {
36
36
( " test_AnnexPlanes " , test_AnnexPlanes) ,
37
37
( " test_Planes " , test_Planes) ,
38
38
( " test_InlineBuffer " , test_InlineBuffer) ,
39
+ ( " test_Equatable " , test_Equatable) ,
39
40
// The following tests must remain disabled until SR-2509 is resolved.
40
41
// ("test_Subtracting", test_Subtracting),
41
42
// ("test_SubtractEmptySet", test_SubtractEmptySet),
@@ -282,5 +283,28 @@ class TestNSCharacterSet : XCTestCase {
282
283
let expected = CharacterSet ( charactersIn: " abc " )
283
284
XCTAssertEqual ( expected, symmetricDifference)
284
285
}
286
+
287
+ func test_Equatable( ) {
288
+ XCTAssertEqual ( NSCharacterSet ( charactersIn: " " ) , NSCharacterSet ( charactersIn: " " ) )
289
+ XCTAssertEqual ( NSCharacterSet ( charactersIn: " a " ) , NSCharacterSet ( charactersIn: " a " ) )
290
+ XCTAssertEqual ( NSCharacterSet ( charactersIn: " ab " ) , NSCharacterSet ( charactersIn: " ab " ) )
291
+
292
+ XCTAssertNotEqual ( NSCharacterSet ( charactersIn: " abc " ) , NSCharacterSet ( charactersIn: " 123 " ) )
293
+ XCTAssertNotEqual ( NSCharacterSet ( charactersIn: " 123 " ) , NSCharacterSet ( charactersIn: " abc " ) )
294
+
295
+ XCTAssertNotEqual ( NSCharacterSet ( charactersIn: " " ) , nil )
296
+
297
+ /*
298
+ Tests disabled due to CoreFoundation bug?
299
+ These NSCharacterSet pairs are (wrongly?) evaluated to be equal. Same behaviour can be observed on macOS 10.12.
300
+ Interestingly, on iOS 11 Simulator, they are evaluted to be _not_ equal,
301
+ while on iOS 10.3.1 Simulator, they are evaluted to be equal.
302
+ */
303
+ // XCTAssertNotEqual(NSCharacterSet(charactersIn: "ab"), NSCharacterSet(charactersIn: "abc"))
304
+ // XCTAssertNotEqual(NSCharacterSet(charactersIn: "abc"), NSCharacterSet(charactersIn: "ab"))
305
+ // XCTAssertNotEqual(NSCharacterSet(charactersIn: "abc"), NSCharacterSet(charactersIn: ""))
306
+ // XCTAssertNotEqual(NSCharacterSet(charactersIn: ""), NSCharacterSet(charactersIn: "abc"))
307
+ }
308
+
285
309
}
286
310
0 commit comments