function(create_test test_name)
    add_executable(${test_name} ${test_name}.cpp)
    target_link_libraries(${test_name} PRIVATE floatx gtest_main)
    file(RELATIVE_PATH REL_BINARY_DIR
         ${PROJECT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
    add_test(NAME ${REL_BINARY_DIR}/${test_name} COMMAND ${test_name})
endfunction(create_test)

add_library(ieee_helper STATIC IEEEHelper.cpp)

create_test(conversion)
create_test(assignment)
create_test(rel_ops)
create_test(arithmetic)
create_test(stream)
create_test(std_integration)
create_test(NanInf)
create_test(round_nearest)
create_test(value_representation)
target_link_libraries(value_representation PRIVATE ieee_helper)
create_test(value_representation_half)
target_link_libraries(value_representation_half PRIVATE ieee_helper)
create_test(value_representation_bits)
target_link_libraries(value_representation_bits PRIVATE ieee_helper)
