@@ -89,6 +89,7 @@ class TestNSString : XCTestCase {
89
89
( " test_PrefixSuffix " , test_PrefixSuffix) ,
90
90
( " test_utf16StringRangeCount " , test_StringUTF16ViewIndexStrideableRange) ,
91
91
( " test_reflection " , { _ in test_reflection } ) ,
92
+ ( " test_substringWithRange " , test_substringWithRange) ,
92
93
]
93
94
}
94
95
@@ -970,6 +971,21 @@ class TestNSString : XCTestCase {
970
971
let mutableString = NSMutableString ( string: " Test " )
971
972
XCTAssertEqual ( mutableString, " Test " )
972
973
}
974
+
975
+ func test_substringWithRange( ) {
976
+ let trivial = NSString ( string: " swift.org " )
977
+ XCTAssertEqual ( trivial. substring ( with: NSMakeRange ( 0 , 5 ) ) , " swift " )
978
+
979
+ let surrogatePairSuffix = NSString ( string: " Hurray🎉 " )
980
+ XCTAssertEqual ( surrogatePairSuffix. substring ( with: NSMakeRange ( 0 , 7 ) ) , " Hurray57225 " )
981
+
982
+ let surrogatePairPrefix = NSString ( string: " 🐱Cat " )
983
+ XCTAssertEqual ( surrogatePairPrefix. substring ( with: NSMakeRange ( 1 , 4 ) ) , " 56369Cat " )
984
+
985
+ let crlf = NSString ( string: " \r \n " )
986
+ XCTAssertEqual ( crlf. substring ( with: NSMakeRange ( 0 , 1 ) ) , " " )
987
+ XCTAssertEqual ( crlf. substring ( with: NSMakeRange ( 1 , 0 ) ) , " " )
988
+ }
973
989
}
974
990
975
991
struct ComparisonTest {
0 commit comments