# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
from ..model import MELODIC


def test_MELODIC_inputs():
    input_map = dict(
        ICs=dict(
            argstr="--ICs=%s",
            extensions=None,
        ),
        approach=dict(
            argstr="-a %s",
        ),
        args=dict(
            argstr="%s",
        ),
        bg_image=dict(
            argstr="--bgimage=%s",
            extensions=None,
        ),
        bg_threshold=dict(
            argstr="--bgthreshold=%f",
        ),
        cov_weight=dict(
            argstr="--covarweight=%f",
        ),
        dim=dict(
            argstr="-d %d",
        ),
        dim_est=dict(
            argstr="--dimest=%s",
        ),
        environ=dict(
            nohash=True,
            usedefault=True,
        ),
        epsilon=dict(
            argstr="--eps=%f",
        ),
        epsilonS=dict(
            argstr="--epsS=%f",
        ),
        in_files=dict(
            argstr="-i %s",
            mandatory=True,
            position=0,
            sep=",",
        ),
        log_power=dict(
            argstr="--logPower",
        ),
        mask=dict(
            argstr="-m %s",
            extensions=None,
        ),
        max_restart=dict(
            argstr="--maxrestart=%d",
        ),
        maxit=dict(
            argstr="--maxit=%d",
        ),
        migp=dict(
            argstr="--migp",
        ),
        migpN=dict(
            argstr="--migpN %d",
        ),
        migp_factor=dict(
            argstr="--migp_factor %d",
        ),
        migp_shuffle=dict(
            argstr="--migp_shuffle",
        ),
        mix=dict(
            argstr="--mix=%s",
            extensions=None,
        ),
        mm_thresh=dict(
            argstr="--mmthresh=%f",
        ),
        no_bet=dict(
            argstr="--nobet",
        ),
        no_mask=dict(
            argstr="--nomask",
        ),
        no_mm=dict(
            argstr="--no_mm",
        ),
        non_linearity=dict(
            argstr="--nl=%s",
        ),
        num_ICs=dict(
            argstr="-n %d",
        ),
        out_all=dict(
            argstr="--Oall",
        ),
        out_dir=dict(
            argstr="-o %s",
            genfile=True,
        ),
        out_mean=dict(
            argstr="--Omean",
        ),
        out_orig=dict(
            argstr="--Oorig",
        ),
        out_pca=dict(
            argstr="--Opca",
        ),
        out_stats=dict(
            argstr="--Ostats",
        ),
        out_unmix=dict(
            argstr="--Ounmix",
        ),
        out_white=dict(
            argstr="--Owhite",
        ),
        output_type=dict(),
        pbsc=dict(
            argstr="--pbsc",
        ),
        rem_cmp=dict(
            argstr="-f %d",
        ),
        remove_deriv=dict(
            argstr="--remove_deriv",
        ),
        report=dict(
            argstr="--report",
        ),
        report_maps=dict(
            argstr="--report_maps=%s",
        ),
        s_con=dict(
            argstr="--Scon=%s",
            extensions=None,
        ),
        s_des=dict(
            argstr="--Sdes=%s",
            extensions=None,
        ),
        sep_vn=dict(
            argstr="--sep_vn",
        ),
        sep_whiten=dict(
            argstr="--sep_whiten",
        ),
        smode=dict(
            argstr="--smode=%s",
            extensions=None,
        ),
        t_con=dict(
            argstr="--Tcon=%s",
            extensions=None,
        ),
        t_des=dict(
            argstr="--Tdes=%s",
            extensions=None,
        ),
        tr_sec=dict(
            argstr="--tr=%f",
        ),
        update_mask=dict(
            argstr="--update_mask",
        ),
        var_norm=dict(
            argstr="--vn",
        ),
    )
    inputs = MELODIC.input_spec()

    for key, metadata in list(input_map.items()):
        for metakey, value in list(metadata.items()):
            assert getattr(inputs.traits()[key], metakey) == value


def test_MELODIC_outputs():
    output_map = dict(
        out_dir=dict(),
        report_dir=dict(),
    )
    outputs = MELODIC.output_spec()

    for key, metadata in list(output_map.items()):
        for metakey, value in list(metadata.items()):
            assert getattr(outputs.traits()[key], metakey) == value
