From 333dbe38c48932be2b7dbcce601f46e32d4a3377 Mon Sep 17 00:00:00 2001 From: Tim Gymnich Date: Fri, 11 Dec 2020 00:04:55 +0100 Subject: [PATCH] add tests --- .../BitwiseRotateTests.swift | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/Tests/BitwiseRotateTests/BitwiseRotateTests.swift b/Tests/BitwiseRotateTests/BitwiseRotateTests.swift index 505af39..6e231ff 100644 --- a/Tests/BitwiseRotateTests/BitwiseRotateTests.swift +++ b/Tests/BitwiseRotateTests/BitwiseRotateTests.swift @@ -20,6 +20,46 @@ final class BitwiseRotateTests: XCTestCase { XCTAssertEqual(Int8(0b0110_0111) <<< 4, Int8(0b0111_0110)) } + func testRotatedLeft() { + var n1 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001 + n1.rotatedLeft(0) + XCTAssertEqual(n1, 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001) + n1.rotatedLeft(10) + XCTAssertEqual(n1, 0b00000000_00000000_00000000_00000000_00000000_00000000_00000100_00000000) + + var n2 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_01010101 + n2.rotatedLeft(23) + XCTAssertEqual(n2, 0b00000000_00000000_00000000_00000000_00101010_10000000_00000000_00000000) + + var n3: UInt = UInt(0b011111111_11111111_11111111_1111111_11111111_11111111_11111111_11111111) + n3.rotatedLeft(1) + XCTAssertEqual(n3, UInt(0b111111111_11111111_11111111_1111111_11111111_11111111_11111111_11111110)) + var n4: UInt = UInt(0b011111111_11111111_11111111_1111111_11111111_11111111_11111111_11111111) + n4.rotatedLeft(63) + XCTAssertEqual(n4, UInt(0b101111111_11111111_11111111_1111111_11111111_11111111_11111111_11111111)) + + var n5: UInt32 = UInt32(0b0111_1111_0000_0000_0000_0000_1111_1111) + n5.rotatedLeft(8) + XCTAssertEqual(n5, UInt32(0b0000_0000_0000_0000_1111_1111_0111_1111)) + var n6: Int32 = Int32(0b0000_0000_1111_1111_0111_1111_1111_1111) + n6.rotatedLeft(16) + XCTAssertEqual(n6, Int32(0b0111_1111_1111_1111_0000_0000_1111_1111)) + + var n7: UInt16 = UInt16(0b00000000_11111111) + n7.rotatedLeft(4) + XCTAssertEqual(n7, UInt16(0b00001111_11110000)) + var n8: Int16 = Int16(0b01100111_01111111) + n8.rotatedLeft(8) + XCTAssertEqual(n8, Int16(0b01111111_01100111)) + + var n9: UInt8 = UInt8(0b11000111) + n9.rotatedLeft(5) + XCTAssertEqual(n9, UInt8(0b1111_1000)) + var n10: Int8 = Int8(0b0110_0111) + n10.rotatedLeft(4) + XCTAssertEqual(n10, Int8(0b0111_0110)) + } + func testRotateRight() { XCTAssertEqual(0b00000000_00000000_00000000_00000000_00000000_00000000_00000100_00000000 >>> 10, 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001) XCTAssertEqual(0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001 >>> 0, 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001) @@ -37,4 +77,45 @@ final class BitwiseRotateTests: XCTestCase { XCTAssertEqual(UInt8(0b1111_1000) >>> 5, UInt8(0b11000111)) XCTAssertEqual(Int8(0b0111_0110) >>> 4, Int8(0b0110_0111)) } + + func testRotatedRight() { + var n0 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001 + n0.rotatedRight(0) + XCTAssertEqual(n0 <<< 0, 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001) + var n1 = 0b00000000_00000000_00000000_00000000_00000000_00000000_00000100_00000000 + n1.rotatedRight(10) + XCTAssertEqual(n1, 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001) + + var n2 = 0b00000000_00000000_00000000_00000000_00101010_10000000_00000000_00000000 + n2.rotatedRight(23) + XCTAssertEqual(n2, 0b00000000_00000000_00000000_00000000_00000000_00000000_00000000_01010101) + + var n3: UInt = UInt(0b111111111_11111111_11111111_1111111_11111111_11111111_11111111_11111110) + n3.rotatedRight(1) + XCTAssertEqual(n3, UInt(0b011111111_11111111_11111111_1111111_11111111_11111111_11111111_11111111)) + var n4: UInt = UInt(0b101111111_11111111_11111111_1111111_11111111_11111111_11111111_11111111) + n4.rotatedRight(63) + XCTAssertEqual(n4, UInt(0b011111111_11111111_11111111_1111111_11111111_11111111_11111111_11111111)) + + var n5: UInt32 = UInt32(0b0000_0000_0000_0000_1111_1111_0111_1111) + n5.rotatedRight(8) + XCTAssertEqual(n5, UInt32(0b0111_1111_0000_0000_0000_0000_1111_1111)) + var n6: Int32 = Int32(0b0111_1111_1111_1111_0000_0000_1111_1111) + n6.rotatedRight(16) + XCTAssertEqual(n6, Int32(0b0000_0000_1111_1111_0111_1111_1111_1111)) + + var n7: UInt16 = UInt16(0b00001111_11110000) + n7.rotatedRight(4) + XCTAssertEqual(n7, UInt16(0b00000000_11111111)) + var n8: Int16 = Int16(0b01111111_01100111) + n8.rotatedRight(8) + XCTAssertEqual(n8, Int16(0b01100111_01111111)) + + var n9: UInt8 = UInt8(0b1111_1000) + n9.rotatedRight(5) + XCTAssertEqual(n9, UInt8(0b11000111)) + var n10: Int8 = Int8(0b0111_0110) + n10.rotatedRight(4) + XCTAssertEqual(n10, Int8(0b0110_0111)) + } }