set(BASELINE ${ITK_DATA_ROOT}/Baseline/Statistics)
set(TEMP ${ITK_BINARY_DIR}/Testing/Temporary)

itk_add_test(
  NAME ScalarImageKmeansClassifierTest
  COMMAND
    ${ITK_TEST_DRIVER}
    --compare
    DATA{${BASELINE}/ScalarImageKmeansClassifierOutput.png}
    ${TEMP}/ScalarImageKmeansClassifierOutput.png
    $<TARGET_FILE:ScalarImageKmeansClassifier>
    ${ITK_SOURCE_DIR}/Examples/Data/BrainT1Slice.png
    ${TEMP}/ScalarImageKmeansClassifierOutput.png
    1
    3
    14.8
    91.6
    134.9
)

itk_add_test(
  NAME ScalarImageMarkovRandomField1Test
  COMMAND
    ${ITK_TEST_DRIVER}
    --compare
    DATA{${BASELINE}/ScalarImageMarkovRandomField1Output.png}
    ${TEMP}/ScalarImageMarkovRandomField1Output.png
    $<TARGET_FILE:ScalarImageMarkovRandomField1>
    ${ITK_SOURCE_DIR}/Examples/Data/BrainT1Slice.png
    DATA{${ITK_DATA_ROOT}/Input/Statistics/BrainT1Slice_AfterKMeansClassification.png}
    ${TEMP}/ScalarImageMarkovRandomField1Output.png
    50
    3
    3
    14.8
    91.6
    134.9
)

itk_add_test(
  NAME BayesianPluginClassifierTest
  COMMAND
    ${ITK_TEST_DRIVER}
    $<TARGET_FILE:BayesianPluginClassifier>
)

itk_add_test(
  NAME BayesianClassifierInitializerTest
  COMMAND
    ${ITK_TEST_DRIVER}
    --compare
    DATA{${BASELINE}/BayesianClassifierInitializerClass2Output.png}
    ${TEMP}/BayesianClassifierInitializerClass2Output.png
    $<TARGET_FILE:BayesianClassifierInitializer>
    ${ITK_SOURCE_DIR}/Examples/Data/BrainProtonDensitySlice.png
    ${TEMP}/BayesianClassifierInitializerMemberships.mhd
    4
    2
    ${TEMP}/BayesianClassifierInitializerClass2Output.png
)

# This test uses inputs from BayesianClassifierInitializer.
# If that output changes, a new file should be placed in Examples/Data.
itk_add_test(
  NAME BayesianClassifierTest
  COMMAND
    ${ITK_TEST_DRIVER}
    --compare
    DATA{${BASELINE}/BayesianClassifierLabelMap.png}
    ${TEMP}/BayesianClassifierLabelMap.png
    $<TARGET_FILE:BayesianClassifier>
    ${ITK_SOURCE_DIR}/Examples/Data/BayesianClassifierInitializerMemberships.mhd
    ${TEMP}/BayesianClassifierLabelMap.png
    2
)

itk_add_test(
  NAME EuclideanDistanceTest
  COMMAND
    ${ITK_TEST_DRIVER}
    $<TARGET_FILE:EuclideanDistanceMetric>
)

itk_add_test(
  NAME GaussianDensityFunctionTest
  COMMAND
    ${ITK_TEST_DRIVER}
    $<TARGET_FILE:GaussianMembershipFunction>
)

itk_add_test(
  NAME MinimumDecisionRuleTest
  COMMAND
    ${ITK_TEST_DRIVER}
    $<TARGET_FILE:MinimumDecisionRule>
)

itk_add_test(
  NAME MaximumDecisionRuleTest
  COMMAND
    ${ITK_TEST_DRIVER}
    $<TARGET_FILE:MaximumDecisionRule>
)

itk_add_test(
  NAME MaximumRatioDecisionRuleTest
  COMMAND
    ${ITK_TEST_DRIVER}
    $<TARGET_FILE:MaximumRatioDecisionRule>
)

itk_add_test(
  NAME KdTreeTest
  COMMAND
    ${ITK_TEST_DRIVER}
    $<TARGET_FILE:KdTree>
)
