function updateTestbenchUI() {
    // Remove all listeners from buttons
    $('.tb-dialog-button').off('click');
    $('.tb-case-button').off('click');

    setupTestbenchUI();
    if (globalScope.testbenchData != undefined) {
        const { testbenchData } = globalScope;

        // Initialize the UI
        setUITableHeaders(testbenchData);

        // Add listeners to buttons
        $('.tb-case-button#prev-case-btn').on('click', buttonListenerFunctions.previousCaseButton);
        $('.tb-case-button#next-case-btn').on('click', buttonListenerFunctions.nextCaseButton);
        $('.tb-case-button#prev-group-btn').on('click', buttonListenerFunctions.previousGroupButton);
        $('.tb-case-button#next-group-btn').on('click', buttonListenerFunctions.nextGroupButton);
        $('.tb-dialog-button#change-test-btn').on('click', buttonListenerFunctions.changeTestButton);
        $('.tb-dialog-button#runall-btn').on('click', buttonListenerFunctions.runAllButton);
        $('.tb-dialog-button#edit-test-btn').on('click', buttonListenerFunctions.editTestButton);
        $('.tb-dialog-button#validate-btn').on('click', buttonListenerFunctions.validateButton);
        $('.tb-dialog-button#remove-test-btn').on('click', buttonListenerFunctions.removeTestButton);
    }

    // Add listener to attach test button
    $('.tb-dialog-button#attach-test-btn').on('click', buttonListenerFunctions.attachTestButton);
}
Updates the TestBench UI on the simulator with the current test attached
If no test is attached then shows the 'No test attached' screen
Called by runTestBench() when test is set, also called by UX/setupPanelListeners()
whenever ux change requires this UI to update(such as clicking on a different circuit or
loading a saved circuit)