From b669d65e2ee2f0f3d2cfa29fa7ab398fef1dabd8 Mon Sep 17 00:00:00 2001 From: Valeriy Van Date: Sun, 2 Nov 2025 11:21:07 +0100 Subject: [PATCH] Add test for Bitmap.transposed() --- Tests/geometrizeTests/BitmapTests.swift | 41 +++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/Tests/geometrizeTests/BitmapTests.swift b/Tests/geometrizeTests/BitmapTests.swift index 4de8b51..59c64b1 100644 --- a/Tests/geometrizeTests/BitmapTests.swift +++ b/Tests/geometrizeTests/BitmapTests.swift @@ -208,6 +208,47 @@ final class BitmapTests: XCTestCase { ) } + func testTransposed() { + // Test square bitmap + let squareBitmap = Bitmap(width: 3, height: 3, data: [ + 1,2,3,255, 4,5,6,255, 7,8,9,255, + 10,11,12,255, 13,14,15,255, 16,17,18,255, + 19,20,21,255, 22,23,24,255, 25,26,27,255 + ]) + + let squareTransposed = squareBitmap.transposed() + let expectedSquare = Bitmap(width: 3, height: 3, data: [ + 1,2,3,255, 10,11,12,255, 19,20,21,255, + 4,5,6,255, 13,14,15,255, 22,23,24,255, + 7,8,9,255, 16,17,18,255, 25,26,27,255 + ]) + XCTAssertEqual(squareTransposed, expectedSquare) + + // Test rectangular bitmap + let rectBitmap = Bitmap(width: 2, height: 3, data: [ + 1,2,3,255, 4,5,6,255, + 7,8,9,255, 10,11,12,255, + 13,14,15,255, 16,17,18,255 + ]) + + let rectTransposed = rectBitmap.transposed() + XCTAssertEqual(rectTransposed.width, 3) + XCTAssertEqual(rectTransposed.height, 2) + let expectedRect = Bitmap(width: 3, height: 2, data: [ + 1,2,3,255, 7,8,9,255, 13,14,15,255, + 4,5,6,255, 10,11,12,255, 16,17,18,255 + ]) + XCTAssertEqual(rectTransposed, expectedRect) + + // Test that original bitmap is unchanged + XCTAssertEqual(rectBitmap.width, 2) + XCTAssertEqual(rectBitmap.height, 3) + + // Test double transpose returns original + let doubleTransposed = rectTransposed.transposed() + XCTAssertEqual(doubleTransposed, rectBitmap) + } + func testSwap() { let width = 500, height = 500 let xRange = 0...width - 1, yRange = 0...height - 1