Changeset 959:17e36e175725 in lemon-main for test
- Timestamp:
- 12/20/11 17:35:45 (13 years ago)
- Branch:
- default
- Parents:
- 957:2eebc8f7dca5 (diff), 954:b96574ff36ec (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Phase:
- public
- Location:
- test
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
test/CMakeLists.txt
r949 r959 1 1 INCLUDE_DIRECTORIES( 2 ${ CMAKE_SOURCE_DIR}2 ${PROJECT_SOURCE_DIR} 3 3 ${PROJECT_BINARY_DIR} 4 4 ) 5 5 6 LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/lemon) 6 LINK_DIRECTORIES( 7 ${PROJECT_BINARY_DIR}/lemon 8 ) 9 10 SET(TEST_WITH_VALGRIND "NO" CACHE STRING 11 "Run the test with valgrind (YES/NO).") 12 SET(VALGRIND_FLAGS "" CACHE STRING "Valgrind flags used by the tests.") 7 13 8 14 SET(TESTS 15 adaptors_test 9 16 bfs_test 17 circulation_test 18 connectivity_test 10 19 counter_test 11 20 dfs_test … … 13 22 dijkstra_test 14 23 dim_test 24 edge_set_test 15 25 error_test 26 euler_test 27 gomory_hu_test 16 28 graph_copy_test 17 29 graph_test 18 30 graph_utils_test 31 hao_orlin_test 19 32 heap_test 20 33 kruskal_test 21 34 lgf_test 22 35 maps_test 36 matching_test 37 min_cost_arborescence_test 38 min_cost_flow_test 39 path_test 40 preflow_test 41 radix_sort_test 23 42 random_test 24 path_test43 suurballe_test 25 44 time_measure_test 26 unionfind_test) 45 unionfind_test 46 ) 47 48 IF(LEMON_HAVE_LP) 49 IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer") 50 ADD_EXECUTABLE(lp_test lp_test.cc) 51 ELSE() 52 ADD_EXECUTABLE(lp_test EXCLUDE_FROM_ALL lp_test.cc) 53 ENDIF() 54 55 SET(LP_TEST_LIBS lemon) 56 57 IF(LEMON_HAVE_GLPK) 58 SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES}) 59 ENDIF() 60 IF(LEMON_HAVE_CPLEX) 61 SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES}) 62 ENDIF() 63 IF(LEMON_HAVE_CLP) 64 SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES}) 65 ENDIF() 66 67 TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS}) 68 ADD_TEST(lp_test lp_test) 69 ADD_DEPENDENCIES(check lp_test) 70 71 IF(WIN32 AND LEMON_HAVE_GLPK) 72 GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION) 73 GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH) 74 ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD 75 COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH} 76 COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH} 77 COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH} 78 ) 79 ENDIF() 80 81 IF(WIN32 AND LEMON_HAVE_CPLEX) 82 GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION) 83 GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH) 84 ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD 85 COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH} 86 ) 87 ENDIF() 88 ENDIF() 89 90 IF(LEMON_HAVE_MIP) 91 IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer") 92 ADD_EXECUTABLE(mip_test mip_test.cc) 93 ELSE() 94 ADD_EXECUTABLE(mip_test EXCLUDE_FROM_ALL mip_test.cc) 95 ENDIF() 96 97 SET(MIP_TEST_LIBS lemon) 98 99 IF(LEMON_HAVE_GLPK) 100 SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES}) 101 ENDIF() 102 IF(LEMON_HAVE_CPLEX) 103 SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES}) 104 ENDIF() 105 IF(LEMON_HAVE_CBC) 106 SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES}) 107 ENDIF() 108 109 TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS}) 110 ADD_TEST(mip_test mip_test) 111 ADD_DEPENDENCIES(check mip_test) 112 113 IF(WIN32 AND LEMON_HAVE_GLPK) 114 GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION) 115 GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH) 116 ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD 117 COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH} 118 COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH} 119 COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH} 120 ) 121 ENDIF() 122 123 IF(WIN32 AND LEMON_HAVE_CPLEX) 124 GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION) 125 GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH) 126 ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD 127 COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH} 128 ) 129 ENDIF() 130 ENDIF() 27 131 28 132 FOREACH(TEST_NAME ${TESTS}) 29 ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc) 133 IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer") 134 ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc) 135 ELSE() 136 ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc) 137 ENDIF() 30 138 TARGET_LINK_LIBRARIES(${TEST_NAME} lemon) 31 ADD_TEST(${TEST_NAME} ${TEST_NAME}) 32 ENDFOREACH(TEST_NAME) 139 IF(TEST_WITH_VALGRIND) 140 ADD_TEST(${TEST_NAME} 141 valgrind --error-exitcode=1 ${VALGRIND_FLAGS} 142 ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} ) 143 ELSE() 144 ADD_TEST(${TEST_NAME} ${TEST_NAME}) 145 ENDIF() 146 ADD_DEPENDENCIES(check ${TEST_NAME}) 147 ENDFOREACH() -
test/CMakeLists.txt
r945 r959 32 32 heap_test 33 33 kruskal_test 34 lgf_test 34 35 maps_test 35 36 matching_test -
test/Makefile.am
r949 r959 4 4 noinst_HEADERS += \ 5 5 test/graph_test.h \ 6 6 test/test_tools.h 7 7 8 8 check_PROGRAMS += \ 9 test/adaptors_test \ 9 10 test/bfs_test \ 10 test/counter_test \ 11 test/circulation_test \ 12 test/connectivity_test \ 13 test/counter_test \ 11 14 test/dfs_test \ 12 15 test/digraph_test \ 13 16 test/dijkstra_test \ 14 test/dim_test \ 17 test/dim_test \ 18 test/edge_set_test \ 15 19 test/error_test \ 20 test/euler_test \ 21 test/gomory_hu_test \ 16 22 test/graph_copy_test \ 17 23 test/graph_test \ 18 24 test/graph_utils_test \ 25 test/hao_orlin_test \ 19 26 test/heap_test \ 20 27 test/kruskal_test \ 21 28 test/lgf_test \ 22 test/maps_test \ 23 test/random_test \ 24 test/path_test \ 25 test/test_tools_fail \ 26 test/test_tools_pass \ 27 test/time_measure_test \ 29 test/maps_test \ 30 test/matching_test \ 31 test/min_cost_arborescence_test \ 32 test/min_cost_flow_test \ 33 test/path_test \ 34 test/preflow_test \ 35 test/radix_sort_test \ 36 test/random_test \ 37 test/suurballe_test \ 38 test/test_tools_fail \ 39 test/test_tools_pass \ 40 test/time_measure_test \ 28 41 test/unionfind_test 42 43 test_test_tools_pass_DEPENDENCIES = demo 44 45 if HAVE_LP 46 check_PROGRAMS += test/lp_test 47 endif HAVE_LP 48 if HAVE_MIP 49 check_PROGRAMS += test/mip_test 50 endif HAVE_MIP 29 51 30 52 TESTS += $(check_PROGRAMS) 31 53 XFAIL_TESTS += test/test_tools_fail$(EXEEXT) 32 54 55 test_adaptors_test_SOURCES = test/adaptors_test.cc 33 56 test_bfs_test_SOURCES = test/bfs_test.cc 57 test_circulation_test_SOURCES = test/circulation_test.cc 34 58 test_counter_test_SOURCES = test/counter_test.cc 59 test_connectivity_test_SOURCES = test/connectivity_test.cc 35 60 test_dfs_test_SOURCES = test/dfs_test.cc 36 61 test_digraph_test_SOURCES = test/digraph_test.cc 37 62 test_dijkstra_test_SOURCES = test/dijkstra_test.cc 38 63 test_dim_test_SOURCES = test/dim_test.cc 64 test_edge_set_test_SOURCES = test/edge_set_test.cc 39 65 test_error_test_SOURCES = test/error_test.cc 66 test_euler_test_SOURCES = test/euler_test.cc 67 test_gomory_hu_test_SOURCES = test/gomory_hu_test.cc 40 68 test_graph_copy_test_SOURCES = test/graph_copy_test.cc 41 69 test_graph_test_SOURCES = test/graph_test.cc … … 43 71 test_heap_test_SOURCES = test/heap_test.cc 44 72 test_kruskal_test_SOURCES = test/kruskal_test.cc 73 test_hao_orlin_test_SOURCES = test/hao_orlin_test.cc 45 74 test_lgf_test_SOURCES = test/lgf_test.cc 75 test_lp_test_SOURCES = test/lp_test.cc 46 76 test_maps_test_SOURCES = test/maps_test.cc 77 test_mip_test_SOURCES = test/mip_test.cc 78 test_matching_test_SOURCES = test/matching_test.cc 79 test_min_cost_arborescence_test_SOURCES = test/min_cost_arborescence_test.cc 80 test_min_cost_flow_test_SOURCES = test/min_cost_flow_test.cc 47 81 test_path_test_SOURCES = test/path_test.cc 82 test_preflow_test_SOURCES = test/preflow_test.cc 83 test_radix_sort_test_SOURCES = test/radix_sort_test.cc 84 test_suurballe_test_SOURCES = test/suurballe_test.cc 48 85 test_random_test_SOURCES = test/random_test.cc 49 86 test_test_tools_fail_SOURCES = test/test_tools_fail.cc -
test/Makefile.am
r649 r959 26 26 test/heap_test \ 27 27 test/kruskal_test \ 28 test/lgf_test \ 28 29 test/maps_test \ 29 30 test/matching_test \ … … 71 72 test_kruskal_test_SOURCES = test/kruskal_test.cc 72 73 test_hao_orlin_test_SOURCES = test/hao_orlin_test.cc 74 test_lgf_test_SOURCES = test/lgf_test.cc 73 75 test_lp_test_SOURCES = test/lp_test.cc 74 76 test_maps_test_SOURCES = test/maps_test.cc -
test/dfs_test.cc
r906 r959 3 3 * This file is a part of LEMON, a generic C++ optimization library. 4 4 * 5 * Copyright (C) 2003-200 85 * Copyright (C) 2003-2009 6 6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 7 7 * (Egervary Research Group on Combinatorial Optimization, EGRES). … … 66 66 Node s, t; 67 67 Arc e; 68 int l ;68 int l, i; 69 69 bool b; 70 70 DType::DistMap d(G); 71 71 DType::PredMap p(G); 72 72 Path<Digraph> pp; 73 concepts::ReadMap<Arc,bool> am; 73 74 74 75 { 75 76 DType dfs_test(G); 77 const DType& const_dfs_test = dfs_test; 76 78 77 79 dfs_test.run(s); … … 79 81 dfs_test.run(); 80 82 81 l = dfs_test.dist(t); 82 e = dfs_test.predArc(t); 83 s = dfs_test.predNode(t); 84 b = dfs_test.reached(t); 85 d = dfs_test.distMap(); 86 p = dfs_test.predMap(); 87 pp = dfs_test.path(t); 83 dfs_test.init(); 84 dfs_test.addSource(s); 85 e = dfs_test.processNextArc(); 86 e = const_dfs_test.nextArc(); 87 b = const_dfs_test.emptyQueue(); 88 i = const_dfs_test.queueSize(); 89 90 dfs_test.start(); 91 dfs_test.start(t); 92 dfs_test.start(am); 93 94 l = const_dfs_test.dist(t); 95 e = const_dfs_test.predArc(t); 96 s = const_dfs_test.predNode(t); 97 b = const_dfs_test.reached(t); 98 d = const_dfs_test.distMap(); 99 p = const_dfs_test.predMap(); 100 pp = const_dfs_test.path(t); 88 101 } 89 102 { … … 92 105 ::SetDistMap<concepts::ReadWriteMap<Node,int> > 93 106 ::SetReachedMap<concepts::ReadWriteMap<Node,bool> > 107 ::SetStandardProcessedMap 94 108 ::SetProcessedMap<concepts::WriteMap<Node,bool> > 95 ::SetStandardProcessedMap96 109 ::Create dfs_test(G); 110 111 concepts::ReadWriteMap<Node,Arc> pred_map; 112 concepts::ReadWriteMap<Node,int> dist_map; 113 concepts::ReadWriteMap<Node,bool> reached_map; 114 concepts::WriteMap<Node,bool> processed_map; 115 116 dfs_test 117 .predMap(pred_map) 118 .distMap(dist_map) 119 .reachedMap(reached_map) 120 .processedMap(processed_map); 97 121 98 122 dfs_test.run(s); 99 123 dfs_test.run(s,t); 100 124 dfs_test.run(); 125 dfs_test.init(); 126 127 dfs_test.addSource(s); 128 e = dfs_test.processNextArc(); 129 e = dfs_test.nextArc(); 130 b = dfs_test.emptyQueue(); 131 i = dfs_test.queueSize(); 132 133 dfs_test.start(); 134 dfs_test.start(t); 135 dfs_test.start(am); 101 136 102 137 l = dfs_test.dist(t); -
test/dfs_test.cc
r585 r959 51 51 "@attributes\n" 52 52 "source 0\n" 53 "target 5\n"; 53 "target 5\n" 54 "source1 6\n" 55 "target1 3\n"; 56 54 57 55 58 void checkDfsCompile() … … 180 183 Digraph G; 181 184 Node s, t; 185 Node s1, t1; 182 186 183 187 std::istringstream input(test_lgf); … … 185 189 node("source", s). 186 190 node("target", t). 191 node("source1", s1). 192 node("target1", t1). 187 193 run(); 188 194 … … 211 217 212 218 { 219 Dfs<Digraph> dfs(G); 220 check(dfs.run(s1,t1) && dfs.reached(t1),"Node 3 is reachable from Node 6."); 221 } 222 223 { 213 224 NullMap<Node,Arc> myPredMap; 214 225 dfs(G).predMap(myPredMap).run(s); -
test/graph_copy_test.cc
r890 r893 3 3 * This file is a part of LEMON, a generic C++ optimization library. 4 4 * 5 * Copyright (C) 2003-200 85 * Copyright (C) 2003-2009 6 6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport 7 7 * (Egervary Research Group on Combinatorial Optimization, EGRES). -
test/graph_copy_test.cc
r440 r893 30 30 const int nn = 10; 31 31 32 // Build a digraph 32 33 SmartDigraph from; 33 34 SmartDigraph::NodeMap<int> fnm(from); … … 52 53 } 53 54 55 // Test digraph copy 54 56 ListDigraph to; 55 57 ListDigraph::NodeMap<int> tnm(to); … … 69 71 nodeCrossRef(ncr).arcCrossRef(ecr). 70 72 node(fn, tn).arc(fa, ta).run(); 73 74 check(countNodes(from) == countNodes(to), "Wrong copy."); 75 check(countArcs(from) == countArcs(to), "Wrong copy."); 71 76 72 77 for (SmartDigraph::NodeIt it(from); it != INVALID; ++it) { … … 91 96 check(tn == nr[fn], "Wrong copy."); 92 97 check(ta == er[fa], "Wrong copy."); 98 99 // Test repeated copy 100 digraphCopy(from, to).run(); 101 102 check(countNodes(from) == countNodes(to), "Wrong copy."); 103 check(countArcs(from) == countArcs(to), "Wrong copy."); 93 104 } 94 105 … … 96 107 const int nn = 10; 97 108 109 // Build a graph 98 110 SmartGraph from; 99 111 SmartGraph::NodeMap<int> fnm(from); … … 123 135 } 124 136 137 // Test graph copy 125 138 ListGraph to; 126 139 ListGraph::NodeMap<int> tnm(to); … … 144 157 nodeCrossRef(ncr).arcCrossRef(acr).edgeCrossRef(ecr). 145 158 node(fn, tn).arc(fa, ta).edge(fe, te).run(); 159 160 check(countNodes(from) == countNodes(to), "Wrong copy."); 161 check(countEdges(from) == countEdges(to), "Wrong copy."); 162 check(countArcs(from) == countArcs(to), "Wrong copy."); 146 163 147 164 for (SmartGraph::NodeIt it(from); it != INVALID; ++it) { … … 181 198 check(ta == ar[fa], "Wrong copy."); 182 199 check(te == er[fe], "Wrong copy."); 200 201 // Test repeated copy 202 graphCopy(from, to).run(); 203 204 check(countNodes(from) == countNodes(to), "Wrong copy."); 205 check(countEdges(from) == countEdges(to), "Wrong copy."); 206 check(countArcs(from) == countArcs(to), "Wrong copy."); 183 207 } 184 208
Note: See TracChangeset
for help on using the changeset viewer.