itk_module_test()
set(
  ITKIOTIFFTests
  itkTIFFImageIOTest.cxx
  itkTIFFImageIOTest2.cxx
  itkTIFFImageIOCompressionTest.cxx
  itkLargeTIFFImageWriteReadTest.cxx
  itkTIFFImageIOInfoTest.cxx
  itkTIFFImageIOTestPalette.cxx
  itkTIFFImageIOIntPixelTest.cxx
)

createtestdriver(ITKIOTIFF "${ITKIOTIFF-Test_LIBRARIES}" "${ITKIOTIFFTests}")

itk_add_test(
  NAME itkTIFFImageIOTest
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTest_cthead1.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTest_cthead1.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest1
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImage.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImage.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImage.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImage.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest2
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageCCITTFax3.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax3.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageCCITTFax3.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax3.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest3
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageCCITTFax4.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax4.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageCCITTFax4.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax4.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest4
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageGray.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageGray.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageGray.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageGray.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest5
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageHuffmanRLE.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageHuffmanRLE.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageHuffmanRLE.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageHuffmanRLE.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest6
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageJPEG.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageJPEG.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageJPEG.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageJPEG.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest7
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageLZW.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageLZW.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageLZW.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageLZW.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest8
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageNone.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageNone.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageNone.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageNone.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest9
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImagePackBits.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImagePackBits.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImagePackBits.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImagePackBits.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest10
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageZIP.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageZIP.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageZIP.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageZIP.tif
)
itk_add_test(
  NAME itkTIFFImageIOTest11
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/ShortTestImage.tiff}
    ${ITK_TEST_OUTPUT_DIR}/ShortTestImage.tiff
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/ShortTestImage.tiff}
    ${ITK_TEST_OUTPUT_DIR}/ShortTestImage.tiff
    2
    2
)
itk_add_test(
  NAME itkTIFFImageIOTest12
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/48BitTestImage.tif}
    ${ITK_TEST_OUTPUT_DIR}/48BitTestImage.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/48BitTestImage.tif}
    ${ITK_TEST_OUTPUT_DIR}/48BitTestImage.tif
    2
    2
)
itk_add_test(
  NAME itkTIFFImageIOTest13
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageCCITTFax3.mha}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax3.mha
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageCCITTFax3.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax3.mha
)
itk_add_test(
  NAME itkTIFFImageIOTest14
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/RGBTestImageCCITTFax4.mha}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax4.mha
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/RGBTestImageCCITTFax4.tif}
    ${ITK_TEST_OUTPUT_DIR}/RGBTestImageCCITTFax4.mha
)
itk_add_test(
  NAME itkTIFFImageIOTest15
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTest15.png
    fd894cf735a09380c3492f46b39a0ab9
    itkTIFFImageIOTest
    DATA{Input/jello.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTest15.png
    2
    2
)

itk_add_test(
  NAME itkTIFFImageIOMultiPagesTest
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/ramp.tif}
    ${ITK_TEST_OUTPUT_DIR}/ramp.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/ramp.tif}
    ${ITK_TEST_OUTPUT_DIR}/ramp.tif
    3
)
itk_add_test(
  NAME itkTIFFImageIOMultiPagesTest2
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/rampShort.tif}
    ${ITK_TEST_OUTPUT_DIR}/rampShort.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/rampShort.tif}
    ${ITK_TEST_OUTPUT_DIR}/rampShort.tif
    3
    3
)
itk_add_test(
  NAME itkTIFFImageIOMultResTest1
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOMultResTest1.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/cthead1-multires.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOMultResTest1.tif
)
itk_add_test(
  NAME itkTIFFImageIOMultResTest2
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOMultResTest2.tif
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/cthead1-multires.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOMultResTest2.tif
    3
)
itk_add_test(
  NAME itkTIFFImageIOSpacing
  COMMAND
    ITKIOTIFFTestDriver
    itkTIFFImageIOTest2
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOSpacing.tif
)
itk_add_test(
  NAME itkTIFFImageIOFloatTest
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{Baseline/rampFloat.tif}
    ${ITK_TEST_OUTPUT_DIR}/rampFloat.tif
    itkTIFFImageIOTest
    DATA{Baseline/rampFloat.tif}
    ${ITK_TEST_OUTPUT_DIR}/rampFloat.tif
    3
    4
)
itk_add_test(
  NAME itkTIFFImageIORGBATest
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{Baseline/itkTIFFImageIORGBATestBaseline.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIORGBATest.tif
    itkTIFFImageIOTest
    DATA{Input/RGBAHead.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIORGBATest.tif
    3
    5
)

itk_add_test(
  NAME itkTIFFImageIOOrientation1
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation1.tif
    itkTIFFImageIOTest
    DATA{Input/cthead_oriet_tl.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation1.tif
    2
    1
)
itk_add_test(
  NAME itkTIFFImageIOOrientation2
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation2.tif
    itkTIFFImageIOTest
    DATA{Input/cthead_oriet_bl.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation2.tif
    2
    1
)
itk_add_test(
  NAME itkTIFFImageIOOrientation3
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation3.tif
    itkTIFFImageIOTest
    DATA{Input/cthead_oriet_br.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation3.tif
    2
    1
)
itk_add_test(
  NAME itkTIFFImageIOOrientation4
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/cthead1.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation4.tif
    itkTIFFImageIOTest
    DATA{Input/cthead_oriet_tr.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOOrientation4.tif
    2
    1
)
itk_add_test(
  NAME itkTIFFImageIOPlannarConfig1
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOPlannarConfig1.tif
    e3db5c8b5ddfb17dc708330c66a22659
    itkTIFFImageIOTest
    DATA{Input/oxford.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOPlannarConfig1.tif
    2
    1
)
itk_add_test(
  NAME itkTIFFImageIOPlannarConfig2
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOPlannarConfig2.tif
    91975481ba66709c8f3ccb538af5cd2a
    itkTIFFImageIOTest
    DATA{Input/ps-separated.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOPlannarConfig2.tif
    2
    1
)
itk_add_test(
  NAME itkTIFFImageIOTestUShortPlanarConfig2
  COMMAND
    ITKIOTIFFTestDriver
    --compare
    DATA{${ITK_DATA_ROOT}/Baseline/IO/ShortPlanarTestImage.tiff}
    ${ITK_TEST_OUTPUT_DIR}/ShortPlanarTestImage.tiff
    itkTIFFImageIOTest
    DATA{${ITK_DATA_ROOT}/Input/ShortPlanarTestImage.tiff}
    ${ITK_TEST_OUTPUT_DIR}/ShortPlanarTestImage.tiff
    2
    5
)

itk_add_test(
  NAME itkTIFFImageIOInfoTest1
  COMMAND
    ITKIOTIFFTestDriver
    itkTIFFImageIOInfoTest
    DATA{Input/single-channel.ome.tif}
)
set_tests_properties(
  itkTIFFImageIOInfoTest1
  PROPERTIES
    PASS_REGULAR_EXPRESSION
      "OME-XML metadata block"
)
itk_add_test(
  NAME itkTIFFImageIOInfoTest2
  COMMAND
    ITKIOTIFFTestDriver
    itkTIFFImageIOInfoTest
    DATA{Input/ps-separated.tif}
)
set_tests_properties(
  itkTIFFImageIOInfoTest2
  PROPERTIES
    PASS_REGULAR_EXPRESSION
      "2014:09:24 14:16:01"
)
itk_add_test(
  NAME itkTIFFImageIOInfoTest3
  COMMAND
    ITKIOTIFFTestDriver
    itkTIFFImageIOInfoTest
    DATA{Input/3d_spacing.tif}
)
set_tests_properties(
  itkTIFFImageIOInfoTest3
  PROPERTIES
    PASS_REGULAR_EXPRESSION
      "17 19 1"
)

######################
# Test Compression

set(Compression "NoCompression;LZW;JPEG;PackBits;Deflate;AdobeDeflate")
set(CompressionFiles "cthead1;RGBTestImageJPEG")
foreach(f ${CompressionFiles})
  foreach(c ${Compression})
    set(file TestTIFFCompression_${f}_${c}.tif})
    itk_add_test(
      NAME itkTIFFImageIOCompression_${f}_${c}
      COMMAND
        ITKIOTIFFTestDriver
        --compare
        DATA{Baseline/TestTIFFCompression_${f}_${c}.tif}
        ${ITK_TEST_OUTPUT_DIR}/TestTIFFCompression_${f}_${c}.tif
        itkTIFFImageIOCompressionTest
        DATA{${ITK_DATA_ROOT}/Input/${f}.tif}
        ${ITK_TEST_OUTPUT_DIR}/TestTIFFCompression_${f}_${c}.tif
        ${c}
    )
  endforeach()
endforeach()

set(Compression "JPEG")
set(CompressionFiles "cthead1")
set(Quality "1;50;100")
foreach(f ${CompressionFiles})
  foreach(q ${Quality})
    set(file TestTIFFCompression_${f}_JPEG_${q}.tif})
    itk_add_test(
      NAME itkTIFFImageIOCompression_${f}_JPEG_${q}
      COMMAND
        ITKIOTIFFTestDriver
        --compare
        DATA{Baseline/TestTIFFCompression_${f}_JPEG_${q}.tif}
        ${ITK_TEST_OUTPUT_DIR}/TestTIFFCompression_${f}_JPEG_${q}.tif
        itkTIFFImageIOCompressionTest
        DATA{${ITK_DATA_ROOT}/Input/${f}.tif}
        ${ITK_TEST_OUTPUT_DIR}/TestTIFFCompression_${f}_JPEG_${q}.tif
        JPEG
        ${q}
    )
  endforeach()
endforeach()

######################
if("${ITK_COMPUTER_MEMORY_SIZE}" GREATER 5)
  # Image of 1.67 Gigabytes (pixels size is 16bits)
  itk_add_test(
    NAME itkLargeTIFFImageWriteReadTest1
    COMMAND
      ITKIOTIFFTestDriver
      itkLargeTIFFImageWriteReadTest
      ${ITK_TEST_OUTPUT_DIR}/LargeImage01.tif
      30000L
  )

  # Image of 2.98 Gigabytes (pixels size is 16bits)
  itk_add_test(
    NAME itkLargeTIFFImageWriteReadTest2
    COMMAND
      ITKIOTIFFTestDriver
      itkLargeTIFFImageWriteReadTest
      ${ITK_TEST_OUTPUT_DIR}/LargeImage02.tif
      40000L
  )

  # Image of 4.9 Gigabytes (pixels size is 8-bits out and 16-bit in)
  itk_add_test(
    NAME itkLargeTIFFImageWriteReadTest3
    COMMAND
      ITKIOTIFFTestDriver
      itkLargeTIFFImageWriteReadTest
      ${ITK_TEST_OUTPUT_DIR}/LargeImage03.tif
      50000L
  )

  # Due to the large memory requirements this tests must be run one by one
  set_tests_properties(
    itkLargeTIFFImageWriteReadTest1
    itkLargeTIFFImageWriteReadTest2
    itkLargeTIFFImageWriteReadTest3
    PROPERTIES
      LABELS
        BigIO
      RESOURCE_LOCK
        MEMORY_SIZE
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest1
    APPEND
    PROPERTY
      LABELS
        RUNS_LONG
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest1
    APPEND
    PROPERTY
      RUN_SERIAL
        True
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest2
    APPEND
    PROPERTY
      LABELS
        RUNS_LONG
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest2
    APPEND
    PROPERTY
      RUN_SERIAL
        True
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest3
    APPEND
    PROPERTY
      LABELS
        RUNS_LONG
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest3
    APPEND
    PROPERTY
      RUN_SERIAL
        True
  )
endif()

if("${ITK_COMPUTER_MEMORY_SIZE}" GREATER 12)
  # Image of 9.12 Gigabytes (pixels size is 16bits)
  itk_add_test(
    NAME itkLargeTIFFImageWriteReadTest4
    COMMAND
      ITKIOTIFFTestDriver
      itkLargeTIFFImageWriteReadTest
      ${ITK_TEST_OUTPUT_DIR}/LargeImage04.tif
      70000L
  )

  # Due to the large memory requirements this tests must lock the memory size resource
  set_tests_properties(
    itkLargeTIFFImageWriteReadTest4
    PROPERTIES
      LABELS
        BigIO
      RESOURCE_LOCK
        MEMORY_SIZE
      COST
        30
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest4
    APPEND
    PROPERTY
      LABELS
        RUNS_LONG
  )
  set_property(
    TEST
      itkLargeTIFFImageWriteReadTest4
    APPEND
    PROPERTY
      RUN_SERIAL
        True
  )
endif()

# expand + RGB image
itk_add_test(
  NAME itkTIFFImageIOTestRGBExpanded
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestRGBExpanded.tif
    b38e265b776d8b9b23a6fb1180089b05
    itkTIFFImageIOTestPalette
    DATA{Baseline/TestTIFFCompression_RGBTestImageJPEG_PackBits.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestRGBExpanded.tif
    1
    0
)

# not expand + RGB image
itk_add_test(
  NAME itkTIFFImageIOTestRGBNotExpanded
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestRGBNotExpanded.tif
    b38e265b776d8b9b23a6fb1180089b05
    itkTIFFImageIOTestPalette
    DATA{Baseline/TestTIFFCompression_RGBTestImageJPEG_PackBits.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestRGBNotExpanded.tif
    0
    0
)

# not expand + palette image
itk_add_test(
  NAME itkTIFFImageIOTestPaletteNotExpanded
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestPaletteNotExpanded.tif
    6bc3fbf2c6743260a777c9244bd88b58
    itkTIFFImageIOTestPalette
    DATA{Input/HeliconiusNumataPalette.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestPaletteNotExpanded.tif
    0
    1
)

# expand + palette image
itk_add_test(
  NAME itkTIFFImageIOTestPaletteExpanded
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestPaletteExpanded.tif
    1e1a89a70b7cb472f55c450909df7b77
    itkTIFFImageIOTestPalette
    DATA{Input/HeliconiusNumataPalette.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestPaletteExpanded.tif
    1
    1
)

# not expand + grey palette image
itk_add_test(
  NAME itkTIFFImageIOTestGreyPaletteNotExpanded
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestGreyPaletteNotExpanded.tif
    6bc3fbf2c6743260a777c9244bd88b58
    itkTIFFImageIOTestPalette
    DATA{Input/HeliconiusNumataPalette.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestGreyPaletteNotExpanded.tif
    0
    1
)

# expand + grey palette image
itk_add_test(
  NAME itkTIFFImageIOTestGreyPaletteExpanded
  COMMAND
    ITKIOTIFFTestDriver
    --compare-MD5
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestGreyPaletteExpanded.tif
    1e1a89a70b7cb472f55c450909df7b77
    itkTIFFImageIOTestPalette
    DATA{Input/HeliconiusNumataPalette.tif}
    ${ITK_TEST_OUTPUT_DIR}/itkTIFFImageIOTestGreyPaletteExpanded.tif
    1
    1
)

itk_add_test(
  NAME itkTIFFImageIOIntPixelTest
  COMMAND
    ITKIOTIFFTestDriver
    itkTIFFImageIOIntPixelTest
    DATA{Input/int.tiff}
)

# Add GTest for TIFF module
set(ITKIOTIFFGTests itkImageSeriesReaderReverse.cxx)
creategoogletestdriver(ITKIOTIFF "${ITKIOTIFF-Test_LIBRARIES}" "${ITKIOTIFFGTests}")

target_compile_definitions(
  ITKIOTIFFGTestDriver
  PRIVATE
    "-DITK_TEST_OUTPUT_DIR=${ITK_TEST_OUTPUT_DIR}"
)
