MacMonitor CI/CD Pipeline / Build & Test (Intel x86_64) (push) Successful in 1m49s
55 lines
2.0 KiB
Swift
55 lines
2.0 KiB
Swift
import XCTest
|
|
@testable import MacMonitor
|
|
|
|
final class MMHistoryTests: XCTestCase {
|
|
|
|
func testRollingRingBufferCapacityAndEviction() {
|
|
let buffer = RollingRingBuffer<Double>(capacity: 3)
|
|
XCTAssertEqual(buffer.count, 0)
|
|
|
|
buffer.append(10.0)
|
|
buffer.append(20.0)
|
|
XCTAssertEqual(buffer.count, 2)
|
|
XCTAssertEqual(buffer.samples.map(\.value), [10.0, 20.0])
|
|
|
|
buffer.append(30.0)
|
|
XCTAssertEqual(buffer.count, 3)
|
|
XCTAssertEqual(buffer.samples.map(\.value), [10.0, 20.0, 30.0])
|
|
|
|
// 4th append should evict oldest (10.0)
|
|
buffer.append(40.0)
|
|
XCTAssertEqual(buffer.count, 3)
|
|
XCTAssertEqual(buffer.samples.map(\.value), [20.0, 30.0, 40.0])
|
|
|
|
buffer.clear()
|
|
XCTAssertEqual(buffer.count, 0)
|
|
XCTAssertTrue(buffer.samples.isEmpty)
|
|
}
|
|
|
|
func testTelemetryHistoryStoreRecord() {
|
|
let store = TelemetryHistoryStore()
|
|
let snapshot = TelemetrySnapshotRecord(
|
|
cpuLoad: 25.5,
|
|
memoryUsedPercent: 62.1,
|
|
networkInBps: 1024.0,
|
|
networkOutBps: 2048.0,
|
|
diskReadBps: 512.0,
|
|
diskWriteBps: 1024.0,
|
|
cpuTemp: 55.0,
|
|
systemPowerWatts: 18.5
|
|
)
|
|
store.record(snapshot: snapshot)
|
|
|
|
XCTAssertEqual(store.sampleCounter, 1)
|
|
XCTAssertEqual(store.cpuHistory.count, 1)
|
|
XCTAssertEqual(store.cpuHistory.samples.first?.value, 25.5)
|
|
XCTAssertEqual(store.memoryHistory.samples.first?.value, 62.1)
|
|
XCTAssertEqual(store.networkInHistory.samples.first?.value, 1024.0)
|
|
XCTAssertEqual(store.networkOutHistory.samples.first?.value, 2048.0)
|
|
XCTAssertEqual(store.diskReadHistory.samples.first?.value, 512.0)
|
|
XCTAssertEqual(store.diskWriteHistory.samples.first?.value, 1024.0)
|
|
XCTAssertEqual(store.cpuTempHistory.samples.first?.value, 55.0)
|
|
XCTAssertEqual(store.powerHistory.samples.first?.value, 18.5)
|
|
}
|
|
}
|