41 lines
1.6 KiB
Swift
41 lines
1.6 KiB
Swift
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)")
|
|
}
|
|
}
|