diff --git a/Sources/OpenSwiftUISymbolDualTestsSupport/Layout/View/ViewGeometryTestsStub.c b/Sources/OpenSwiftUISymbolDualTestsSupport/Layout/View/ViewGeometryTestsStub.c new file mode 100644 index 000000000..268a2ddd3 --- /dev/null +++ b/Sources/OpenSwiftUISymbolDualTestsSupport/Layout/View/ViewGeometryTestsStub.c @@ -0,0 +1,14 @@ +// +// ViewGeometryTestsStub.c +// OpenSwiftUISymbolDualTestsSupport + +#include "OpenSwiftUIBase.h" + +#if OPENSWIFTUI_TARGET_OS_DARWIN + +#import + +DEFINE_SL_STUB_SLF(OpenSwiftUITestStub_ViewGeometryIsInvalid, SwiftUI, $s7SwiftUI12ViewGeometryV9isInvalidSbvg); + +#endif + diff --git a/Tests/OpenSwiftUISymbolDualTests/Layout/View/ViewGeometryDualTests.swift b/Tests/OpenSwiftUISymbolDualTests/Layout/View/ViewGeometryDualTests.swift new file mode 100644 index 000000000..a8449a8af --- /dev/null +++ b/Tests/OpenSwiftUISymbolDualTests/Layout/View/ViewGeometryDualTests.swift @@ -0,0 +1,33 @@ +// +// ViewGeometryDualTests.swift +// OpenSwiftUISymbolDualTests + +#if canImport(SwiftUI, _underlyingVersion: 6.5.4) +import Foundation +import OpenSwiftUICore +import Testing + +extension ViewGeometry { + var swiftUI_isInvalid: Bool { + @_silgen_name("OpenSwiftUITestStub_ViewGeometryIsInvalid") + get + } +} + +struct ViewGeometryDualTests { + @Test(arguments: [ + (CGFloat.nan, true), + (CGFloat.infinity, false), + (-CGFloat.infinity, false), + (3.0, false), + ] as [(CGFloat, Bool)]) + func isInvalid(originX: CGFloat, expected: Bool) { + let origin = ViewOrigin(x: originX, y: 0) + let geometry = ViewGeometry(origin: origin, dimensions: .zero) + #expect(geometry.isInvalid == expected) + #expect(geometry.swiftUI_isInvalid == expected) + } +} + +#endif +