import XCTest @testable import MarkBase final class MultimodalE4BTest: XCTestCase { var engine: MarkBaseEngine! var multimodal: MultimodalModel! let modelDir = "/Users/accusys/MarkBaseEngine/models/E4B-MarkBase" let maxCtx = 64 override func setUp() { super.setUp() guard FileManager.default.fileExists(atPath: modelDir + "/model.safetensors") else { return } engine = try? MarkBaseEngine(autoCompile: true) multimodal = try? MultimodalModel(modelDir: modelDir, engine: engine, maxContextLength: maxCtx) } func testModelLoads() throws { try XCTSkipIf(multimodal == nil, "E4B-MarkBase not found") XCTAssertEqual(multimodal!.textModel.hiddenSize, 2560) XCTAssertNotNil(multimodal!.visionTowerFull, "Full VisionTower should load") XCTAssertNotNil(multimodal!.audioTowerFull, "Full AudioTower should load") } func testVisionTowerForward() throws { try XCTSkipIf(multimodal?.visionTowerFull == nil, "Vision tower not loaded") let tower = multimodal!.visionTowerFull! let numPatches = 4 let patchDim = 768 let hs = tower.config.hiddenSize // 768 var patches = [Float](repeating: 0, count: numPatches * patchDim) for i in 0..