35 lines
918 B
Swift
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)
|
|
}
|
|
}
|