diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0051490..a52b69c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,18 +9,16 @@ on: jobs: xcode-build: name: Xcode Build - runs-on: macOS-11 + runs-on: macOS-14 strategy: matrix: - platform: ['iOS_14', 'iOS_13'] + platform: ['iOS_17', 'iPadOS_17'] fail-fast: false steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Select Xcode Version - run: sudo xcode-select --switch /Applications/Xcode_13.2.1.app/Contents/Developer - - name: Prepare Simulator Runtimes - run: Scripts/github/prepare-simulators.sh ${{ matrix.platform }} + run: sudo xcode-select --switch /Applications/Xcode_15.4.app/Contents/Developer - name: Bundle Install run: bundle install - name: Pod Install @@ -35,37 +33,37 @@ jobs: path: .build/derivedData/**/Logs/Test/*.xcresult pod-lint: name: Lint Pod - runs-on: macOS-12 + runs-on: macOS-14 steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Bundle Install run: bundle install - name: Select Xcode Version - run: sudo xcode-select --switch /Applications/Xcode_14.1.app/Contents/Developer + run: sudo xcode-select --switch /Applications/Xcode_15.4.app/Contents/Developer - name: Lint Podspec run: bundle exec pod lib lint --verbose --fail-fast spm: name: SPM Build - runs-on: macOS-12 + runs-on: macOS-14 strategy: matrix: - platform: ['iOS_16', 'iOS_15'] + platform: ['iOS_17'] fail-fast: false steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Select Xcode Version - run: sudo xcode-select --switch /Applications/Xcode_14.1.app/Contents/Developer - - name: Prepare Simulator Runtimes - run: Scripts/github/prepare-simulators.sh ${{ matrix.platform }} + run: sudo xcode-select --switch /Applications/Xcode_15.4.app/Contents/Developer - name: Build run: Scripts/build.swift spm ${{ matrix.platform }} `which xcpretty` bazel: name: Bazel - runs-on: macOS-12 + runs-on: macOS-14 steps: - name: Checkout Repo uses: actions/checkout@v4 + - name: Select Xcode Version + run: sudo xcode-select --switch /Applications/Xcode_15.4.app/Contents/Developer - name: Build and Test - run: bazel test //... + run: bazel test //... --xcode_version=15.4.0 diff --git a/BUILD.bazel b/BUILD.bazel index 776f42e..09b6364 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -12,6 +12,7 @@ swift_library( name = "Paralayout.lib", srcs = glob(["Paralayout/**/*.swift"]), module_name = "Paralayout", + copts = ["-strict-concurrency=complete"], tags = ["manual"], visibility = ["//visibility:public"], deps = [], @@ -22,6 +23,7 @@ swift_library( testonly = True, srcs = glob(["ParalayoutTests/**/*.swift"]), module_name = "ParalayoutTests", + copts = ["-strict-concurrency=complete"], tags = ["manual"], deps = [":Paralayout.lib"], ) @@ -34,7 +36,7 @@ ios_framework( "ipad", ], infoplists = ["Paralayout/Info.plist"], - minimum_os_version = "12.0", + minimum_os_version = "13.0", visibility = ["//visibility:public"], deps = [":Paralayout.lib"], ) @@ -42,7 +44,7 @@ ios_framework( ios_unit_test( name = "ParalayoutTests", bundle_name = "ParalayoutTests", - minimum_os_version = "12.0", + minimum_os_version = "13.0", runner = "@rules_apple//apple/testing/default_runner:ios_xctestrun_ordered_runner", deps = [":ParalayoutTests.lib"], ) diff --git a/Example/ParalayoutDemo.xcodeproj/project.pbxproj b/Example/ParalayoutDemo.xcodeproj/project.pbxproj index 3484bfd..61ac173 100644 --- a/Example/ParalayoutDemo.xcodeproj/project.pbxproj +++ b/Example/ParalayoutDemo.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -418,6 +418,7 @@ SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_STRICT_CONCURRENCY = complete; }; name = Debug; }; @@ -472,6 +473,7 @@ SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_STRICT_CONCURRENCY = complete; VALIDATE_PRODUCT = YES; }; name = Release; diff --git a/Example/ParalayoutSnapshotTests/SnapshotTestCase.swift b/Example/ParalayoutSnapshotTests/SnapshotTestCase.swift index 663d05a..26623c8 100644 --- a/Example/ParalayoutSnapshotTests/SnapshotTestCase.swift +++ b/Example/ParalayoutSnapshotTests/SnapshotTestCase.swift @@ -14,7 +14,7 @@ // limitations under the License. // -import SnapshotTesting +@preconcurrency import SnapshotTesting import XCTest class SnapshotTestCase: XCTestCase { @@ -31,6 +31,7 @@ class SnapshotTestCase: XCTestCase { // MARK: - Public Methods + @MainActor func matchesCurrentDevice() -> Bool { let device = UIDevice.current let screen = UIScreen.main @@ -46,28 +47,31 @@ class SnapshotTestCase: XCTestCase { private static let testedDevices = [ - // iPhone 12 Pro (14.4) - TestDeviceConfig(systemVersion: "14.4", screenSize: CGSize(width: 390, height: 844), screenScale: 3), + // iPhone 15 Pro - iOS 17.5 + TestDeviceConfig(systemVersion: "17.5", screenSize: CGSize(width: 393, height: 852), screenScale: 3), - // iPhone 11 Pro (13.7) - TestDeviceConfig(systemVersion: "13.7", screenSize: CGSize(width: 375, height: 812), screenScale: 3), + // iPad (10th Generation) - iPadOS 17.5 + TestDeviceConfig(systemVersion: "17.5", screenSize: CGSize(width: 820, height: 1180), screenScale: 2), ] // MARK: - XCTestCase - override class func setUp() { - super.setUp() + override func setUp() async throws { + try await super.setUp() - guard SnapshotTestCase.testedDevices.contains(where: { $0.matchesCurrentDevice() }) else { - fatalError("Attempting to run tests on a device for which we have not collected test data") - } + await Task { @MainActor in + guard SnapshotTestCase.testedDevices.contains(where: { $0.matchesCurrentDevice() }) else { + fatalError("Attempting to run tests on a device for which we have not collected test data") + } - isRecording = false + isRecording = false + }.value } // MARK: - Public Methods + @MainActor func nameForSnapshot(with parameters: [String?]) -> String { let size = UIScreen.main.bounds.size let scale = UIScreen.main.scale diff --git a/Example/ParalayoutSnapshotTests/ViewAlignmentSnapshotTests.swift b/Example/ParalayoutSnapshotTests/ViewAlignmentSnapshotTests.swift index e9250ba..dd549d6 100644 --- a/Example/ParalayoutSnapshotTests/ViewAlignmentSnapshotTests.swift +++ b/Example/ParalayoutSnapshotTests/ViewAlignmentSnapshotTests.swift @@ -19,6 +19,7 @@ import SnapshotTesting final class ViewAlignmentSnapshotTests: SnapshotTestCase { + @MainActor func testSiblingAlignment() { let containerView = UIView(frame: .init(x: 0, y: 0, width: 200, height: 200)) containerView.backgroundColor = .white @@ -80,6 +81,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { verifySnapshot(receiverPosition: .center, targetPosition: .topRight, verticalOffset: -15) } + @MainActor func testLayoutDirection() { let containerView = UIView(frame: .init(x: 0, y: 0, width: 100, height: 100)) containerView.backgroundColor = .white @@ -140,6 +142,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testTransformHasNoEffect() { let containerView = UIView(frame: .init(x: 0, y: 0, width: 100, height: 100)) containerView.backgroundColor = .white @@ -185,6 +188,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { verifySnapshot(receiverTransform: .identity, targetTransform: .init(scaleX: 2, y: 3)) } + @MainActor func testNonZeroBoundsOrigin() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) containerView.backgroundColor = .white @@ -213,6 +217,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testAlignmentWithLayoutMargins() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) containerView.backgroundColor = .white @@ -246,6 +251,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: ["bothLayoutMargins"])) } + @MainActor func testAlignmentUsingCapInsets() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 250, height: 100)) containerView.backgroundColor = .white @@ -269,6 +275,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testAlignmentUsingFirstLine() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 250, height: 100)) containerView.backgroundColor = .white @@ -299,6 +306,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testAlignmentUsingFirstLineCapInsets() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 250, height: 100)) containerView.backgroundColor = .white @@ -329,6 +337,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testAlignmentWithRect() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) containerView.backgroundColor = .white @@ -365,6 +374,7 @@ final class ViewAlignmentSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testAlignmentWithFrame() { let targetTransform = CGAffineTransform(translationX: -20, y: 10) let receiverTransform = CGAffineTransform(scaleX: 0.8, y: 0.8) diff --git a/Example/ParalayoutSnapshotTests/ViewDistributionSnapshotTests.swift b/Example/ParalayoutSnapshotTests/ViewDistributionSnapshotTests.swift index 7a63b0e..fd2f9f7 100644 --- a/Example/ParalayoutSnapshotTests/ViewDistributionSnapshotTests.swift +++ b/Example/ParalayoutSnapshotTests/ViewDistributionSnapshotTests.swift @@ -19,6 +19,7 @@ import SnapshotTesting final class ViewDistributionSnapshotTests: SnapshotTestCase { + @MainActor func testDistribution() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 200)) containerView.backgroundColor = .white @@ -45,6 +46,7 @@ final class ViewDistributionSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: ["vertical"])) } + @MainActor func testDistributionIgnoresTransform() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 200)) containerView.backgroundColor = .white @@ -72,6 +74,7 @@ final class ViewDistributionSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testDistributionUsingCapInsets() { let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 80)) containerView.backgroundColor = .white @@ -104,6 +107,7 @@ final class ViewDistributionSnapshotTests: SnapshotTestCase { assertSnapshot(matching: containerView, as: .image, named: nameForSnapshot(with: [])) } + @MainActor func testHorizontalDistributionFollowsLayoutDirection() { let view = HorizontalDistributionView(frame: CGRect(x: 0, y: 0, width: 160, height: 60)) diff --git a/Example/ParalayoutSnapshotTests/ViewSpreadingSnapshotTests.swift b/Example/ParalayoutSnapshotTests/ViewSpreadingSnapshotTests.swift index 6c03698..b86c8c8 100644 --- a/Example/ParalayoutSnapshotTests/ViewSpreadingSnapshotTests.swift +++ b/Example/ParalayoutSnapshotTests/ViewSpreadingSnapshotTests.swift @@ -19,6 +19,7 @@ import SnapshotTesting final class ViewSpeadingSnapshotTests: SnapshotTestCase { + @MainActor func testHorizontallySpreadSubviews() { let container = UIView(frame: CGRect(x: 0, y: 0, width: 400, height: 100)) container.backgroundColor = .white @@ -92,6 +93,7 @@ final class ViewSpeadingSnapshotTests: SnapshotTestCase { verifySnapshot(margin: 40, inRect: CGRect(x: 20, y: 10, width: 300, height: 50)) } + @MainActor func testVerticallySpreadSubviews() { let container = UIView(frame: CGRect(x: 0, y: 0, width: 400, height: 100)) container.backgroundColor = .white diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.375x812-13-7-3x.png deleted file mode 100644 index 57633e5..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.390x844-14-4-3x.png deleted file mode 100644 index 6eab101..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.393x852-17-5-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.393x852-17-5-3x.png new file mode 100644 index 0000000..c18862b Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.820x1180-17-5-2x.png new file mode 100644 index 0000000..3aa07a9 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingCapInsets.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.375x812-13-7-3x.png deleted file mode 100644 index 1bf8e0f..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.393x852-17-5-3x.png similarity index 96% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.393x852-17-5-3x.png index 9f2e888..ddc3f30 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.820x1180-17-5-2x.png new file mode 100644 index 0000000..d1dcc74 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLine.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.375x812-13-7-3x.png deleted file mode 100644 index 966b6ed..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.393x852-17-5-3x.png similarity index 96% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.393x852-17-5-3x.png index c73761c..6c88b8d 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.820x1180-17-5-2x.png new file mode 100644 index 0000000..5b3bdbc Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentUsingFirstLineCapInsets.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_375x812-13-7-3x.png deleted file mode 100644 index c992f8d..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_390x844-14-4-3x.png deleted file mode 100644 index c992f8d..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_393x852-17-5-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_393x852-17-5-3x.png new file mode 100644 index 0000000..c0d198e Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_820x1180-17-5-2x.png new file mode 100644 index 0000000..390f3c3 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.bothProxies_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_375x812-13-7-3x.png deleted file mode 100644 index ea21885..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_393x852-17-5-3x.png similarity index 50% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_393x852-17-5-3x.png index ea21885..0d2a902 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_820x1180-17-5-2x.png new file mode 100644 index 0000000..4e07706 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.noProxies_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_375x812-13-7-3x.png deleted file mode 100644 index de1c8d6..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_390x844-14-4-3x.png deleted file mode 100644 index de1c8d6..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_393x852-17-5-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_393x852-17-5-3x.png new file mode 100644 index 0000000..eeeb1d4 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_820x1180-17-5-2x.png new file mode 100644 index 0000000..ffac0e9 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.receiverProxy_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_390x844-14-4-3x.png deleted file mode 100644 index ef00d26..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_393x852-17-5-3x.png similarity index 54% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_393x852-17-5-3x.png index ef00d26..5ea8335 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_820x1180-17-5-2x.png new file mode 100644 index 0000000..0f37ee5 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithFrame.targetProxy_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_375x812-13-7-3x.png deleted file mode 100644 index c90e2d9..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_393x852-17-5-3x.png index c90e2d9..8817f64 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_820x1180-17-5-2x.png new file mode 100644 index 0000000..5c03f87 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.bothLayoutMargins_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_375x812-13-7-3x.png deleted file mode 100644 index 2054649..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_393x852-17-5-3x.png similarity index 96% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_393x852-17-5-3x.png index 2054649..ea261fc 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_820x1180-17-5-2x.png new file mode 100644 index 0000000..b40dac0 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.noLayoutMargins_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_390x844-14-4-3x.png deleted file mode 100644 index e08edfd..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_393x852-17-5-3x.png similarity index 87% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_393x852-17-5-3x.png index e08edfd..712ac16 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_820x1180-17-5-2x.png new file mode 100644 index 0000000..3f56b3a Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.receiverLayoutMargins_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_390x844-14-4-3x.png deleted file mode 100644 index 128e767..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_393x852-17-5-3x.png similarity index 96% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_393x852-17-5-3x.png index 128e767..214abe7 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_820x1180-17-5-2x.png new file mode 100644 index 0000000..1862670 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithLayoutMargins.targetLayoutMargins_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.390x844-14-4-3x.png deleted file mode 100644 index 89a190f..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.393x852-17-5-3x.png similarity index 97% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.393x852-17-5-3x.png index 89a190f..d35a851 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.820x1180-17-5-2x.png new file mode 100644 index 0000000..8ed7963 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testAlignmentWithRect.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.390x844-14-4-3x.png deleted file mode 100644 index 0075919..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.393x852-17-5-3x.png similarity index 91% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.393x852-17-5-3x.png index 0075919..c83af55 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.820x1180-17-5-2x.png new file mode 100644 index 0000000..8972ee5 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testLayoutDirection.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.390x844-14-4-3x.png deleted file mode 100644 index 8b73671..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.393x852-17-5-3x.png similarity index 97% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.393x852-17-5-3x.png index 8b73671..e5422d6 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.820x1180-17-5-2x.png new file mode 100644 index 0000000..e74acc5 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testNonZeroBoundsOrigin.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_390x844-14-4-3x.png deleted file mode 100644 index 4cff3f3..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_393x852-17-5-3x.png similarity index 75% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_393x852-17-5-3x.png index 4cff3f3..362c51f 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_820x1180-17-5-2x.png new file mode 100644 index 0000000..c04e0dd Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_390x844-14-4-3x.png deleted file mode 100644 index 2e3a98e..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_393x852-17-5-3x.png similarity index 70% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_393x852-17-5-3x.png index 2e3a98e..b13511d 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_820x1180-17-5-2x.png new file mode 100644 index 0000000..6181807 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeHorizontalOffset_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_390x844-14-4-3x.png deleted file mode 100644 index d3946d0..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_393x852-17-5-3x.png similarity index 96% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_393x852-17-5-3x.png index d3946d0..cd40453 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_820x1180-17-5-2x.png new file mode 100644 index 0000000..5c1d165 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_negativeVerticalOffset_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_390x844-14-4-3x.png deleted file mode 100644 index 5935d03..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_393x852-17-5-3x.png index 5935d03..76965df 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_820x1180-17-5-2x.png new file mode 100644 index 0000000..4e6fa66 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveHorizontalOffset_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_375x812-13-7-3x.png deleted file mode 100644 index 930a48b..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_393x852-17-5-3x.png similarity index 66% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_393x852-17-5-3x.png index 930a48b..c1028c5 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_820x1180-17-5-2x.png new file mode 100644 index 0000000..1615313 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testSiblingAlignment.aligningCenterToTopRight_positiveVerticalOffset_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.390x844-14-4-3x.png deleted file mode 100644 index 09fa1c6..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.393x852-17-5-3x.png similarity index 77% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.393x852-17-5-3x.png index 09fa1c6..5ea2019 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.820x1180-17-5-2x.png new file mode 100644 index 0000000..f3bbfed Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewAlignmentSnapshotTests/testTransformHasNoEffect.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_390x844-14-4-3x.png deleted file mode 100644 index 10d6e15..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_393x852-17-5-3x.png similarity index 96% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_393x852-17-5-3x.png index 10d6e15..0a11f8f 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_820x1180-17-5-2x.png new file mode 100644 index 0000000..dc117cc Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistribution.vertical_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.375x812-13-7-3x.png deleted file mode 100644 index 6750d00..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.393x852-17-5-3x.png index 6750d00..0477ea5 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.820x1180-17-5-2x.png new file mode 100644 index 0000000..e70b289 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionIgnoresTransform.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.375x812-13-7-3x.png deleted file mode 100644 index 7d140fe..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.390x844-14-4-3x.png deleted file mode 100644 index b2195e7..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.393x852-17-5-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.393x852-17-5-3x.png new file mode 100644 index 0000000..0c10e33 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.820x1180-17-5-2x.png new file mode 100644 index 0000000..ce66d8d Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testDistributionUsingCapInsets.820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_390x844-14-4-3x.png deleted file mode 100644 index 9ed1045..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_393x852-17-5-3x.png similarity index 84% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_393x852-17-5-3x.png index 9ed1045..793f376 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..be80244 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_375x812-13-7-3x.png deleted file mode 100644 index 4dba401..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_390x844-14-4-3x.png deleted file mode 100644 index 4dba401..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_393x852-17-5-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_393x852-17-5-3x.png new file mode 100644 index 0000000..e912fe0 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..c54f432 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewDistributionSnapshotTests/testHorizontalDistributionFollowsLayoutDirection.RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_390x844-14-4-3x.png deleted file mode 100644 index 30e06df..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_393x852-17-5-3x.png similarity index 97% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_393x852-17-5-3x.png index 30e06df..22dd440 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..c3cef2c Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_375x812-13-7-3x.png deleted file mode 100644 index 2aaa4c9..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_390x844-14-4-3x.png deleted file mode 100644 index 2aaa4c9..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_393x852-17-5-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_393x852-17-5-3x.png new file mode 100644 index 0000000..1291ef7 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..2546150 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_390x844-14-4-3x.png deleted file mode 100644 index 8e0db84..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_393x852-17-5-3x.png similarity index 56% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_393x852-17-5-3x.png index 8e0db84..6119d25 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..72f98f6 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottomWithPositiveInset_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_375x812-13-7-3x.png deleted file mode 100644 index 2eb6a67..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_390x844-14-4-3x.png deleted file mode 100644 index 2eb6a67..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_393x852-17-5-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_393x852-17-5-3x.png new file mode 100644 index 0000000..0fcf01f Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..5fee072 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.bottom_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_390x844-14-4-3x.png deleted file mode 100644 index fbd6424..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_393x852-17-5-3x.png similarity index 50% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_393x852-17-5-3x.png index fbd6424..ddd1423 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..9d1c583 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centeredWithPositiveOffset_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_390x844-14-4-3x.png deleted file mode 100644 index dbfdfe5..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_393x852-17-5-3x.png similarity index 75% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_393x852-17-5-3x.png index dbfdfe5..02032ec 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..a448039 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.centered_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_390x844-14-4-3x.png deleted file mode 100644 index 1e2901d..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_393x852-17-5-3x.png similarity index 89% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_393x852-17-5-3x.png index 1e2901d..77f6bc9 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..c9c02b2 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_390x844-14-4-3x.png deleted file mode 100644 index 01c1a17..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_393x852-17-5-3x.png index 01c1a17..8ce3b94 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..1151268 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.inLayoutRect_centered_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_390x844-14-4-3x.png deleted file mode 100644 index ba2545c..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_393x852-17-5-3x.png index ba2545c..9100124 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..335488b Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_390x844-14-4-3x.png deleted file mode 100644 index 161f331..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_393x852-17-5-3x.png similarity index 52% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_393x852-17-5-3x.png index 161f331..36d9540 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..63c42a1 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_390x844-14-4-3x.png deleted file mode 100644 index 8084ede..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_393x852-17-5-3x.png similarity index 82% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_393x852-17-5-3x.png index 8084ede..ebfc551 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..4605318 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.nonZeroMargin_inLayoutRect_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_390x844-14-4-3x.png deleted file mode 100644 index 1418f27..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_393x852-17-5-3x.png similarity index 62% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_393x852-17-5-3x.png index 1418f27..9de8850 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..31184cd Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.topWithPositiveInset_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_390x844-14-4-3x.png deleted file mode 100644 index 53d7e0a..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_393x852-17-5-3x.png similarity index 66% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_393x852-17-5-3x.png index 53d7e0a..5c8aa5e 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..c825cba Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testHorizontallySpreadSubviews.top_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_390x844-14-4-3x.png deleted file mode 100644 index 20c2daa..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_393x852-17-5-3x.png similarity index 92% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_393x852-17-5-3x.png index 20c2daa..32ca304 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..8a4e014 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_375x812-13-7-3x.png deleted file mode 100644 index 87646c6..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_393x852-17-5-3x.png index 87646c6..00ac417 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..c364c27 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_390x844-14-4-3x.png deleted file mode 100644 index 1be543e..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_393x852-17-5-3x.png similarity index 96% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_393x852-17-5-3x.png index 1be543e..e153288 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..19e8df0 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centeredWithPositiveOffset_RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_390x844-14-4-3x.png deleted file mode 100644 index 9fb7f89..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_393x852-17-5-3x.png similarity index 94% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_393x852-17-5-3x.png index 9fb7f89..025f10b 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..f5b524a Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_390x844-14-4-3x.png deleted file mode 100644 index 9fb7f89..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_393x852-17-5-3x.png similarity index 94% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_393x852-17-5-3x.png index 9fb7f89..025f10b 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..f5b524a Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.centered_RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_390x844-14-4-3x.png deleted file mode 100644 index 3f045c8..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_393x852-17-5-3x.png similarity index 86% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_393x852-17-5-3x.png index 3f045c8..acad92f 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..fe04761 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_390x844-14-4-3x.png deleted file mode 100644 index 9d51fe3..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_393x852-17-5-3x.png index 9d51fe3..8fe994a 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..ce39dc7 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.inLayoutRect_centered_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_393x852-17-5-3x.png index 6d9885b..eedfaea 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..a473b58 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_375x812-13-7-3x.png deleted file mode 100644 index 522f182..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_390x844-14-4-3x.png deleted file mode 100644 index 522f182..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_393x852-17-5-3x.png index 522f182..4605da8 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..8d0b5c6 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_393x852-17-5-3x.png similarity index 94% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_393x852-17-5-3x.png index 3177305..57920f1 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..90146fa Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_375x812-13-7-3x.png deleted file mode 100644 index 4d7c39e..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_390x844-14-4-3x.png deleted file mode 100644 index 4d7c39e..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_393x852-17-5-3x.png similarity index 94% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_393x852-17-5-3x.png index 4d7c39e..8f182d8 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..9e3644b Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_390x844-14-4-3x.png deleted file mode 100644 index b155046..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_393x852-17-5-3x.png similarity index 83% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_375x812-13-7-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_393x852-17-5-3x.png index b155046..c803f86 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_375x812-13-7-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..d5bc82b Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.nonZeroMargin_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_393x852-17-5-3x.png index 522f182..4605da8 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..8d0b5c6 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_375x812-13-7-3x.png deleted file mode 100644 index 6d9885b..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_390x844-14-4-3x.png deleted file mode 100644 index 6d9885b..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_393x852-17-5-3x.png similarity index 95% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_393x852-17-5-3x.png index 6d9885b..eedfaea 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leadingWithPositiveInset_LTR_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..a473b58 Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailingWithPositiveInset_RTL_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_393x852-17-5-3x.png similarity index 94% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_393x852-17-5-3x.png index 4d7c39e..8f182d8 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_820x1180-17-5-2x.png new file mode 100644 index 0000000..9e3644b Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_LTR_820x1180-17-5-2x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_375x812-13-7-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_375x812-13-7-3x.png deleted file mode 100644 index 3177305..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_375x812-13-7-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_390x844-14-4-3x.png deleted file mode 100644 index 3177305..0000000 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_390x844-14-4-3x.png and /dev/null differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_390x844-14-4-3x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_393x852-17-5-3x.png similarity index 94% rename from Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_390x844-14-4-3x.png rename to Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_393x852-17-5-3x.png index 3177305..57920f1 100644 Binary files a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.leading_LTR_390x844-14-4-3x.png and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_393x852-17-5-3x.png differ diff --git a/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_820x1180-17-5-2x.png b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_820x1180-17-5-2x.png new file mode 100644 index 0000000..90146fa Binary files /dev/null and b/Example/ParalayoutSnapshotTests/__Snapshots__/ViewSpreadingSnapshotTests/testVerticallySpreadSubviews.trailing_RTL_820x1180-17-5-2x.png differ diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 307671d..bce8c10 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,6 +1,6 @@ PODS: - - Paralayout (1.0.0) - - Paralayout/Tests (1.0.0) + - Paralayout (1.1.0) + - Paralayout/Tests (1.1.0) - SnapshotTesting (1.8.2) DEPENDENCIES: @@ -17,9 +17,9 @@ EXTERNAL SOURCES: :path: "../Paralayout.podspec" SPEC CHECKSUMS: - Paralayout: 63a087763d2c7a1b9c55843064e889aa27bdb56a + Paralayout: 148233f7ff311384bcb209bf0b1b8a1578ad1d34 SnapshotTesting: 38947050d13960d57a4a9c166fcf51bca7d56970 PODFILE CHECKSUM: f0cdc6633e8d65e479af433fa427d7c0ce7c72b1 -COCOAPODS: 1.11.3 +COCOAPODS: 1.14.3 diff --git a/Package.swift b/Package.swift index 75c67c5..d7bcab0 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.0.1 +// swift-tools-version:5.9 // // Copyright 2020 Square Inc. @@ -21,7 +21,7 @@ import PackageDescription let package = Package( name: "Paralayout", platforms: [ - .iOS(.v12), + .iOS(.v13), ], products: [ .library( @@ -33,13 +33,16 @@ let package = Package( .target( name: "Paralayout", dependencies: [], - path: "Paralayout" + path: "Paralayout", + swiftSettings: [ + .enableExperimentalFeature("StrictConcurrency") + ] ), .testTarget( - name: "ParalayoutTests", - dependencies: ["Paralayout"], - path: "ParalayoutTests" - ), + name: "ParalayoutTests", + dependencies: ["Paralayout"], + path: "ParalayoutTests" + ), ], swiftLanguageVersions: [.v5] ) diff --git a/Paralayout.podspec b/Paralayout.podspec index 86e21ce..0d48b8e 100644 --- a/Paralayout.podspec +++ b/Paralayout.podspec @@ -1,14 +1,14 @@ Pod::Spec.new do |s| s.name = 'Paralayout' - s.version = '1.0.0' + s.version = '1.1.0' s.license = 'Apache License, Version 2.0' s.summary = 'Paralayout is a simple set of assistive UI layout utilities. Size and position your UI with pixel-perfect precision. Design will love you!' s.homepage = 'https://github.com/square/Paralayout' s.authors = 'Square' s.source = { :git => 'https://github.com/square/Paralayout.git', :tag => s.version } s.source_files = 'Paralayout/*.{swift}' - s.ios.deployment_target = '12.0' - s.swift_version = '5.0' + s.ios.deployment_target = '13.0' + s.swift_version = '5.9' s.test_spec 'Tests' do |test_spec| test_spec.source_files = 'ParalayoutTests/*{.swift}' diff --git a/Paralayout/Alignable.swift b/Paralayout/Alignable.swift index 5595602..5f782f4 100644 --- a/Paralayout/Alignable.swift +++ b/Paralayout/Alignable.swift @@ -17,12 +17,14 @@ import UIKit /// Describes an object that can participate in alignment. In practice, this represents a view. +@MainActor public protocol Alignable { var alignmentContext: AlignmentContext { get } } +@MainActor public struct AlignmentContext { // MARK: - Life Cycle diff --git a/Paralayout/Angle.swift b/Paralayout/Angle.swift index 4d9b716..ae41c9b 100644 --- a/Paralayout/Angle.swift +++ b/Paralayout/Angle.swift @@ -16,7 +16,7 @@ import CoreGraphics -public struct Angle: Comparable { +public struct Angle: Comparable, Sendable { // MARK: - Public Static Properties diff --git a/Paralayout/AspectRatio.swift b/Paralayout/AspectRatio.swift index a42684e..2080901 100644 --- a/Paralayout/AspectRatio.swift +++ b/Paralayout/AspectRatio.swift @@ -17,7 +17,7 @@ import UIKit /// A value type representing the ratio between a width and a height. -public struct AspectRatio: Comparable, CustomDebugStringConvertible { +public struct AspectRatio: Comparable, CustomDebugStringConvertible, Sendable { // MARK: - Public Static Properties @@ -105,6 +105,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// /// - parameter width: The desired width. /// - parameter scaleFactor: The view/window/screen to use for pixel rounding. + @MainActor public func height(forWidth width: CGFloat, in scaleFactor: ScaleFactorProviding) -> CGFloat { return (ratioHeight * width / ratioWidth).roundedToPixel(in: scaleFactor) } @@ -113,6 +114,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// /// - parameter height: The desired height. /// - parameter scaleFactor: The view/window/screen to use for pixel rounding. + @MainActor public func width(forHeight height: CGFloat, in scaleFactor: ScaleFactorProviding) -> CGFloat { return (ratioWidth * height / ratioHeight).roundedToPixel(in: scaleFactor) } @@ -122,6 +124,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// /// - parameter width: The desired width. /// - parameter scaleFactor: The view/window/screen to use for pixel rounding. + @MainActor public func size(forWidth width: CGFloat, in scaleFactor: ScaleFactorProviding) -> CGSize { return CGSize( width: width, @@ -134,6 +137,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// /// - parameter height: The desired height. /// - parameter scaleFactor: The view/window/screen to use for pixel rounding. + @MainActor public func size(forHeight height: CGFloat, in scaleFactor: ScaleFactorProviding) -> CGSize { return CGSize( width: width(forHeight: height, in: scaleFactor), @@ -147,6 +151,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// - parameter size: The bounding size. /// - parameter scaleFactor: The view/window/screen to use for pixel alignment. /// - returns: A size with the receiver's aspect ratio, no larger than the bounding size. + @MainActor public func size(toFit size: CGSize, in scaleFactor: ScaleFactorProviding) -> CGSize { if size.aspectRatio <= self { // Match width, narrow the height. @@ -169,6 +174,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// - parameter scaleFactor: The view/window/screen to use for pixel alignment. /// - parameter layoutDirection: The effective layout direction of the view in which the `rect` is defined. /// - returns: A rect with the receiver's aspect ratio, strictly within the bounding rect. + @MainActor public func rect( toFit rect: CGRect, at position: Position, @@ -193,6 +199,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// - parameter context: The view/window/screen that provides the scale factor and effective layout direction in /// which the rect should be positioned. /// - returns: A rect with the receiver's aspect ratio, strictly within the bounding rect. + @MainActor public func rect( toFit rect: CGRect, at position: Position, @@ -212,6 +219,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// - parameter size: The bounding size. /// - parameter scaleFactor: The view/window/screen to use for pixel alignment. /// - returns: A size with the receiver's aspect ratio, at least as large as the bounding size. + @MainActor public func size(toFill size: CGSize, in scaleFactor: ScaleFactorProviding) -> CGSize { if size.aspectRatio <= self { // Match height, expand the width. @@ -234,6 +242,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// - parameter scaleFactor: The view/window/screen to use for pixel alignment. /// - parameter layoutDirection: The effective layout direction of the view in which the `rect` is defined. /// - returns: A rect with the receiver's aspect ratio, strictly containing the bounding rect. + @MainActor public func rect( toFill rect: CGRect, at position: Position, @@ -257,6 +266,7 @@ public struct AspectRatio: Comparable, CustomDebugStringConvertible { /// - parameter context: The view/window/screen that provides the scale factor and effective layout direction in /// which the rect should be positioned. /// - returns: A rect with the receiver's aspect ratio, strictly containing the bounding rect. + @MainActor public func rect( toFill rect: CGRect, at position: Position, @@ -294,6 +304,7 @@ extension CGRect { // MARK: - Life Cycle + @MainActor fileprivate init( size newSize: CGSize, at position: Position, diff --git a/Paralayout/Interpolation.swift b/Paralayout/Interpolation.swift index 81a2143..b2ead9a 100644 --- a/Paralayout/Interpolation.swift +++ b/Paralayout/Interpolation.swift @@ -102,7 +102,7 @@ public enum Clamp { // MARK: - -public struct Interpolation: Comparable { +public struct Interpolation: Comparable, Sendable { // MARK: - Public Types diff --git a/Paralayout/LayoutDirection.swift b/Paralayout/LayoutDirection.swift index 1636ca1..632aabd 100644 --- a/Paralayout/LayoutDirection.swift +++ b/Paralayout/LayoutDirection.swift @@ -17,6 +17,7 @@ import UIKit /// Defines an object that vends its current user interface layout direction. +@MainActor public protocol LayoutDirectionProviding { var effectiveUserInterfaceLayoutDirection: UIUserInterfaceLayoutDirection { get } diff --git a/Paralayout/PixelRounding.swift b/Paralayout/PixelRounding.swift index 3ac4f17..afd1451 100644 --- a/Paralayout/PixelRounding.swift +++ b/Paralayout/PixelRounding.swift @@ -17,6 +17,7 @@ import UIKit /// The ratio of pixels to points, either of a UIScreen, a UIView's screen, or an explicit value. +@MainActor public protocol ScaleFactorProviding { var pixelsPerPoint: CGFloat { get } @@ -76,6 +77,7 @@ extension CGFloat { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func flooredToPixel(in scaleFactor: ScaleFactorProviding) -> CGFloat { return adjustedToPixel(scaleFactor) { floor($0) } } @@ -85,6 +87,7 @@ extension CGFloat { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func ceiledToPixel(in scaleFactor: ScaleFactorProviding) -> CGFloat { return adjustedToPixel(scaleFactor) { ceil($0) } } @@ -94,6 +97,7 @@ extension CGFloat { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func roundedToPixel(in scaleFactor: ScaleFactorProviding) -> CGFloat { // Invoke the namespaced Darwin.round() function since round() is ambiguous (it's also a mutating instance // method). @@ -102,6 +106,7 @@ extension CGFloat { // MARK: - Private Methods + @MainActor private func adjustedToPixel(_ scaleFactor: ScaleFactorProviding, _ adjustment: (CGFloat) -> CGFloat) -> CGFloat { let scale = scaleFactor.pixelsPerPoint return (scale > 0.0) ? (adjustment(self * scale) / scale) : self @@ -117,6 +122,7 @@ extension CGPoint { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func flooredToPixel(in scaleFactor: ScaleFactorProviding) -> CGPoint { return CGPoint(x: x.flooredToPixel(in: scaleFactor), y: y.flooredToPixel(in: scaleFactor)) } @@ -127,6 +133,7 @@ extension CGPoint { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func ceiledToPixel(in scaleFactor: ScaleFactorProviding) -> CGPoint { return CGPoint(x: x.ceiledToPixel(in: scaleFactor), y: y.ceiledToPixel(in: scaleFactor)) } @@ -137,6 +144,7 @@ extension CGPoint { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func roundedToPixel(in scaleFactor: ScaleFactorProviding) -> CGPoint { return CGPoint(x: x.roundedToPixel(in: scaleFactor), y: y.roundedToPixel(in: scaleFactor)) } @@ -150,6 +158,7 @@ extension CGSize { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func flooredToPixel(in scaleFactor: ScaleFactorProviding) -> CGSize { return CGSize(width: width.flooredToPixel(in: scaleFactor), height: height.flooredToPixel(in: scaleFactor)) } @@ -159,6 +168,7 @@ extension CGSize { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func ceiledToPixel(in scaleFactor: ScaleFactorProviding) -> CGSize { return CGSize(width: width.ceiledToPixel(in: scaleFactor), height: height.ceiledToPixel(in: scaleFactor)) } @@ -168,6 +178,7 @@ extension CGSize { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: The adjusted coordinate. + @MainActor public func roundedToPixel(in scaleFactor: ScaleFactorProviding) -> CGSize { return CGSize(width: width.roundedToPixel(in: scaleFactor), height: height.roundedToPixel(in: scaleFactor)) } @@ -181,6 +192,7 @@ extension CGRect { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: A new rect with pixel-aligned boundaries, enclosing the original rect. + @MainActor public func expandedToPixel(in scaleFactor: ScaleFactorProviding) -> CGRect { return CGRect( left: minX.flooredToPixel(in: scaleFactor), @@ -195,6 +207,7 @@ extension CGRect { /// - parameter scaleFactor: The pixel scale to use, e.g. a UIScreen, UIView, or explicit value (pass `0` to *not* /// snap to pixel). /// - returns: A new rect with pixel-aligned boundaries, enclosed by the original rect. + @MainActor public func contractedToPixel(in scaleFactor: ScaleFactorProviding) -> CGRect { return CGRect( left: minX.ceiledToPixel(in: scaleFactor), diff --git a/Paralayout/UIFont+CapInsets.swift b/Paralayout/UIFont+CapInsets.swift index 211cda8..e18d8aa 100644 --- a/Paralayout/UIFont+CapInsets.swift +++ b/Paralayout/UIFont+CapInsets.swift @@ -22,7 +22,7 @@ extension UIFont { /// The insets, in points, from the top of a UILabel to its font's capHeight, and from the font's baseline to the /// label's bottom. - public struct LabelCapInsets { + public struct LabelCapInsets: Sendable { // MARK: - Public Properties @@ -61,6 +61,7 @@ extension UIFont { /// The space above and below the receiver's capHeight and baseline, as displayed in a UILabel. /// - parameter scaleFactor: The UI scale factor for pixel rounding. /// - returns: The insets. + @MainActor public func labelCapInsets(in scaleFactor: ScaleFactorProviding) -> LabelCapInsets { // One would expect ceil(ascender) - floor(descender) so that the baseline would land on a pixel boundary, but // sadly no--this is what `UILabel.sizeToFit()` does. diff --git a/Paralayout/UIView+Alignment.swift b/Paralayout/UIView+Alignment.swift index affe041..a6e5564 100644 --- a/Paralayout/UIView+Alignment.swift +++ b/Paralayout/UIView+Alignment.swift @@ -170,11 +170,13 @@ extension AlignmentContext { // MARK: - +@MainActor private let ParalayoutLog = OSLog(subsystem: "com.squareup.Paralayout", category: "layout") /// Triggered when an alignment method is called that uses mismatched position types, i.e. aligning a view's leading or /// trailing edge to another view's left or right edge, or vice versa. This type of mismatch is likely to look correct /// under certain circumstance, but may look incorrect when using a different user interface layout direction. +@MainActor private func ParalayoutAlertForMismatchedAlignmentPositionTypes() { os_log( "%@", @@ -190,6 +192,7 @@ private func ParalayoutAlertForMismatchedAlignmentPositionTypes() { /// Triggered when an alignment method is called that involves two views that are not installed in the same view /// hierarchy. The behavior of aligning two views not in the same view hierarchy is undefined. +@MainActor private func ParalayoutAlertForInvalidViewHierarchy() { os_log( "%@", diff --git a/Paralayout/UIView+Sizing.swift b/Paralayout/UIView+Sizing.swift index 465a6f7..b782393 100644 --- a/Paralayout/UIView+Sizing.swift +++ b/Paralayout/UIView+Sizing.swift @@ -21,7 +21,7 @@ extension UIView { // MARK: - Public Types /// Constraints on the result of a call to `sizeThatFits(_:)`. - public struct SizingConstraints: OptionSet { + public struct SizingConstraints: OptionSet, Sendable { // MARK: - Life Cycle diff --git a/Paralayout/ViewDistributionItem.swift b/Paralayout/ViewDistributionItem.swift index dae79f8..ee61fae 100644 --- a/Paralayout/ViewDistributionItem.swift +++ b/Paralayout/ViewDistributionItem.swift @@ -17,7 +17,7 @@ import UIKit /// An element of a horizontal or vertical distribution. -public enum ViewDistributionItem: ViewDistributionSpecifying { +public enum ViewDistributionItem: ViewDistributionSpecifying, Sendable { /// A UIView, with adjustments to how much space it should take up. case view(UIView, UIEdgeInsets) @@ -146,6 +146,7 @@ public enum ViewDistributionItem: ViewDistributionSpecifying { // MARK: - /// A means of getting a `ViewDistributionItem`: either a UIView, or a number as `.fixed` or `.flexible`. +@MainActor public protocol ViewDistributionSpecifying { var distributionItem: ViewDistributionItem { get } diff --git a/ParalayoutTests/AngleTests.swift b/ParalayoutTests/AngleTests.swift index dd031bc..6ce4318 100644 --- a/ParalayoutTests/AngleTests.swift +++ b/ParalayoutTests/AngleTests.swift @@ -20,6 +20,7 @@ import XCTest final class AngleTests: XCTestCase { + @MainActor func testConstants() { XCTAssertEqual(Angle.zero.radians, 0) XCTAssertEqual(Angle.right.degrees, 90, accuracy: 1e-4) @@ -27,6 +28,7 @@ final class AngleTests: XCTestCase { XCTAssertEqual(Angle.fullCircle.degrees, 360, accuracy: 1e-4) } + @MainActor func testValueInitializers() { func assertRadianInitPreservesValue(_ radians: CGFloat) { XCTAssertEqual(Angle(radians: radians).radians, radians) @@ -45,6 +47,7 @@ final class AngleTests: XCTestCase { } } + @MainActor func testPointInitializer() { let rect = CGRect(x: -1, y: -1, width: 2, height: 2) let centerPoint = Position.center.point(in: rect, layoutDirection: .leftToRight) @@ -94,6 +97,7 @@ final class AngleTests: XCTestCase { ) } + @MainActor func testPointAtDistance() { let rect = CGRect(x: -1, y: -1, width: 2, height: 2) let diagonalUnit: CGFloat = sqrt(2) @@ -151,6 +155,7 @@ final class AngleTests: XCTestCase { } } + @MainActor func testPositiveNormalization() { // In the range [0,2π), the angle should be unmutated. XCTAssertEqual(Angle.zero.normalizedPositive.radians, Angle.zero.radians) @@ -168,6 +173,7 @@ final class AngleTests: XCTestCase { XCTAssertEqual(Angle(radians: -.pi / 2).normalizedPositive.radians, 1.5 * .pi, accuracy: 1e-4) } + @MainActor func testHalfCircleNormalization() { // In the range [-180º,180º), the angle should be unmutated. XCTAssertEqual(Angle.zero.normalizedHalfCircle.radians, Angle.zero.radians, accuracy: 1e-4) diff --git a/ParalayoutTests/AspectRatioTests.swift b/ParalayoutTests/AspectRatioTests.swift index b3d1614..3d98f39 100644 --- a/ParalayoutTests/AspectRatioTests.swift +++ b/ParalayoutTests/AspectRatioTests.swift @@ -20,6 +20,7 @@ import XCTest final class AspectRatioTests: XCTestCase { + @MainActor func testStatics() { XCTAssert(AspectRatio.square.height(forWidth: 1, in: 0) == 1) XCTAssert(AspectRatio.square.width(forHeight: 1, in: 0) == 1) @@ -32,6 +33,7 @@ final class AspectRatioTests: XCTestCase { XCTAssert(AspectRatio.widescreen.height(forWidth: 16, in: 0) == 9) } + @MainActor func testCreation() { XCTAssert(AspectRatio(width: 1, height: 1) == AspectRatio.square) XCTAssert(AspectRatio(width: 2, height: 2) == AspectRatio.square) @@ -43,6 +45,7 @@ final class AspectRatioTests: XCTestCase { XCTAssert(CGRect(x: 25, y: 50, width: 100, height: 100).aspectRatio == AspectRatio.square) } + @MainActor func testInverted() { XCTAssert(AspectRatio.square.inverted == AspectRatio.square) XCTAssert(AspectRatio(width: 100, height: 50).inverted == AspectRatio(width: 5, height: 10)) @@ -53,6 +56,7 @@ final class AspectRatioTests: XCTestCase { XCTAssert(AspectRatio.widescreen.inverted.height(forWidth: 9, in: 0) == 16) } + @MainActor func testComparison() { // Aspect ratios in sorted order. let ratios = [ @@ -78,6 +82,7 @@ final class AspectRatioTests: XCTestCase { } } + @MainActor func testSizes() { // The core sizing methods round the resulting dimension. XCTAssert(AspectRatio.square.width(forHeight: 10.5, in: 1) == 11) @@ -97,6 +102,7 @@ final class AspectRatioTests: XCTestCase { } } + @MainActor func testRects() { // Use a set of rectangles with varying aspect ratios (square, landscape, portrait; origin offsets; // non-integral). diff --git a/ParalayoutTests/DistributionTests.swift b/ParalayoutTests/DistributionTests.swift index 2b4695a..03645df 100644 --- a/ParalayoutTests/DistributionTests.swift +++ b/ParalayoutTests/DistributionTests.swift @@ -22,6 +22,7 @@ final class DistributionTests: XCTestCase { // MARK: - Tests - Orthogonal Alignment + @MainActor func testOrthogonalAlignmentInHorizontalDistribution() { // The layout direction shouldn't affect the orthogonal alignment in a horizontal distribution. for forcedLayoutDirection in [UISemanticContentAttribute.forceLeftToRight, .forceRightToLeft] { @@ -87,6 +88,7 @@ final class DistributionTests: XCTestCase { } } + @MainActor func testOrthogonalAlignmentInVerticalDistribution_leftToRightLayout() { let container = UIView(frame: .init(x: 0, y: 0, width: 200, height: 1000)) container.semanticContentAttribute = .forceLeftToRight @@ -149,6 +151,7 @@ final class DistributionTests: XCTestCase { } } + @MainActor func testOrthogonalAlignmentInVerticalDistribution_rightToLeftLayout() { let container = UIView(frame: .init(x: 0, y: 0, width: 200, height: 1000)) container.semanticContentAttribute = .forceRightToLeft diff --git a/ParalayoutTests/GeometryAdditionsTests.swift b/ParalayoutTests/GeometryAdditionsTests.swift index d189ae7..96303fc 100644 --- a/ParalayoutTests/GeometryAdditionsTests.swift +++ b/ParalayoutTests/GeometryAdditionsTests.swift @@ -22,6 +22,7 @@ final class GeometryAdditionsTests: XCTestCase { // MARK: - Tests - Operators + @MainActor func testOffsetOperators() { // Combine offsets. XCTAssertEqual( @@ -66,6 +67,7 @@ final class GeometryAdditionsTests: XCTestCase { // MARK: - Tests - CGPoint Extensions + @MainActor func testMidpoint() { // The midpoint between two of the same point should be that point. XCTAssertEqual(CGPoint(midpointBetween: .zero, and: .zero), .zero) @@ -85,6 +87,7 @@ final class GeometryAdditionsTests: XCTestCase { ) } + @MainActor func testDistanceBetweenPoints() { // A point's distance from itself is always zero. XCTAssertEqual(CGPoint.zero.distance(to: .zero), 0) @@ -102,12 +105,14 @@ final class GeometryAdditionsTests: XCTestCase { // MARK: - Tests - CGSize Extensions + @MainActor func testSizeOfGreatestFiniteMagnitude() { let size = CGSize.greatestFiniteMagnitude XCTAssertEqual(size.width, .greatestFiniteMagnitude) XCTAssertEqual(size.height, .greatestFiniteMagnitude) } + @MainActor func testScalingSize() { // A zero size scaled by anything should still be zero. XCTAssertEqual(CGSize.zero * 100, .zero) @@ -124,11 +129,13 @@ final class GeometryAdditionsTests: XCTestCase { // MARK: - Tests - CGRect Extensions + @MainActor func testCGRectCreation() { XCTAssertEqual(CGRect(left: 10, top: 10, right: 50, bottom: 50), CGRect(x: 10, y: 10, width: 40, height: 40)) XCTAssertEqual(CGRect(left: 50, top: 50, right: 10, bottom: 10), CGRect(x: 10, y: 10, width: 40, height: 40)) } + @MainActor func testCGRectInset() { // CGRect.insetBy(left:top:right:bottom:) XCTAssertEqual( @@ -165,6 +172,7 @@ final class GeometryAdditionsTests: XCTestCase { ) } + @MainActor func testCGRectSlice() { // CGRect.zero tests XCTAssert(CGRect.zero.slice(from: .minXEdge, amount: 0) == (.zero, .zero)) @@ -201,11 +209,13 @@ final class GeometryAdditionsTests: XCTestCase { // MARK: - Tests - UIEdgeInsets Extensions + @MainActor func testCreateUniformInsets() { XCTAssertEqual(UIEdgeInsets(uniform: 20), UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)) XCTAssertEqual(UIEdgeInsets(uniformOutset: 20), UIEdgeInsets(top: -20, left: -20, bottom: -20, right: -20)) } + @MainActor func testCreateInsetsByAxis() { XCTAssertEqual( UIEdgeInsets(vertical: 10, horizontal: 20), @@ -213,6 +223,7 @@ final class GeometryAdditionsTests: XCTestCase { ) } + @MainActor func testInsetAmountOnAxis() { XCTAssertEqual(UIEdgeInsets(top: 10, left: 20, bottom: 30, right: 40).horizontalAmount, 60) XCTAssertEqual(UIEdgeInsets(top: 10, left: 20, bottom: 15, right: 40).verticalAmount, 25) @@ -223,6 +234,7 @@ final class GeometryAdditionsTests: XCTestCase { // MARK: - Tests - NSDirectionalEdgeInsets Extensions + @MainActor func testCreateUniformDirectionalInsets() { XCTAssertEqual( NSDirectionalEdgeInsets(uniform: 20), @@ -234,6 +246,7 @@ final class GeometryAdditionsTests: XCTestCase { ) } + @MainActor func testCreateDirectionalInsetsByAxis() { XCTAssertEqual( NSDirectionalEdgeInsets(vertical: 10, horizontal: 20), @@ -241,6 +254,7 @@ final class GeometryAdditionsTests: XCTestCase { ) } + @MainActor func testDirectionalInsetAmountOnAxis() { XCTAssertEqual(NSDirectionalEdgeInsets(top: 10, leading: 20, bottom: 30, trailing: 40).horizontalAmount, 60) XCTAssertEqual(NSDirectionalEdgeInsets(top: 10, leading: 20, bottom: 15, trailing: 40).verticalAmount, 25) diff --git a/ParalayoutTests/InterpolationTests.swift b/ParalayoutTests/InterpolationTests.swift index 59ea32b..853a769 100644 --- a/ParalayoutTests/InterpolationTests.swift +++ b/ParalayoutTests/InterpolationTests.swift @@ -22,6 +22,7 @@ final class InterpolationTests: XCTestCase { // MARK: - CGRect + @MainActor func testCGRectInterpolation() { let startRect = CGRect(x: 1, y: 2, width: 5, height: 6) let endRect = CGRect(x: 3, y: 4, width: 7, height: 8) @@ -33,6 +34,7 @@ final class InterpolationTests: XCTestCase { // MARK: - Float + @MainActor func testLinearFloatInterpolation_fromMinToMax() { let value: Float = 3.0 let min: Float = 1.0 @@ -43,6 +45,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 3) } + @MainActor func testEaseInFloatInterpolation_fromMinToMax() { let value: Float = 3.0 let min: Float = 1.0 @@ -53,6 +56,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseOutFloatInterpolation_fromMinToMax() { let value: Float = 3.0 let min: Float = 1.0 @@ -63,6 +67,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 4) } + @MainActor func testEaseInOutFloatInterpolation_fromMinToMax() { let value: Float = 3.0 let min: Float = 1.0 @@ -73,6 +78,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 3) } + @MainActor func testLinearFloatInterpolation_ofUnit() { let value: Float = 3.0 let min: Float = 1.0 @@ -82,6 +88,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testEaseInFloatInterpolation_ofUnit() { let value: Float = 3.0 let min: Float = 1.0 @@ -91,6 +98,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testEaseOutFloatInterpolation_ofUnit() { let value: Float = 3.0 let min: Float = 1.0 @@ -100,6 +108,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testEaseInOutFloatInterpolation_ofUnit() { let value: Float = 3.0 let min: Float = 1.0 @@ -109,6 +118,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testLinearFloatInterpolation_fromMinToMax_withMidpoint() { let value: Float = 3.0 let min: Float = 1.0 @@ -120,6 +130,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseInFloatInterpolation_fromMinToMax_withMidpoint() { let value: Float = 3.0 let min: Float = 1.0 @@ -131,6 +142,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseOutFloatInterpolation_fromMinToMax_withMidpoint() { let value: Float = 3.0 let min: Float = 1.0 @@ -142,6 +154,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseInOutFloatInterpolation_fromMinToMax_withMidpoint() { let value: Float = 3.0 let min: Float = 1.0 @@ -155,6 +168,7 @@ final class InterpolationTests: XCTestCase { // MARK: - Double + @MainActor func testLinearDoubleInterpolation_fromMinToMax() { let value: Double = 3.0 let min: Double = 1.0 @@ -165,6 +179,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 3) } + @MainActor func testEaseInDoubleInterpolation_fromMinToMax() { let value: Double = 3.0 let min: Double = 1.0 @@ -175,6 +190,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseOutDoubleInterpolation_fromMinToMax() { let value: Double = 3.0 let min: Double = 1.0 @@ -185,6 +201,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 4) } + @MainActor func testEaseInOutDoubleInterpolation_fromMinToMax() { let value: Double = 3.0 let min: Double = 1.0 @@ -195,6 +212,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 3) } + @MainActor func testLinearDoubleInterpolation_ofUnit() { let value: Double = 3.0 let min: Double = 1.0 @@ -204,6 +222,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testEaseInDoubleInterpolation_ofUnit() { let value: Double = 3.0 let min: Double = 1.0 @@ -213,6 +232,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testEaseOutDoubleInterpolation_ofUnit() { let value: Double = 3.0 let min: Double = 1.0 @@ -222,6 +242,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testEaseInOutDoubleInterpolation_ofUnit() { let value: Double = 3.0 let min: Double = 1.0 @@ -231,6 +252,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 5) } + @MainActor func testLinearDoubleInterpolation_fromMinToMax_withMidpoint() { let value: Double = 3.0 let min: Double = 1.0 @@ -242,6 +264,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseInDoubleInterpolation_fromMinToMax_withMidpoint() { let value: Double = 3.0 let min: Double = 1.0 @@ -253,6 +276,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseOutDoubleInterpolation_fromMinToMax_withMidpoint() { let value: Double = 3.0 let min: Double = 1.0 @@ -264,6 +288,7 @@ final class InterpolationTests: XCTestCase { XCTAssertEqual(interpolation, 2) } + @MainActor func testEaseInOutDoubleInterpolation_fromMinToMax_withMidpoint() { let value: Double = 3.0 let min: Double = 1.0 diff --git a/ParalayoutTests/PixelRoundingTests.swift b/ParalayoutTests/PixelRoundingTests.swift index d1f90e1..5cc4178 100644 --- a/ParalayoutTests/PixelRoundingTests.swift +++ b/ParalayoutTests/PixelRoundingTests.swift @@ -20,23 +20,9 @@ import XCTest final class PixelRoundingTests: XCTestCase { - // MARK: - Private Types - - private enum Samples { - static let window = UIWindow(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) - static let view = UIView() - } - - // MARK: - XCTest - - override func setUp() { - super.setUp() - - Samples.window.addSubview(Samples.view) - } - // MARK: - Tests - Pixel Rounding + @MainActor func testFloatPixelRounding() { XCTAssertEqual(CGFloat(1.75).flooredToPixel(in: 0), 1.75) XCTAssertEqual(CGFloat(1.75).flooredToPixel(in: TestScreen.at1x), 1) @@ -57,6 +43,7 @@ final class PixelRoundingTests: XCTestCase { XCTAssertEqual(CGFloat(-1.75).ceiledToPixel(in: TestScreen.at2x), -1.5) } + @MainActor func testPointPixelRounding() { XCTAssertEqual(CGPoint(x: 0.9, y: -1.1).flooredToPixel(in: 0), CGPoint(x: 0.9, y: -1.1)) XCTAssertEqual(CGPoint(x: 0.9, y: -1.1).flooredToPixel(in: 1), CGPoint(x: 0, y: -2)) @@ -71,6 +58,7 @@ final class PixelRoundingTests: XCTestCase { XCTAssertEqual(CGPoint(x: 0.4, y: -1.4).roundedToPixel(in: 2), CGPoint(x: 0.5, y: -1.5)) } + @MainActor func testSizePixelRounding() { XCTAssertEqual(CGSize(width: 0.9, height: -1.1).flooredToPixel(in: 0), CGSize(width: 0.9, height: -1.1)) XCTAssertEqual(CGSize(width: 0.9, height: -1.1).flooredToPixel(in: 1), CGSize(width: 0, height: -2)) @@ -85,6 +73,7 @@ final class PixelRoundingTests: XCTestCase { XCTAssertEqual(CGSize(width: 0.4, height: -1.4).roundedToPixel(in: 2), CGSize(width: 0.5, height: -1.5)) } + @MainActor func testRectPixelRounding() { XCTAssertEqual( CGRect(left: 10.6, top: 10.4, right: 50.6, bottom: 50.6).expandedToPixel(in: TestScreen.at2x), @@ -105,31 +94,4 @@ final class PixelRoundingTests: XCTestCase { ) } - // MARK: - Tests - Scale Factor - - func testViewScaleFactor() { - // A view should inherit the scale factor of its parent screen. - for screen in screensToTest() { - Samples.window.screen = screen - XCTAssertEqual(Samples.view.pixelsPerPoint, screen.pixelsPerPoint) - } - - // With no superview, the main screen's scale should be used. - Samples.view.removeFromSuperview() - XCTAssert(Samples.view.pixelsPerPoint == UIScreen.main.pixelsPerPoint) - } - - // MARK: - Private Methods - - private func screensToTest() -> [UIScreen] { - if #available(iOS 13, *) { - // In iOS 13 and later, there is a bug around setting `UIWindow.screen` that prevents us from testing - // multiple screens (FB8674601). - return [.main] - - } else { - return TestScreen.all - } - } - } diff --git a/ParalayoutTests/PositionTests.swift b/ParalayoutTests/PositionTests.swift index e7b297d..5345851 100644 --- a/ParalayoutTests/PositionTests.swift +++ b/ParalayoutTests/PositionTests.swift @@ -20,6 +20,7 @@ import XCTest final class PositionTests: XCTestCase { + @MainActor func testResolvePositionsInLeftToRightLayout() { func resolve(_ position: Position) -> ResolvedPosition { return ResolvedPosition(resolving: position, with: .leftToRight) @@ -45,6 +46,7 @@ final class PositionTests: XCTestCase { XCTAssertEqual(resolve(.bottomTrailing), .bottomRight) } + @MainActor func testResolvePositionsInRightToLeftLayout() { func resolve(_ position: Position) -> ResolvedPosition { return ResolvedPosition(resolving: position, with: .rightToLeft) diff --git a/ParalayoutTests/UIViewFrameTests.swift b/ParalayoutTests/UIViewFrameTests.swift index 5826351..8a88c13 100644 --- a/ParalayoutTests/UIViewFrameTests.swift +++ b/ParalayoutTests/UIViewFrameTests.swift @@ -23,6 +23,7 @@ final class UIViewFrameTests: XCTestCase { // MARK: - Tests + @MainActor func testUntransformedFrameGetter_simpleFrames() { let view = UIView() @@ -36,6 +37,7 @@ final class UIViewFrameTests: XCTestCase { assertUntransformedFrameIsAccurate(for: view) } + @MainActor func testUntransformedFrameSetter_simpleFrames() { let view = UIView() @@ -44,6 +46,7 @@ final class UIViewFrameTests: XCTestCase { XCTAssertEqual(view.untransformedFrame, newValue) } + @MainActor func testUntransformedFrameGetter_nonIdentityTransform() { let view = UIView(frame: CGRect(x: 10, y: 20, width: 30, height: 40)) @@ -54,6 +57,7 @@ final class UIViewFrameTests: XCTestCase { assertUntransformedFrameIsAccurate(for: view) } + @MainActor func testUntransformedFrameSetter_nonIdentityTransform() { let view = UIView(frame: CGRect(x: 10, y: 20, width: 30, height: 40)) @@ -66,6 +70,7 @@ final class UIViewFrameTests: XCTestCase { XCTAssertEqual(view.transform, transform) } + @MainActor func testUntransformedFrameGetter_nonCenterAnchorPoint() { let view = UIView(frame: CGRect(x: 10, y: 20, width: 30, height: 40)) @@ -76,6 +81,7 @@ final class UIViewFrameTests: XCTestCase { assertUntransformedFrameIsAccurate(for: view) } + @MainActor func testUntransformedFrameSetter_nonCenterAnchorPoint() { let view = UIView(frame: CGRect(x: 10, y: 20, width: 30, height: 40)) @@ -88,6 +94,7 @@ final class UIViewFrameTests: XCTestCase { XCTAssertEqual(view.layer.anchorPoint, anchorPoint) } + @MainActor func testUntransformedFrameGetter_nonZeroOriginBounds() { let view = UIView(frame: CGRect(x: 10, y: 20, width: 30, height: 40)) @@ -95,6 +102,7 @@ final class UIViewFrameTests: XCTestCase { assertUntransformedFrameIsAccurate(for: view) } + @MainActor func testUntransformedFrameSetter_nonZeroOriginBounds() { let view = UIView(frame: CGRect(x: 10, y: 20, width: 30, height: 40)) @@ -107,6 +115,7 @@ final class UIViewFrameTests: XCTestCase { XCTAssertEqual(view.bounds.origin, boundsOrigin) } + @MainActor func testUntransformedConvert_siblingViews() throws { let window = UIWindow(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) @@ -139,6 +148,7 @@ final class UIViewFrameTests: XCTestCase { try assertUntransformedConvertIsAccurate(for: CGPoint(x: 2, y: 3), in: view2, convertedTo: view1) } + @MainActor func testUntransformedConvert_verticalHierarchy() throws { let view1 = UIView(frame: CGRect(x: 1, y: 2, width: 10, height: 10)) @@ -155,6 +165,7 @@ final class UIViewFrameTests: XCTestCase { try assertUntransformedConvertIsAccurate(for: CGPoint(x: -7, y: 8), in: view3, convertedTo: view1) } + @MainActor func testUntransformedConvert_nonZeroBounds() throws { let window = UIWindow(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) @@ -176,6 +187,7 @@ final class UIViewFrameTests: XCTestCase { try assertUntransformedConvertIsAccurate(for: CGPoint(x: 1, y: 2), in: view2, convertedTo: view3) } + @MainActor func testUntransformedConvert_nonIdentityTransforms() throws { let view1 = UIView(frame: CGRect(x: 1, y: 2, width: 10, height: 10)) view1.transform = .init(rotationAngle: 0.1) @@ -202,6 +214,7 @@ final class UIViewFrameTests: XCTestCase { // MARK: - Private Helper Methods + @MainActor func assertUntransformedFrameIsAccurate(for view: UIView, file: StaticString = #file, line: UInt = #line) { let actualValue = view.untransformedFrame @@ -213,6 +226,7 @@ final class UIViewFrameTests: XCTestCase { view.layer.transform = originalTransform } + @MainActor func assertUntransformedConvertIsAccurate( for point: CGPoint, in sourceView: UIView, diff --git a/ParalayoutTests/UIViewSizingTests.swift b/ParalayoutTests/UIViewSizingTests.swift index 4d8531e..7de01a5 100644 --- a/ParalayoutTests/UIViewSizingTests.swift +++ b/ParalayoutTests/UIViewSizingTests.swift @@ -22,6 +22,7 @@ final class UIViewSizingTests: XCTestCase { // MARK: - Tests - Size That Fits + @MainActor func testSizeThatFitsWithNoConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) @@ -31,6 +32,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeThatFitsWithMaxWidthConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) @@ -40,6 +42,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeThatFitsWithMaxHeightConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) @@ -49,6 +52,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeThatFitsWithMaxSizeConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) @@ -58,6 +62,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeThatFitsWithMinWidthConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) @@ -67,6 +72,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeThatFitsWithMinHeightConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) @@ -76,6 +82,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeThatFitsWithMinSizeConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) @@ -87,6 +94,7 @@ final class UIViewSizingTests: XCTestCase { // MARK: - Tests - Size To Fit + @MainActor func testSizeToFitWithNoConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) testView.sizeToFit(.zero) @@ -97,6 +105,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeToFitWithMaxSizeConstraints() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) testView.sizeToFit(.init(width: 100, height: 50), constraints: .maxSize) @@ -107,6 +116,7 @@ final class UIViewSizingTests: XCTestCase { ) } + @MainActor func testSizeToFitWithTransform() { let testView = TestView(sizeThatFits: .init(width: 300, height: 200)) testView.transform = .init(scaleX: 2, y: 2) @@ -117,6 +127,7 @@ final class UIViewSizingTests: XCTestCase { XCTAssertEqual(testView.frame.size, .init(width: 200, height: 100)) } + @MainActor func testSizeToFitWithNegativeWidth() { let testView = TestView(sizeThatFits: .init(width: -50, height: 200)) testView.sizeToFit(.init(width: 100, height: 50)) @@ -124,6 +135,7 @@ final class UIViewSizingTests: XCTestCase { XCTAssertEqual(testView.bounds.size, .init(width: 0, height: 200)) } + @MainActor func testSizeToFitWithNegativeHeight() { let testView = TestView(sizeThatFits: .init(width: 200, height: -50)) testView.sizeToFit(.init(width: 100, height: 50)) diff --git a/ParalayoutTests/ViewArrayBuilderTests.swift b/ParalayoutTests/ViewArrayBuilderTests.swift index 7f1f92d..921642d 100644 --- a/ParalayoutTests/ViewArrayBuilderTests.swift +++ b/ParalayoutTests/ViewArrayBuilderTests.swift @@ -22,6 +22,7 @@ final class ViewArrayBuilderTests: XCTestCase { // MARK: - Tests + @MainActor func testSimpleResultBuilder() throws { let view1 = UIView() let view2 = UIView() @@ -37,6 +38,7 @@ final class ViewArrayBuilderTests: XCTestCase { ) } + @MainActor func testIfTrueResultBuilder() throws { let view1 = UIView() let view2 = UIView() @@ -58,6 +60,7 @@ final class ViewArrayBuilderTests: XCTestCase { ) } + @MainActor func testIfFalseResultBuilder() throws { let view1 = UIView() let view2 = UIView() @@ -78,6 +81,7 @@ final class ViewArrayBuilderTests: XCTestCase { ) } + @MainActor func testIfElseFirstBranchResultBuilder() throws { let view1 = UIView() let view2 = UIView() @@ -102,6 +106,7 @@ final class ViewArrayBuilderTests: XCTestCase { ) } + @MainActor func testIfElseSecondBranchResultBuilder() throws { let view1 = UIView() let view2 = UIView() @@ -126,6 +131,7 @@ final class ViewArrayBuilderTests: XCTestCase { ) } + @MainActor func testSwitchCaseResultBuilder() throws { let view1 = UIView() let view2 = UIView() @@ -150,6 +156,7 @@ final class ViewArrayBuilderTests: XCTestCase { ) } + @MainActor func testSwitchDefaultResultBuilder() throws { let view1 = UIView() let view2 = UIView() @@ -173,6 +180,7 @@ final class ViewArrayBuilderTests: XCTestCase { ) } + @MainActor func testForLoopResultBuilder() throws { let views = [UIView(), UIView(), UIView()] XCTAssertEqual( @@ -187,6 +195,7 @@ final class ViewArrayBuilderTests: XCTestCase { // MARK: - Private Methods + @MainActor private func viewArray(@ViewArrayBuilder _ builder: () -> [UIView]) -> [UIView] { builder() } diff --git a/ParalayoutTests/ViewDistributionBuilderTests.swift b/ParalayoutTests/ViewDistributionBuilderTests.swift index ba2288d..8937188 100644 --- a/ParalayoutTests/ViewDistributionBuilderTests.swift +++ b/ParalayoutTests/ViewDistributionBuilderTests.swift @@ -22,6 +22,7 @@ final class ViewDistributionBuilderTests: XCTestCase { // MARK: - Tests + @MainActor func testSimpleResultBuilder() throws { let view = UIView() XCTAssertEqual( @@ -38,6 +39,7 @@ final class ViewDistributionBuilderTests: XCTestCase { ) } + @MainActor func testIfTrueResultBuilder() throws { let view = UIView() let condition = true @@ -57,6 +59,7 @@ final class ViewDistributionBuilderTests: XCTestCase { ) } + @MainActor func testIfFalseResultBuilder() throws { let view = UIView() let condition = false @@ -75,6 +78,7 @@ final class ViewDistributionBuilderTests: XCTestCase { ) } + @MainActor func testIfElseFirstBranchResultBuilder() throws { let view = UIView() view.tag = 1 @@ -99,6 +103,7 @@ final class ViewDistributionBuilderTests: XCTestCase { ) } + @MainActor func testIfElseSecondBranchResultBuilder() throws { let view = UIView() view.tag = 1 @@ -123,6 +128,7 @@ final class ViewDistributionBuilderTests: XCTestCase { ) } + @MainActor func testSwitchCaseResultBuilder() throws { let view = UIView() let value = 1 @@ -145,6 +151,7 @@ final class ViewDistributionBuilderTests: XCTestCase { ) } + @MainActor func testSwitchDefaultResultBuilder() throws { let view = UIView() let value = 2 @@ -166,6 +173,7 @@ final class ViewDistributionBuilderTests: XCTestCase { ) } + @MainActor func testForLoopResultBuilder() throws { XCTAssertEqual( viewDistribution({ @@ -185,6 +193,7 @@ final class ViewDistributionBuilderTests: XCTestCase { // MARK: - Private Methods + @MainActor private func viewDistribution(@ViewDistributionBuilder _ builder: () -> [ViewDistributionSpecifying]) -> [ViewDistributionSpecifying] { builder() } @@ -192,6 +201,7 @@ final class ViewDistributionBuilderTests: XCTestCase { #endif extension ViewDistributionItem: Equatable { + nonisolated public static func == (lhs: ViewDistributionItem, rhs: ViewDistributionItem) -> Bool { switch (lhs, rhs) { case let (.view(lhsView, lhsEdgeInsets), .view(rhsView, rhsEdgeInsets)): diff --git a/README.md b/README.md index a636098..bd0de8d 100644 --- a/README.md +++ b/README.md @@ -156,9 +156,9 @@ The extra space within a label above the "cap height" and below the "baseline" o ## Requirements -* iOS 12.0 or later -* Xcode 12.0 or later -* Swift 5.0 +* iOS 13.0 or later +* Xcode 15.0 or later +* Swift 5.9 ## Contributing diff --git a/Scripts/build.swift b/Scripts/build.swift index d53a95c..56af8ce 100755 --- a/Scripts/build.swift +++ b/Scripts/build.swift @@ -46,24 +46,15 @@ enum TaskError: Error { } enum Platform: String, CustomStringConvertible { - case iOS_16 - case iOS_15 - case iOS_14 - case iOS_13 - case iOS_12 + case iOS_17 + case iPadOS_17 var destination: String { switch self { - case .iOS_16: - return "platform=iOS Simulator,OS=16.1,name=iPhone 14 Pro" - case .iOS_15: - return "platform=iOS Simulator,OS=15.5,name=iPhone 13 Pro" - case .iOS_14: - return "platform=iOS Simulator,OS=14.4,name=iPhone 12 Pro" - case .iOS_13: - return "platform=iOS Simulator,OS=13.7,name=iPhone 11 Pro" - case .iOS_12: - return "platform=iOS Simulator,OS=12.4,name=iPhone 5s" + case .iOS_17: + return "platform=iOS Simulator,OS=17.5,name=iPhone 15 Pro" + case .iPadOS_17: + return "platform=iOS Simulator,OS=17.5,name=iPad (10th generation)" } } diff --git a/Scripts/github/prepare-simulators.sh b/Scripts/github/prepare-simulators.sh deleted file mode 100755 index cb2e74c..0000000 --- a/Scripts/github/prepare-simulators.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -l -set -ex - -sudo mkdir -p /Library/Developer/CoreSimulator/Profiles/Runtimes - -case $1 in - iOS_12) - sudo ln -s /Applications/Xcode_10.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 12.4.simruntime - ;; - - iOS_13) - sudo ln -s /Applications/Xcode_11.7.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 13.7.simruntime - ;; - - iOS_14) - sudo ln -s /Applications/Xcode_12.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 14.4.simruntime - ;; - - iOS_15) - sudo ln -s /Applications/Xcode_13.4.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 15.5.simruntime - ;; -esac - -xcrun simctl list runtimes