From 797e82ee10cadcc6e5f96d46840643fe00677cad Mon Sep 17 00:00:00 2001 From: Kyle Date: Sat, 30 Aug 2025 01:55:34 +0800 Subject: [PATCH] Update CGTypes and test case --- .../OpenCoreGraphics/CGPoint+Extension.swift | 18 +++++++++++++++++ .../{Shims.swift => CGRect+Extension.swift} | 13 +++++++----- .../OpenCoreGraphics/CGSize+Extension.swift | 17 ++++++++++++++++ .../CGTypesTests.swift | 20 +++++++++++++++++++ 4 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 Sources/OpenCoreGraphics/CGPoint+Extension.swift rename Sources/OpenCoreGraphics/{Shims.swift => CGRect+Extension.swift} (68%) create mode 100644 Sources/OpenCoreGraphics/CGSize+Extension.swift create mode 100644 Tests/OpenCoreGraphicsShimsTests/CGTypesTests.swift diff --git a/Sources/OpenCoreGraphics/CGPoint+Extension.swift b/Sources/OpenCoreGraphics/CGPoint+Extension.swift new file mode 100644 index 0000000..ea63b13 --- /dev/null +++ b/Sources/OpenCoreGraphics/CGPoint+Extension.swift @@ -0,0 +1,18 @@ +// +// CGPoint+Extension.swift +// OpenCoreGraphics +// + +public import Foundation + +#if canImport(Darwin) +extension CGPoint { + public static let zero = CGPoint(x: .zero, y: .zero) +} +#endif + +extension CGPoint: Swift.CustomDebugStringConvertible { + public var debugDescription: String { + "(\(x.description), \(y.description))" + } +} diff --git a/Sources/OpenCoreGraphics/Shims.swift b/Sources/OpenCoreGraphics/CGRect+Extension.swift similarity index 68% rename from Sources/OpenCoreGraphics/Shims.swift rename to Sources/OpenCoreGraphics/CGRect+Extension.swift index 7e55a63..722ae70 100644 --- a/Sources/OpenCoreGraphics/Shims.swift +++ b/Sources/OpenCoreGraphics/CGRect+Extension.swift @@ -1,10 +1,10 @@ // -// Shims.swift +// CGRect+Extension.swift // OpenCoreGraphics -#if canImport(Darwin) public import Foundation +#if canImport(Darwin) extension CGRect { public init(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat) { self.init(origin: CGPoint(x: x, y: y), size: CGSize(width: width, height: height)) @@ -34,9 +34,12 @@ extension CGRect { return origin.y + size.height } + public static let zero = CGRect(origin: .zero, size: .zero) } +#endif -extension CGPoint { - public static let zero = CGPoint(x: .zero, y: .zero) +extension CGRect: Swift.CustomDebugStringConvertible { + public var debugDescription: String { + "(\(origin.x.description), \(origin.y.description), \(size.width.description), \(size.height.description))" + } } -#endif diff --git a/Sources/OpenCoreGraphics/CGSize+Extension.swift b/Sources/OpenCoreGraphics/CGSize+Extension.swift new file mode 100644 index 0000000..6bd68ac --- /dev/null +++ b/Sources/OpenCoreGraphics/CGSize+Extension.swift @@ -0,0 +1,17 @@ +// +// CGSize+Extension.swift +// OpenCoreGraphics + +public import Foundation + +#if canImport(Darwin) +extension CGSize { + public static let zero = CGSize(width: .zero, height: .zero) +} +#endif + +extension CGSize: Swift.CustomDebugStringConvertible { + public var debugDescription: String { + "(\(width.description), \(height.description))" + } +} diff --git a/Tests/OpenCoreGraphicsShimsTests/CGTypesTests.swift b/Tests/OpenCoreGraphicsShimsTests/CGTypesTests.swift new file mode 100644 index 0000000..28b0af8 --- /dev/null +++ b/Tests/OpenCoreGraphicsShimsTests/CGTypesTests.swift @@ -0,0 +1,20 @@ +// +// CGTypesTests.swift +// OpenCoreGraphics + +import OpenCoreGraphicsShims +import Testing + +struct CGTypesTests { + @Test + func description() { + let point = CGPoint(x: 1.0, y: 2.0) + #expect(point.debugDescription == "(1.0, 2.0)") + + let size = CGSize(width: 3.0, height: 4.0) + #expect(size.debugDescription == "(3.0, 4.0)") + + let rect = CGRect(x: 5.0, y: 6.0, width: 7.0, height: 8.0) + #expect(rect.debugDescription == "(5.0, 6.0, 7.0, 8.0)") + } +}