mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 23:25:19 +00:00
* SwiftTesting: NoiseProtocolTests + BinaryProtocolPaddingTests * SwiftTesting: `NotificationStreamAssemblerTests` * SwiftTesting: `NostrProtocolTests` * SwiftTesting: `BinaryProtocolTests` * SwiftTesting: `PeerIDTests` * SwiftTesting: `BLEServiceTests` * SwiftTesting: `CommandProcessorTests` * SwiftTesting: `GCSFilterTests` * SwiftTesting: `GeohashBookmarksStoreTests` * Remove `peerID` test constants * Remove PeerID + String interop from tests * Refactor IntegrationTests to extract state management * Refactor global state management of MockBLEService * NoiseProtocolSwiftTests: `actor` -> `struct` * Remove measurement tests w/ no benchmark * `NoiseProtocolSwiftTests` -> `NoiseProtocolTests` * SwiftTesting: `LocationChannelsTests` * SwiftTesting: `GossipSyncManagerTests` * SwiftTesting: `LocationNotesManagerTests` * Global `sleep` function for tests * SwiftTesting: `IntegrationTests` --------- Co-authored-by: jack <jackjackbits@users.noreply.github.com>
24 lines
739 B
Swift
24 lines
739 B
Swift
import Testing
|
|
import struct Foundation.Data
|
|
@testable import bitchat
|
|
|
|
struct GCSFilterTests {
|
|
@Test func buildFilterWithDuplicateIdsProducesStableEncoding() {
|
|
let id = Data(repeating: 0xAB, count: 16)
|
|
let ids = Array(repeating: id, count: 64)
|
|
|
|
let params = GCSFilter.buildFilter(ids: ids, maxBytes: 128, targetFpr: 0.01)
|
|
#expect(params.m >= 1)
|
|
|
|
let decoded = GCSFilter.decodeToSortedSet(p: params.p, m: params.m, data: params.data)
|
|
#expect(decoded.count <= 1)
|
|
}
|
|
|
|
@Test func bucketAvoidsZeroCandidate() {
|
|
let id = Data(repeating: 0x01, count: 16)
|
|
let bucket = GCSFilter.bucket(for: id, modulus: 2)
|
|
#expect(bucket != 0)
|
|
#expect(bucket < 2)
|
|
}
|
|
}
|