import CoreGraphics import Foundation @main struct ImageCropGeometryCheck { static func main() { assertSize( ImageCropGeometry.maximumCropSize(fitting: CGSize(width: 350, height: 700), aspectRatio: 1), equals: CGSize(width: 350, height: 350), scenario: "portraitUsesFullWidth" ) assertSize( ImageCropGeometry.maximumCropSize(fitting: CGSize(width: 400, height: 200), aspectRatio: 4.0 / 3.0), equals: CGSize(width: 800.0 / 3.0, height: 200), scenario: "landscapeUsesFullHeight" ) assertSize( ImageCropGeometry.maximumCropSize(fitting: CGSize(width: 320, height: 180), aspectRatio: 16.0 / 9.0), equals: CGSize(width: 320, height: 180), scenario: "matchingRatioUsesWholeImage" ) assertSize( ImageCropGeometry.maximumCropSize(fitting: .zero, aspectRatio: 1), equals: .zero, scenario: "invalidInputReturnsZero" ) assertSize( ImageCropGeometry.maximumCropSize(fitting: CGSize(width: 100, height: 100), aspectRatio: 0), equals: .zero, scenario: "invalidRatioReturnsZero" ) print("ImageCropGeometryCheck PASS") } private static func assertSize(_ actual: CGSize, equals expected: CGSize, scenario: String) { let tolerance = 0.001 precondition(abs(actual.width - expected.width) < tolerance, "\(scenario) width: \(actual.width)") precondition(abs(actual.height - expected.height) < tolerance, "\(scenario) height: \(actual.height)") } }