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


def test_BET_inputs():
    input_map = dict(
        args=dict(
            argstr="%s",
        ),
        center=dict(
            argstr="-c %s",
            units="voxels",
        ),
        environ=dict(
            nohash=True,
            usedefault=True,
        ),
        frac=dict(
            argstr="-f %.2f",
        ),
        functional=dict(
            argstr="-F",
            xor=(
                "functional",
                "reduce_bias",
                "robust",
                "padding",
                "remove_eyes",
                "surfaces",
                "t2_guided",
            ),
        ),
        in_file=dict(
            argstr="%s",
            extensions=None,
            mandatory=True,
            position=0,
        ),
        mask=dict(
            argstr="-m",
        ),
        mesh=dict(
            argstr="-e",
        ),
        no_output=dict(
            argstr="-n",
        ),
        out_file=dict(
            argstr="%s",
            extensions=None,
            genfile=True,
            hash_files=False,
            position=1,
        ),
        outline=dict(
            argstr="-o",
        ),
        output_type=dict(),
        padding=dict(
            argstr="-Z",
            xor=(
                "functional",
                "reduce_bias",
                "robust",
                "padding",
                "remove_eyes",
                "surfaces",
                "t2_guided",
            ),
        ),
        radius=dict(
            argstr="-r %d",
            units="mm",
        ),
        reduce_bias=dict(
            argstr="-B",
            xor=(
                "functional",
                "reduce_bias",
                "robust",
                "padding",
                "remove_eyes",
                "surfaces",
                "t2_guided",
            ),
        ),
        remove_eyes=dict(
            argstr="-S",
            xor=(
                "functional",
                "reduce_bias",
                "robust",
                "padding",
                "remove_eyes",
                "surfaces",
                "t2_guided",
            ),
        ),
        robust=dict(
            argstr="-R",
            xor=(
                "functional",
                "reduce_bias",
                "robust",
                "padding",
                "remove_eyes",
                "surfaces",
                "t2_guided",
            ),
        ),
        skull=dict(
            argstr="-s",
        ),
        surfaces=dict(
            argstr="-A",
            xor=(
                "functional",
                "reduce_bias",
                "robust",
                "padding",
                "remove_eyes",
                "surfaces",
                "t2_guided",
            ),
        ),
        t2_guided=dict(
            argstr="-A2 %s",
            extensions=None,
            xor=(
                "functional",
                "reduce_bias",
                "robust",
                "padding",
                "remove_eyes",
                "surfaces",
                "t2_guided",
            ),
        ),
        threshold=dict(
            argstr="-t",
        ),
        vertical_gradient=dict(
            argstr="-g %.2f",
        ),
    )
    inputs = BET.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_BET_outputs():
    output_map = dict(
        inskull_mask_file=dict(
            extensions=None,
        ),
        inskull_mesh_file=dict(
            extensions=None,
        ),
        mask_file=dict(
            extensions=None,
        ),
        meshfile=dict(
            extensions=None,
        ),
        out_file=dict(
            extensions=None,
        ),
        outline_file=dict(
            extensions=None,
        ),
        outskin_mask_file=dict(
            extensions=None,
        ),
        outskin_mesh_file=dict(
            extensions=None,
        ),
        outskull_mask_file=dict(
            extensions=None,
        ),
        outskull_mesh_file=dict(
            extensions=None,
        ),
        skull_file=dict(
            extensions=None,
        ),
        skull_mask_file=dict(
            extensions=None,
        ),
    )
    outputs = BET.output_spec()

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