         XCTAssertEqualWithAccuracy(Double(Double.pi), Double.pi.toDouble(), accuracy: dEpsilon)
         XCTAssertEqualWithAccuracy(Double(Float80.pi), Float80.pi.toDouble(), accuracy: dEpsilon)
 
+        XCTAssertEqualWithAccuracy(-Double.pi, (-CGFloat.pi).toDouble(), accuracy: dEpsilon)
+        XCTAssertEqualWithAccuracy(-Double(Float.pi), (-Float.pi).toDouble(), accuracy: dEpsilon)
+        XCTAssertEqualWithAccuracy(-Double(Double.pi), (-Double.pi).toDouble(), accuracy: dEpsilon)
+        XCTAssertEqualWithAccuracy(-Double(Float80.pi), (-Float80.pi).toDouble(), accuracy: dEpsilon)
+
         XCTAssertEqual(Double.infinity, CGFloat.infinity.toDouble())
         XCTAssertEqual(Double(Float.infinity), Float.infinity.toDouble())
         XCTAssertEqual(Double(Double.infinity), Double.infinity.toDouble())

        XCTAssertEqualWithAccuracy(CGFloat(Double.pi), Double.pi.toCGFloat(), accuracy: cgEpsilon)
        XCTAssertEqualWithAccuracy(CGFloat(Float80.pi), Float80.pi.toCGFloat(), accuracy: cgEpsilon)

        XCTAssertEqual(CGFloat.infinity, CGFloat.infinity.toCGFloat())
        XCTAssertEqual(CGFloat(Float.infinity), Float.infinity.toCGFloat())
        XCTAssertEqual(CGFloat(Double.infinity), Double.infinity.toCGFloat())

        XCTAssertEqual(-Float80(Float.infinity), (-Float.infinity).toFloat80())
        XCTAssertEqual(-Float80(Double.infinity), (-Double.infinity).toFloat80())
        XCTAssertEqual(-Float80(Float80.infinity), (-Float80.infinity).toFloat80())

        XCTAssert(CGFloat.nan.toFloat80().isNaN)
        XCTAssert(Float.nan.toFloat80().isNaN)
        XCTAssert(Double.nan.toFloat80().isNaN)
        XCTAssert(Float80.nan.toFloat80().isNaN)

        XCTAssert(CGFloat.signalingNaN.toFloat80().isSignalingNaN)
        XCTAssert(Float.signalingNaN.toFloat80().isSignalingNaN)
        XCTAssert(Double.signalingNaN.toFloat80().isSignalingNaN)
        XCTAssert(Float80.signalingNaN.toFloat80().isSignalingNaN)
    }

}
