TM-SGNL-iOS/SignalServiceKit/tests/Util/CRC32Test.swift
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

35 lines
918 B
Swift

//
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import XCTest
import SignalServiceKit
final class CRC32Test: XCTestCase {
func testCrc() {
// These tests are lifted from the following Go 1.19.3 code:
//
// ```
// crc := crc32.NewIEEE()
// fmt.Println(crc.Sum32())
// crc.Write([]byte{})
// fmt.Println(crc.Sum32())
// crc.Write([]byte{1, 2, 3})
// fmt.Println(crc.Sum32())
// crc.Write([]byte{4, 5, 6})
// fmt.Println(crc.Sum32())
// ```
var crc = CRC32()
XCTAssertEqual(crc.value, 0)
crc = crc.update(with: Data())
XCTAssertEqual(crc.value, 0)
crc = crc.update(with: Data([1, 2, 3]))
XCTAssertEqual(crc.value, 1438416925)
crc = crc.update(with: Data([4, 5, 6]))
XCTAssertEqual(crc.value, 2180413220)
}
}