test/CMakeLists.txt
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 06 Aug 2009 20:12:43 +0200
changeset 807 83ce7ce39f21
parent 696 76cbcb3e9bbb
child 745 f9746e45246e
child 810 93cd93e82f9b
child 1033 16d466589b54
permissions -rw-r--r--
Rework and fix the implementation of MinMeanCycle (#179)

- Fix the handling of the cycle means.
- Many implementation improvements:
- More efficient data storage for the strongly connected
components.
- Better handling of BFS queues.
- Merge consecutive BFS searches (perform two BFS searches
instead of three).

This version is about two times faster on average and an order of
magnitude faster if there are a lot of strongly connected components.
     1 INCLUDE_DIRECTORIES(
     2   ${PROJECT_SOURCE_DIR}
     3   ${PROJECT_BINARY_DIR}
     4 )
     5 
     6 LINK_DIRECTORIES(
     7   ${PROJECT_BINARY_DIR}/lemon
     8 )
     9 
    10 SET(TESTS
    11   adaptors_test
    12   bfs_test
    13   circulation_test
    14   connectivity_test
    15   counter_test
    16   dfs_test
    17   digraph_test
    18   dijkstra_test
    19   dim_test
    20   edge_set_test
    21   error_test
    22   euler_test
    23   gomory_hu_test
    24   graph_copy_test
    25   graph_test
    26   graph_utils_test
    27   hao_orlin_test
    28   heap_test
    29   kruskal_test
    30   maps_test
    31   matching_test
    32   min_cost_arborescence_test
    33   min_cost_flow_test
    34   path_test
    35   preflow_test
    36   radix_sort_test
    37   random_test
    38   suurballe_test
    39   time_measure_test
    40   unionfind_test
    41 )
    42 
    43 IF(LEMON_HAVE_LP)
    44   ADD_EXECUTABLE(lp_test lp_test.cc)
    45   SET(LP_TEST_LIBS lemon)
    46 
    47   IF(LEMON_HAVE_GLPK)
    48     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
    49   ENDIF()
    50   IF(LEMON_HAVE_CPLEX)
    51     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
    52   ENDIF()
    53   IF(LEMON_HAVE_CLP)
    54     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
    55   ENDIF()
    56 
    57   TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
    58   ADD_TEST(lp_test lp_test)
    59 
    60   IF(WIN32 AND LEMON_HAVE_GLPK)
    61     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    62     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    63     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    64       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
    65       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
    66       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
    67     )
    68   ENDIF()
    69 
    70   IF(WIN32 AND LEMON_HAVE_CPLEX)
    71     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    72     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    73     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    74       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
    75     )
    76   ENDIF()
    77 ENDIF()
    78 
    79 IF(LEMON_HAVE_MIP)
    80   ADD_EXECUTABLE(mip_test mip_test.cc)
    81   SET(MIP_TEST_LIBS lemon)
    82 
    83   IF(LEMON_HAVE_GLPK)
    84     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
    85   ENDIF()
    86   IF(LEMON_HAVE_CPLEX)
    87     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
    88   ENDIF()
    89   IF(LEMON_HAVE_CBC)
    90     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
    91   ENDIF()
    92 
    93   TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
    94   ADD_TEST(mip_test mip_test)
    95 
    96   IF(WIN32 AND LEMON_HAVE_GLPK)
    97     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
    98     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    99     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   100       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
   101       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
   102       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
   103     )
   104   ENDIF()
   105 
   106   IF(WIN32 AND LEMON_HAVE_CPLEX)
   107     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   108     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   109     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   110       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
   111     )
   112   ENDIF()
   113 ENDIF()
   114 
   115 FOREACH(TEST_NAME ${TESTS})
   116   ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
   117   TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
   118   ADD_TEST(${TEST_NAME} ${TEST_NAME})
   119 ENDFOREACH()