         XCTAssertEqualWithAccuracy(CGFloat(Double.pi), Double.pi.toCGFloat(), accuracy: cgEpsilon)
         XCTAssertEqualWithAccuracy(CGFloat(Float80.pi), Float80.pi.toCGFloat(), accuracy: cgEpsilon)
 
+        XCTAssertEqualWithAccuracy(-CGFloat.pi, (-CGFloat.pi).toCGFloat(), accuracy: cgEpsilon)
+        XCTAssertEqualWithAccuracy(-CGFloat(Float.pi), (-Float.pi).toCGFloat(), accuracy: cgEpsilon)
+        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(-Double(Float.infinity), (-Float.infinity).toDouble())
        XCTAssertEqual(-Double(Double.infinity), (-Double.infinity).toDouble())
        XCTAssertEqual(-Double(Float80.infinity), (-Float80.infinity).toDouble())
    }

    func testFloat80Conversion() {

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

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

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

    func testFloatConversion() {
