Myna/Tests/MynaTests/Padding/ZeroPaddingTests.swift
Ada Freya 4d199a0bd2
Some checks failed
[REUSE] Code Quality / REUSE (push) Has been cancelled
[Swift] Code Quality / Swift ${{ matrix.swift }} on ${{ matrix.os }} (macos-latest) (push) Has been cancelled
[Swift] Code Quality / Swift ${{ matrix.swift }} on ${{ matrix.os }} (ubuntu-latest) (push) Has been cancelled
[Swift] Test / Swift ${{ matrix.swift }} on ${{ matrix.os }} (macos-latest) (push) Has been cancelled
[Swift] Test / Swift ${{ matrix.swift }} on ${{ matrix.os }} (ubuntu-latest) (push) Has been cancelled
chore: update copyright
2025-12-25 13:01:41 +05:30

58 lines
1.9 KiB
Swift

// SPDX-FileCopyrightText: 2024-2026 Neptuwunium <ada@chronovore.dev>
// SPDX-License-Identifier: EUPL-1.2
import Foundation
import Testing
@testable import Myna
struct ZeroPaddingTests {
@Test func pad() async throws {
let data = Data([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])
let padding = ZeroPadding()
let padded = try padding.pad(data: data, into: 16)
let expected = Data([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
#expect(padded.elementsEqual(expected))
}
@Test func unpad() async throws {
let data = Data([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
let padding = ZeroPadding()
let unpadded = try padding.unpad(data: data)
let expected = Data([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])
#expect(unpadded.elementsEqual(expected))
}
@Test func padEmpty() async throws {
let data = Data()
let padding = ZeroPadding()
let padded = try padding.pad(data: data, into: 16)
let expected = Data([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
#expect(padded.elementsEqual(expected))
}
@Test func unpadEmpty() async throws {
let data = Data([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
let padding = ZeroPadding()
let unpadded = try padding.unpad(data: data)
let expected = Data()
#expect(unpadded.elementsEqual(expected))
}
@Test func padFail() async throws {
let data = Data([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])
let padding = ZeroPadding()
#expect(throws: MynaError.invalidInputLength) {
try padding.pad(data: data, into: 8)
}
}
@Test func unpadFail() async throws {
let data = Data([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])
let padding = ZeroPadding()
#expect(throws: MynaError.unexpectedPadding) {
try padding.unpad(data: data)
}
}
}