# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
from ..brainsuite import BDP


def test_BDP_inputs():
    input_map = dict(
        BVecBValPair=dict(
            argstr="--bvec %s --bval %s",
            mandatory=True,
            position=-1,
            xor=["bMatrixFile"],
        ),
        args=dict(argstr="%s",),
        bMatrixFile=dict(
            argstr="--bmat %s",
            extensions=None,
            mandatory=True,
            position=-1,
            xor=["BVecBValPair"],
        ),
        bValRatioThreshold=dict(argstr="--bval-ratio-threshold %f",),
        bfcFile=dict(
            argstr="%s",
            extensions=None,
            mandatory=True,
            position=0,
            xor=["noStructuralRegistration"],
        ),
        customDiffusionLabel=dict(
            argstr="--custom-diffusion-label %s", extensions=None,
        ),
        customLabelXML=dict(argstr="--custom-label-xml %s", extensions=None,),
        customT1Label=dict(argstr="--custom-t1-label %s", extensions=None,),
        dataSinkDelay=dict(argstr="%s",),
        dcorrRegMeasure=dict(argstr="--dcorr-reg-method %s",),
        dcorrWeight=dict(argstr="--dcorr-regularization-wt %f",),
        dwiMask=dict(argstr="--dwi-mask %s", extensions=None,),
        echoSpacing=dict(argstr="--echo-spacing=%f",),
        environ=dict(nohash=True, usedefault=True,),
        estimateODF_3DShore=dict(argstr="--3dshore --diffusion_time_ms %f",),
        estimateODF_FRACT=dict(argstr="--FRACT",),
        estimateODF_FRT=dict(argstr="--FRT",),
        estimateTensors=dict(argstr="--tensors",),
        fieldmapCorrection=dict(
            argstr="--fieldmap-correction %s",
            extensions=None,
            requires=["echoSpacing"],
        ),
        fieldmapCorrectionMethod=dict(
            argstr="--fieldmap-correction-method %s", xor=["skipIntensityCorr"],
        ),
        fieldmapSmooth=dict(argstr="--fieldmap-smooth3=%f",),
        flagConfigFile=dict(argstr="--flag-conf-file %s", extensions=None,),
        forcePartialROIStats=dict(argstr="--force-partial-roi-stats",),
        generateStats=dict(argstr="--generate-stats",),
        ignoreFieldmapFOV=dict(argstr="--ignore-fieldmap-fov",),
        ignoreMemory=dict(argstr="--ignore-memory",),
        inputDiffusionData=dict(
            argstr="--nii %s", extensions=None, mandatory=True, position=-2,
        ),
        lowMemory=dict(argstr="--low-memory",),
        noStructuralRegistration=dict(
            argstr="--no-structural-registration",
            mandatory=True,
            position=0,
            xor=["bfcFile"],
        ),
        odfLambta=dict(argstr="--odf-lambda <L>",),
        onlyStats=dict(argstr="--generate-only-stats",),
        outPrefix=dict(argstr="--output-fileprefix %s",),
        outputDiffusionCoordinates=dict(argstr="--output-diffusion-coordinate",),
        outputSubdir=dict(argstr="--output-subdir %s",),
        phaseEncodingDirection=dict(argstr="--dir=%s",),
        rigidRegMeasure=dict(argstr="--rigid-reg-measure %s",),
        skipDistortionCorr=dict(argstr="--no-distortion-correction",),
        skipIntensityCorr=dict(
            argstr="--no-intensity-correction", xor=["fieldmapCorrectionMethod"],
        ),
        skipNonuniformityCorr=dict(argstr="--no-nonuniformity-correction",),
        t1Mask=dict(argstr="--t1-mask %s", extensions=None,),
        threads=dict(argstr="--threads=%d",),
        transformDataOnly=dict(argstr="--transform-data-only",),
        transformDiffusionSurface=dict(
            argstr="--transform-diffusion-surface %s", extensions=None,
        ),
        transformDiffusionVolume=dict(
            argstr="--transform-diffusion-volume %s", extensions=None,
        ),
        transformInterpolation=dict(argstr="--transform-interpolation %s",),
        transformT1Surface=dict(argstr="--transform-t1-surface %s", extensions=None,),
        transformT1Volume=dict(argstr="--transform-t1-volume %s", extensions=None,),
    )
    inputs = BDP.input_spec()

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