Files
iccery-v2-mac/Tests/ICCeryCoreTests/CalibrationStoreTests.swift
gronodandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> a30a8fc551 test(m9): complete migration of all remaining test suites to XCTest
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-11 21:29:16 +01:00

66 lines
2.0 KiB
Swift

import Foundation
import XCTest
@testable import ICCeryCore
final class CalibrationStoreTests: XCTestCase {
private static let sampleCal = """
CTI3
DESCRIPTOR "Test printer"
COLOR_REP "RGB"
DEVICE_CLASS "OUTPUT"
MAX_TAC "300"
NUMBER_OF_FIELDS 5
NUMBER_OF_SETS 3
BEGIN_DATA_FORMAT
SAMPLE_ID INPUT_VALUE R G B
END_DATA_FORMAT
BEGIN_DATA
1 0 0 0 0
2 128 64 64 64
3 255 255 255 255
END_DATA
"""
func testParseCal() async throws {
let url = FileManager.default.temporaryDirectory
.appendingPathComponent("test_\(UUID().uuidString).cal")
try Self.sampleCal.write(to: url, atomically: true, encoding: .utf8)
let store = CalibrationStore(staleDays: 30)
try await store.load(url: url)
let data = await store.data
XCTAssertEqual(data?.colorRep, "RGB")
XCTAssertEqual(data?.descriptor, "Test printer")
XCTAssertEqual(data?.maxTac, 300)
XCTAssertEqual(data?.curves.count, 3)
let r = data?.curves.first { $0.channel == "R" }
XCTAssertEqual(r?.output, [0, 64, 255])
}
func testStaleCalibration() async throws {
let url = FileManager.default.temporaryDirectory
.appendingPathComponent("stale_\(UUID().uuidString).cal")
try Self.sampleCal.write(to: url, atomically: true, encoding: .utf8)
let store = CalibrationStore(staleDays: 0)
try await store.load(url: url)
let stale = await store.isStale(comparedTo: "Other")
XCTAssertEqual(stale, true)
}
func testPrinterMismatch() async throws {
let url = FileManager.default.temporaryDirectory
.appendingPathComponent("mismatch_\(UUID().uuidString).cal")
try Self.sampleCal.write(to: url, atomically: true, encoding: .utf8)
let store = CalibrationStore(staleDays: 9999)
try await store.load(url: url)
await store.setPrinterName("Printer A")
let stale = await store.isStale(comparedTo: "Printer B")
XCTAssertEqual(stale, true)
}
}