mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
stdlib/NSString APIs on String: fix a bug and add tests for
rangeOfCharacterFromSet(_:options:range:) The underlying Objective-C API could return an NSRange of NSNotFound. Swift's String.Index can not represent that, so change the API to return an optional Swift Range<Index> instead. Swift SVN r18679
This commit is contained in:
@@ -41,7 +41,7 @@ func expectNotEqual<T : Equatable>(
|
||||
|
||||
%end
|
||||
|
||||
%for (Generic, EquatableType) in [('', 'String'), ('', 'Int'), ('', 'UInt'), ('', 'NSComparisonResult'), ('<T : ForwardIndex>', 'T'), ('<T, U : Equatable>', 'Dictionary<T, U>')]:
|
||||
%for (Generic, EquatableType) in [('', 'String'), ('', 'String.Index'), ('', 'Int'), ('', 'UInt'), ('', 'NSComparisonResult'), ('<T : ForwardIndex>', 'T'), ('<T, U : Equatable>', 'Dictionary<T, U>')]:
|
||||
|
||||
func expectEqual${Generic}(
|
||||
expected: ${EquatableType}, actual: ${EquatableType},
|
||||
@@ -1002,7 +1002,39 @@ NSStringAPIs.test("propertyListFromStringsFileFormat()") {
|
||||
}
|
||||
|
||||
NSStringAPIs.test("rangeOfCharacterFromSet(_:options:range:)") {
|
||||
// FIXME
|
||||
if true {
|
||||
let charset = NSCharacterSet(charactersInString: "абв")
|
||||
if true {
|
||||
let s = "Глокая куздра"
|
||||
let r = s.rangeOfCharacterFromSet(charset)!
|
||||
expectEqual(advance(s.startIndex, 4), r.startIndex)
|
||||
expectEqual(advance(s.startIndex, 5), r.endIndex)
|
||||
}
|
||||
if true {
|
||||
expectEmpty("клмн".rangeOfCharacterFromSet(charset))
|
||||
}
|
||||
}
|
||||
|
||||
if true {
|
||||
let charset = NSCharacterSet(charactersInString: "\u305f\u3099")
|
||||
expectEmpty("\u3060".rangeOfCharacterFromSet(charset))
|
||||
}
|
||||
if true {
|
||||
let charset = NSCharacterSet(charactersInString: "\u3060")
|
||||
expectEmpty("\u305f\u3099".rangeOfCharacterFromSet(charset))
|
||||
}
|
||||
|
||||
if true {
|
||||
let charset = NSCharacterSet(charactersInString: "\U0001F600")
|
||||
if true {
|
||||
let s = "abc\U0001F600"
|
||||
expectEqual("\U0001F600",
|
||||
s[s.rangeOfCharacterFromSet(charset)!])
|
||||
}
|
||||
if true {
|
||||
expectEmpty("abc\U0001F601".rangeOfCharacterFromSet(charset))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NSStringAPIs.test("rangeOfComposedCharacterSequenceAtIndex(_:)") {
|
||||
|
||||
Reference in New Issue
Block a user