function runTestBench(data, scope = globalScope, runContext = CONTEXT.CONTEXT_SIMULATOR) {
    const isValid = validate(data, scope);
    if (!isValid.ok) {
        showMessage('Testbench: Some elements missing from circuit. Click Validate to know more');
    }

    if (runContext === CONTEXT.CONTEXT_SIMULATOR) {
        const tempTestbenchData = new TestbenchData(data);
        if (!tempTestbenchData.goToFirstValidGroup()) {
            showMessage('Testbench: The test is empty');
            return;
        }

        globalScope.testbenchData = tempTestbenchData;

        updateTestbenchUI();
        return;
    }

    if (runContext === CONTEXT.CONTEXT_ASSIGNMENTS) {
        // Not implemented

    }
}
Interface function to run testbench. Called by testbench prompt on simulator or assignments
@param {Object} data - Object containing Test Data
@param {RunContext=} runContext - Whether simulator or Assignment called this function
@param {Scope=} scope - the circuit