import XCTest
import Metal
@testable import Physarum
import PhysarumEngine
final class ThumbnailRendererTests: XCTestCase {
func testWarmStartProducesNonBlankPNG() throws {
guard MTLCreateSystemDefaultDevice() != nil else { throw XCTSkip("No Metal device") }
let preset = PresetCatalog.fallbackParams
let data = try ThumbnailRenderer.render(.warmStart(preset))
XCTAssertGreaterThan(data.count, 1000, "256² warm-start PNG should be non-trivial")
}
func testLiveSnapshotProducesNonBlankPNG() throws {
guard let device = MTLCreateSystemDefaultDevice() else { throw XCTSkip("No Metal device") }
let lib = ShaderLibrary(device: device)
let preset = PresetCatalog.fallbackParams
let sim = try SimEngine(device: device, library: lib, width: 64, height: 64, preset: preset)
for _ in 0..<20 { sim.step() }
let snap = LiveSnapshot(sim: sim.snapshot(), feedback: nil,
field: FieldSize(width: 64, height: 64),
preset: preset, format: .square, cover: false)
let data = try ThumbnailRenderer.render(.liveSnapshot(snap))
XCTAssertGreaterThan(data.count, 1000)
}
}