add_executable(Example_Hybrid
  main.cxx
)

add_executable(Example_Hybrid_Mixed
  main.cxx
)
target_compile_definitions(Example_Hybrid_Mixed PRIVATE MIXED)

add_executable(Example_Hybrid_NullMesh
  main.cxx
)
target_compile_definitions(Example_Hybrid_NullMesh PRIVATE NULLMESH)

target_link_libraries(Example_Hybrid
  PRIVATE
    catalyst::catalyst
    TestingCommons
)

target_link_libraries(Example_Hybrid_Mixed
  PRIVATE
    catalyst::catalyst
    TestingCommons
)

target_link_libraries(Example_Hybrid_NullMesh
  PRIVATE
    catalyst::catalyst
    TestingCommons
)

if(BUILD_TESTING)
  add_python_test(
    NAME Test_Hybrid
    SCRIPT testing/test.py $<TARGET_FILE:Example_Hybrid> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline.py visualization_pipeline.py
  )

  add_python_test(
    NAME Test_Hybrid_Multimesh
    SCRIPT testing/test.py $<TARGET_FILE:Example_Hybrid> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline_multimesh.py visualization_pipeline_multimesh.py
  )

  add_python_test(
    NAME Test_Hybrid_MPI
    SCRIPT testing/test.py $<TARGET_FILE:Example_Hybrid> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline.py visualization_pipeline.py true
  )
  
  add_python_test(
    NAME Test_Hybrid_Multimesh_Mixed_MPI
    SCRIPT testing/test.py $<TARGET_FILE:Example_Hybrid_Mixed> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline_mixed.py visualization_pipeline_mixed.py true
  )

  add_python_test(
    NAME Test_Hybrid_NullMesh_MPI
    SCRIPT testing/test.py $<TARGET_FILE:Example_Hybrid_NullMesh> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline_nullmesh.py visualization_pipeline_nullmesh.py true
  )
  
  add_python_test(
    NAME Test_Hybrid_Multimesh_MPI
    SCRIPT testing/test.py $<TARGET_FILE:Example_Hybrid> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline_multimesh.py visualization_pipeline_multimesh.py true
  )

  add_python_test(
    NAME Test_Hybrid_Mto1
    SCRIPT testing/MtoN/test.py $<TARGET_FILE:Example_Hybrid> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline.py visualization_pipeline.py 1
  )

  add_python_test(
    NAME Test_Hybrid_MtoN
    SCRIPT testing/MtoN/test.py $<TARGET_FILE:Example_Hybrid> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline.py visualization_pipeline.py 3
  )

  add_python_test(
    NAME Test_Hybrid_GhostCells
    SCRIPT testing/GhostCells/test.py $<TARGET_FILE:Example_Hybrid> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline.py visualization_pipeline.py
  )

  add_python_test(
    NAME Test_Hybrid_Multimesh_Mixed
    SCRIPT testing/test.py $<TARGET_FILE:Example_Hybrid_Mixed> ${CMAKE_BINARY_DIR}/lib/catalyst ${ParaView_CATALYST_DIR} reduction_pipeline_mixed.py visualization_pipeline_mixed.py
  )

endif()
