@@ -34,6 +34,14 @@ enum Interesting {
3434 . nan, . signalingNaN,
3535 ]
3636
37+ static let float80OneLE : [ UInt8 ] = [
38+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0xff , 0x3f ,
39+ ]
40+
41+ static let float80OneBE : [ UInt8 ] = [
42+ 0x3f , 0xff , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
43+ ]
44+
3745 #if !(os(Windows) || os(Android) || ($Embedded && !os(Linux) && !(os(macOS) || os(iOS) || os(watchOS) || os(tvOS)))) && (arch(i386) || arch(x86_64))
3846 static let float80s : [ Float80 ] = [
3947 0.0 , 1.0 , 1000 ,
@@ -182,7 +190,7 @@ struct FloatingPointTests {
182190 #expect( value2. isSignalingNaN)
183191 }
184192 } else {
185- #expect( value1 == value)
193+ #expect( value1 == value, " \( 1 ) " )
186194 #expect( value2 == value)
187195 }
188196 }
@@ -194,13 +202,25 @@ struct FloatingPointTests {
194202 }
195203
196204 #if !(os(Windows) || os(Android) || ($Embedded && !os(Linux) && !(os(macOS) || os(iOS) || os(watchOS) || os(tvOS)))) && (arch(i386) || arch(x86_64))
205+ @Test
206+ func staticFloat80( ) throws {
207+ let leValue = try Interesting . float80OneLE. withParserSpan (
208+ Float80 . init ( parsingLittleEndian: ) )
209+ let beValue = try Interesting . float80OneBE. withParserSpan (
210+ Float80 . init ( parsingBigEndian: ) )
211+
212+ #expect( leValue == 1.0 )
213+ #expect( beValue == 1.0 )
214+ }
215+
197216 @Test ( arguments: Interesting . float80s)
198217 func testFloat80RoundTrip( _ value: Float80 ) throws {
199218 let bytesLE = Array ( littleEndian: value)
200219 let bytesBE = Array ( bigEndian: value)
201220
202221 do {
203- let value1 = try bytesLE. withParserSpan ( Float80 . init ( parsingLittleEndian: ) )
222+ let value1 = try bytesLE. withParserSpan (
223+ Float80 . init ( parsingLittleEndian: ) )
204224 let value2 = try bytesLE. withParserSpan { input in
205225 try Float80 ( parsing: & input, endianness: . little)
206226 }
0 commit comments