import settings


def setup_idl_environment(idl, verbose=False):
    """
    Setup test environment before all tests
    """    
    # first section is moved here from ~/.idl/start.pro
    commands = []
    commands.append('On_error, 2')

    for p in settings.IDL_PATH:
        commands.append("!path = !path + ':' + EXPAND_PATH('{}')".format(p))

    commands.append("pref_set, 'IDL_RBUF_SIZE', 15000, /commit")
    # emission-line-fitting procedures
    commands.append('.compile adaptive_window.pro')
    commands.append('.compile flux_sig_to_mbh.pro')
    commands.append('.compile nonp_make_model.pro')
    commands.append('.compile calc_flux_losvd_gaus.pro')
    commands.append('.compile calc_flux_losvd.pro')    
    commands.append('.compile regularization_matrix.pro')
    commands.append('.compile make_synth_sample.pro')
    commands.append('.compile emis_line_fitting_gaus.pro')
    commands.append('.compile emis_line_fitting_nonpar.pro')
    commands.append('.compile emis_line_fitting_decomp.pro')
    commands.append('.compile calc_errors_nonp_profile.pro')
    commands.append('.compile calc_errors_nonp_profile.pro')
    commands.append('@start')
    commands.append('@start')

    if verbose:
        for cmd in commands:
            print(cmd)

    for cmd in commands:
        idl(cmd)
