# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
from ..tracking import Tractography


def test_Tractography_inputs():
    input_map = dict(
        act_file=dict(argstr="-act %s", extensions=None,),
        algorithm=dict(argstr="-algorithm %s", usedefault=True,),
        angle=dict(argstr="-angle %f",),
        args=dict(argstr="%s",),
        backtrack=dict(argstr="-backtrack",),
        bval_scale=dict(argstr="-bvalue_scaling %s",),
        crop_at_gmwmi=dict(argstr="-crop_at_gmwmi",),
        cutoff=dict(argstr="-cutoff %f",),
        cutoff_init=dict(argstr="-initcutoff %f",),
        downsample=dict(argstr="-downsample %f",),
        environ=dict(nohash=True, usedefault=True,),
        grad_file=dict(argstr="-grad %s", extensions=None, xor=["grad_fsl"],),
        grad_fsl=dict(argstr="-fslgrad %s %s", xor=["grad_file"],),
        in_bval=dict(extensions=None,),
        in_bvec=dict(argstr="-fslgrad %s %s", extensions=None,),
        in_file=dict(argstr="%s", extensions=None, mandatory=True, position=-2,),
        init_dir=dict(argstr="-initdirection %f,%f,%f",),
        max_length=dict(argstr="-maxlength %f",),
        max_seed_attempts=dict(argstr="-max_seed_attempts %d",),
        max_tracks=dict(argstr="-maxnum %d",),
        min_length=dict(argstr="-minlength %f",),
        n_samples=dict(argstr="-samples %d", usedefault=True,),
        n_tracks=dict(argstr="-number %d", max_ver="0.4",),
        n_trials=dict(argstr="-trials %d",),
        noprecompt=dict(argstr="-noprecomputed",),
        nthreads=dict(argstr="-nthreads %d", nohash=True,),
        out_file=dict(
            argstr="%s", extensions=None, mandatory=True, position=-1, usedefault=True,
        ),
        out_seeds=dict(argstr="-output_seeds %s", extensions=None, usedefault=True,),
        power=dict(argstr="-power %d",),
        roi_excl=dict(argstr="-exclude %s",),
        roi_incl=dict(argstr="-include %s",),
        roi_mask=dict(argstr="-mask %s",),
        seed_dynamic=dict(argstr="-seed_dynamic %s", extensions=None,),
        seed_gmwmi=dict(
            argstr="-seed_gmwmi %s", extensions=None, requires=["act_file"],
        ),
        seed_grid_voxel=dict(
            argstr="-seed_grid_per_voxel %s %d", xor=["seed_image", "seed_rnd_voxel"],
        ),
        seed_image=dict(argstr="-seed_image %s", extensions=None,),
        seed_rejection=dict(argstr="-seed_rejection %s", extensions=None,),
        seed_rnd_voxel=dict(
            argstr="-seed_random_per_voxel %s %d",
            xor=["seed_image", "seed_grid_voxel"],
        ),
        seed_sphere=dict(argstr="-seed_sphere %f,%f,%f,%f",),
        select=dict(argstr="-select %d", min_ver="3",),
        sph_trait=dict(argstr="%f,%f,%f,%f",),
        step_size=dict(argstr="-step %f",),
        stop=dict(argstr="-stop",),
        unidirectional=dict(argstr="-unidirectional",),
        use_rk4=dict(argstr="-rk4",),
    )
    inputs = Tractography.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_Tractography_outputs():
    output_map = dict(
        out_file=dict(extensions=None,), out_seeds=dict(extensions=None,),
    )
    outputs = Tractography.output_spec()

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