import XCTest @testable import MarkBase final class E4BAudioMultimodalTest: XCTestCase { func testAudioMultimodalGeneration() throws { print("\n═══════════════════════════════════════") print(" E4B Audio Multimodal Generation Test") print("═══════════════════════════════════════\n") let modelDir = "/Users/accusys/MarkBaseEngine/models/E4B-MarkBase" print("Step 1: Load multimodal model...") let engine = try MarkBaseEngine(autoCompile: true) let mmModel = try MultimodalModel(modelDir: modelDir, engine: engine, maxContextLength: 256) print(" ✓ Model loaded: hidden=\(mmModel.textModel.hiddenSize), layers=\(mmModel.textModel.numHiddenLayers)") print(" Audio tower: \(mmModel.audioTowerFull != nil ? "Full" : "12B")") print("\nStep 2: Create fake audio features (mel spectrogram)...") let seqLen = 98 let nMels = 128 var melFeatures: [[Float]] = [] for _ in 0.. + + ... + var tokens: [Int] = [2] // BOS tokens.append(audioTokenId) tokens.append(boaTokenId) // Audio embeds occupy seqLen/4 = 24 positions for _ in 0.. maxLogit { maxLogit = logits[i] maxIdx = i } } generated.append(maxIdx) } let elapsed = Date().timeIntervalSince(startTime) print(" Generated: \(generated.suffix(10))") print(" Speed: \(10.0 / elapsed) tok/s") print("\n═══════════════════════════════════════") print("✓ Audio multimodal test passed") print("═══════════════════════════════════════\n") } }