import { CompilerTarget, NodeImplementation, AudioSettings } from '../compile/types'; import { Signal, Message, FloatArray, Engine } from '../run/types'; import { DspGraph } from '../dsp-graph'; interface NodeTestSettings { target: CompilerTarget; node: DspGraph.Node; nodeImplementation: NodeImplementation; bitDepth: AudioSettings['bitDepth']; sampleRate?: number; arrays?: { [arrayName: string]: Array; }; } type EngineFs = NonNullable; type FrameNode = { fs?: { [FsFuncName in keyof EngineFs]?: Parameters>; }; }; export type FrameNodeIn = FrameNode & { commons?: { getArray?: Array; setArray?: { [arrayName: string]: Array; }; }; ins?: { [portletId: string]: Array | Signal; }; }; export type FrameNodeOut = FrameNode & { commons?: { getArray?: { [arrayName: string]: Array; }; }; outs: { [portletId: string]: Array | Signal; }; sequence?: Array; }; export declare const generateFramesForNode: (nodeTestSettings: NodeTestSettings, inputFrames: Array) => Promise>; export declare const assertNodeOutput: (nodeTestSettings: NodeTestSettings, ...frames: Array<[FrameNodeIn, FrameNodeOut]>) => Promise; export declare const generateFrames: (engine: Engine, iterations?: number, engineInput?: FloatArray[]) => number[][]; /** Helper to round test results even nested in complex objects / arrays. */ export declare const roundNestedFloats: (obj: T) => T; export declare const buildEngineBlock: (bitDepth: AudioSettings['bitDepth'], channelCount: number, blockSize: number) => FloatArray[]; export declare const ENGINE_DSP_PARAMS: { sampleRate: number; channelCount: { in: number; out: number; }; }; export {};