import XCTest @testable import Receiver final class AvccConverterTests: XCTestCase { func testNalUnits() { let annexB: [UInt8] = [0, 0, 1, 0x41, 0x11, 0, 0, 1, 0x67, 0xAA] XCTAssertEqual(AvccConverter.nalUnits(annexB), [[0x41, 0x11], [0x67, 0xAA]]) } func testToAvcc() { let annexB: [UInt8] = [0, 0, 1, 0x41, 0x11, 0, 0, 1, 0x67, 0xAA] let avcc = AvccConverter.toAvcc(annexB) XCTAssertEqual(avcc, [0, 0, 0, 2, 0x41, 0x11, 0, 0, 0, 2, 0x67, 0xAA]) } func testFromAvccRoundtrip() { let units: [[UInt8]] = [[0x41, 0x11], [0x67, 0xAA, 0xBB]] let annexB = [0, 0, 1] + units[0] + [0, 0, 1] + units[1] let avcc = AvccConverter.toAvcc(annexB) XCTAssertEqual(AvccConverter.fromAvcc(avcc ?? []), units) } func testEmptyReturnsNil() { XCTAssertNil(AvccConverter.toAvcc([UInt8]())) XCTAssertNil(AvccConverter.toAvcc([0, 0, 1])) } }