@@ -325,6 +325,47 @@ tests.test("Decimal Floats") {
325325 expectParse ( " 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.999999999999999999999999999 " , Float64 . infinity)
326326}
327327
328+ tests. test ( " Substring - short " ) {
329+ let s1 = " 1.02.03.0 "
330+ let s1sub = s1 [ s1. firstIndex ( of: " 2 " ) !..< s1. firstIndex ( of: " 3 " ) !]
331+ let parsed = Float64 ( s1sub)
332+ expectNotNil ( parsed)
333+ expectEqual ( parsed!. bitPattern, ( 2.0 ) . bitPattern)
334+ }
335+
336+ tests. test ( " Substring - long " ) {
337+ let s1 = " 1.00000000000000000000000000000000002.0000000000000000000000000000000000000000000000000000000003.00000000000000004.0000000000000000 "
338+ let s1sub = s1 [ s1. firstIndex ( of: " 2 " ) !..< s1. firstIndex ( of: " 3 " ) !]
339+ let parsed = Float64 ( s1sub)
340+ expectNotNil ( parsed)
341+ expectEqual ( parsed!. bitPattern, ( 2.0 ) . bitPattern)
342+ }
343+
344+ /*
345+ // These need Foundation to run, so can't run on Linux?
346+ tests.test("Bridged - short") {
347+ let s1 = "1.02.03.0"
348+ let nss1 = NSString(utf8String: s1)!
349+ let bridged = String(nss1)
350+ let range = bridged.firstIndex(of: "2")!..<bridged.firstIndex(of: "3")!
351+ let sub = bridged[range]
352+ let parsed = Float64(sub)
353+ expectNotNil(parsed)
354+ expectEqual(parsed!.bitPattern, (2.0).bitPattern)
355+ }
356+
357+ tests.test("Bridged - long") {
358+ let s1 = "1.02.0000000000000000000000000000000000000000000000000000000000003.04.05.06.07.08.09.010.011.012.013.014.015.0"
359+ let nss1 = NSString(utf8String: s1)!
360+ let bridged = String(nss1)
361+ let range = bridged.firstIndex(of: "2")!..<bridged.firstIndex(of: "3")!
362+ let sub = bridged[range]
363+ let parsed = Float64(sub)
364+ expectNotNil(parsed)
365+ expectEqual(parsed!.bitPattern, (2.0).bitPattern)
366+ }
367+ */
368+
328369@_extern ( c, " _swift_stdlib_strtod_clocale " )
329370func _swift_stdlib_strtod_clocale(
330371 _: Optional < UnsafePointer < CChar > > ,
0 commit comments