# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
from ..preprocess import RealignUnwarp


def test_RealignUnwarp_inputs():
    input_map = dict(
        est_basis_func=dict(
            field="uweoptions.basfcn",
        ),
        est_first_order_effects=dict(
            field="uweoptions.fot",
        ),
        est_jacobian_deformations=dict(
            field="uweoptions.jm",
        ),
        est_num_of_iterations=dict(
            field="uweoptions.noi",
            maxlen=1,
            minlen=1,
            usedefault=True,
        ),
        est_re_est_mov_par=dict(
            field="uweoptions.rem",
        ),
        est_reg_factor=dict(
            field="uweoptions.lambda",
            maxlen=1,
            minlen=1,
            usedefault=True,
        ),
        est_reg_order=dict(
            field="uweoptions.regorder",
        ),
        est_second_order_effects=dict(
            field="uweoptions.sot",
        ),
        est_taylor_expansion_point=dict(
            field="uweoptions.expround",
            usedefault=True,
        ),
        est_unwarp_fwhm=dict(
            field="uweoptions.uwfwhm",
        ),
        fwhm=dict(
            field="eoptions.fwhm",
        ),
        in_files=dict(
            copyfile=True,
            field="data.scans",
            mandatory=True,
        ),
        interp=dict(
            field="eoptions.einterp",
        ),
        matlab_cmd=dict(),
        mfile=dict(
            usedefault=True,
        ),
        out_prefix=dict(
            field="uwroptions.prefix",
            usedefault=True,
        ),
        paths=dict(),
        phase_map=dict(
            copyfile=False,
            extensions=None,
            field="data.pmscan",
        ),
        quality=dict(
            field="eoptions.quality",
        ),
        register_to_mean=dict(
            field="eoptions.rtm",
        ),
        reslice_interp=dict(
            field="uwroptions.rinterp",
        ),
        reslice_mask=dict(
            field="uwroptions.mask",
        ),
        reslice_which=dict(
            field="uwroptions.uwwhich",
            maxlen=2,
            minlen=2,
            usedefault=True,
        ),
        reslice_wrap=dict(
            field="uwroptions.wrap",
        ),
        separation=dict(
            field="eoptions.sep",
        ),
        use_mcr=dict(),
        use_v8struct=dict(
            min_ver="8",
            usedefault=True,
        ),
        weight_img=dict(
            extensions=None,
            field="eoptions.weight",
        ),
        wrap=dict(
            field="eoptions.ewrap",
        ),
    )
    inputs = RealignUnwarp.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_RealignUnwarp_outputs():
    output_map = dict(
        mean_image=dict(
            extensions=None,
        ),
        modified_in_files=dict(),
        realigned_unwarped_files=dict(),
        realignment_parameters=dict(),
    )
    outputs = RealignUnwarp.output_spec()

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