Add the Stage 4/5 native workflow: deterministic colprof/applycal/iccgamut and profcheck argv builders, verification history with CSV export and drift analytics, user/system ColorSync profile installation, and the matching SwiftUI views and fixture-driven tests. All Argyll interaction remains AGPL-isolated via ProcessManager subprocesses. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
31 lines
1014 B
Swift
31 lines
1014 B
Swift
import Foundation
|
|
import Testing
|
|
@testable import ICCeryCore
|
|
|
|
@Suite("ApplycalArgs")
|
|
struct ApplycalArgsTests {
|
|
|
|
@Test("Apply argv")
|
|
func applyArgv() throws {
|
|
let config = ApplycalConfig(
|
|
calibrationPath: "/tmp/cal.cal",
|
|
inputProfileURL: URL(fileURLWithPath: "/tmp/profile.icc")
|
|
)
|
|
let args = try ApplycalArgs.build(config: config)
|
|
#expect(args == ["-v", "-a", "/tmp/cal.cal", "/tmp/profile.icc"])
|
|
}
|
|
|
|
@Test("Unapply is never sent from build")
|
|
func unapplyNotEmitted() throws {
|
|
let config = ApplycalConfig(
|
|
calibrationPath: "/tmp/cal.cal",
|
|
inputProfileURL: URL(fileURLWithPath: "/tmp/profile.icc"),
|
|
unapply: true
|
|
)
|
|
let args = try ApplycalArgs.build(config: config)
|
|
// Builder intentionally emits -u because config can set it, but
|
|
// the UI layer never passes unapply: true in v2.0.
|
|
#expect(args == ["-v", "-u", "/tmp/cal.cal", "/tmp/profile.icc"])
|
|
}
|
|
}
|