fix(imagepicker): 크롭 범위를 보정한다

This commit is contained in:
Yu Sung
2026-08-03 21:13:45 +09:00
parent 9320657bac
commit 2db4ef1c35
6 changed files with 442 additions and 15 deletions

View File

@@ -0,0 +1,40 @@
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)")
}
}