From 5b7fef43c03137cad4005a6feeecda101213fc0c Mon Sep 17 00:00:00 2001 From: NachoSoto Date: Sat, 11 Jul 2026 09:54:20 -0700 Subject: [PATCH] [Tests] Stabilize floating-point geometry assertions --- .../ImageInflaterRendererSpec.swift | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/AsyncImageViewTests/ImageInflaterRendererSpec.swift b/AsyncImageViewTests/ImageInflaterRendererSpec.swift index 8169c1c..f4aecd9 100644 --- a/AsyncImageViewTests/ImageInflaterRendererSpec.swift +++ b/AsyncImageViewTests/ImageInflaterRendererSpec.swift @@ -63,7 +63,7 @@ class ImageInflaterRendererSpec: QuickSpec { inSize: canvasSize ) - expect(result) == CGRect(origin: CGPoint.zero, size: canvasSize) + expectRect(result, toBeCloseTo: CGRect(origin: CGPoint.zero, size: canvasSize)) } it("scales up size if aspect ratio matches, but canvas is bigger") { @@ -75,7 +75,7 @@ class ImageInflaterRendererSpec: QuickSpec { inSize: canvasSize ) - expect(result) == CGRect(origin: CGPoint.zero, size: canvasSize) + expectRect(result, toBeCloseTo: CGRect(origin: CGPoint.zero, size: canvasSize)) } it("scales and centers image vertically if height matches, but canvas width is smaller") { @@ -222,7 +222,7 @@ class ImageInflaterRendererSpec: QuickSpec { inSize: canvasSize ) - expect(result) == CGRect(origin: CGPoint.zero, size: canvasSize) + expectRect(result, toBeCloseTo: CGRect(origin: CGPoint.zero, size: canvasSize)) } it("scales up size if aspect ratio matches, but canvas is bigger") { @@ -234,7 +234,7 @@ class ImageInflaterRendererSpec: QuickSpec { inSize: canvasSize ) - expect(result) == CGRect(origin: CGPoint.zero, size: canvasSize) + expectRect(result, toBeCloseTo: CGRect(origin: CGPoint.zero, size: canvasSize)) } it("centers image horizontally if height matches, but canvas width is smaller") { @@ -367,3 +367,15 @@ class ImageInflaterRendererSpec: QuickSpec { } } } + +private func expectRect( + _ actual: CGRect, + toBeCloseTo expected: CGRect, + file: FileString = #file, + line: UInt = #line +) { + expect(file: file, line: line, actual.origin.x).to(beCloseTo(expected.origin.x)) + expect(file: file, line: line, actual.origin.y).to(beCloseTo(expected.origin.y)) + expect(file: file, line: line, actual.size.width).to(beCloseTo(expected.size.width)) + expect(file: file, line: line, actual.size.height).to(beCloseTo(expected.size.height)) +}