import XCTest @testable import MarkBase final class AudioGPUTest: XCTestCase { func testGPUvsCPU() throws { let engine = try MarkBaseEngine(autoCompile: true) let extractor = AudioFeatureExtractor(sampleRate: 16000, nMels: 128, nFft: 400, hopLength: 160) var audioData = [Float](repeating: 0, count: 16000) for i in 0.. 1e-8 { let relDiff = lDiff / cLin if relDiff > maxRelativeDiff { maxRelativeDiff = relDiff worstF = f; worstM = m } } } } print("Max linear diff: \(maxLinearDiff)") print("Max relative diff: \(maxRelativeDiff) at frame=\(worstF) mel=\(worstM)") print(" CPU(lin)=\(pow(10, cpuResult[worstF][worstM])) GPU(lin)=\(pow(10, gpuResult[worstF][worstM]))") XCTAssertLessThan(maxLinearDiff, 1e-3, "GPU mel linear values should match CPU") } }