macro(add_fmca_test name)
  add_executable(${name}.out ${name}.cpp)
  target_link_libraries(${name}.out PRIVATE FMCA::FMCA)
  # keep assert() active in Release builds
  target_compile_options(${name}.out PRIVATE -UNDEBUG)
  add_test(NAME ${name} COMMAND ${name}.out)
endmacro()

add_fmca_test(test_AdaptiveTreeSearch)
add_fmca_test(test_ClusterTree)
add_fmca_test(test_ClusterTreeMetrics)
add_fmca_test(test_CompressorDAG)
add_fmca_test(test_FALKON)
add_fmca_test(test_H2Matrix)
add_fmca_test(test_H2MatrixKernelSolver)
add_fmca_test(test_H2SampletCompressor)
add_fmca_test(test_H2SampletCompressorUnsymmetric)
add_fmca_test(test_KernelGradient)
add_fmca_test(test_KernelLaplacian)
add_fmca_test(test_PivotedCholesky)
add_fmca_test(test_RadialFunctions)
add_fmca_test(test_RandomProjectionTree)
add_fmca_test(test_recursivelyComputeBlock)
add_fmca_test(test_SampletBasis)
add_fmca_test(test_SampletKernelSolver)
add_fmca_test(test_SampletTrafoTriplets)
add_fmca_test(test_SampletTransformer)
add_fmca_test(test_TreeIterator)
add_fmca_test(test_kNN)
