# Check functions calculating structural properties # Test suite for the IGraph library. # Copyright (C) 2005-2012 Gabor Csardi # 334 Harvard street, Cambridge, MA 02139 USA # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA AT_BANNER([[Structural properties]]) AT_SETUP([Two vertices connected by an edge:]) AT_KEYWORDS([igraph_are_connected]) AT_COMPILE_CHECK([simple/igraph_are_connected.c]) AT_CLEANUP AT_SETUP([Density of a graph (igraph_density):]) AT_KEYWORDS([igraph_density density]) AT_COMPILE_CHECK([simple/igraph_density.c], [simple/igraph_density.out]) AT_CLEANUP AT_SETUP([Diameter of a graph (igraph_diameter):]) AT_KEYWORDS([igraph_diameter]) AT_COMPILE_CHECK([simple/igraph_diameter.c], [simple/igraph_diameter.out]) AT_CLEANUP AT_SETUP([Average geodesic length (igraph_average_path_length): ]) AT_KEYWORDS([igraph_average_path_length]) AT_COMPILE_CHECK([simple/igraph_average_path_length.c]) AT_CLEANUP AT_SETUP([Random rewiring (igraph_rewire): ]) AT_KEYWORDS([igraph_rewire]) AT_COMPILE_CHECK([simple/igraph_rewire.c], [simple/igraph_rewire.out]) AT_CLEANUP AT_SETUP([Get the shortest paths (igraph_get_shortest_paths): ]) AT_KEYWORDS([igraph_get_shortest_paths shortest paths geodesic]) AT_COMPILE_CHECK([simple/igraph_get_shortest_paths.c], [simple/igraph_get_shortest_paths.out]) AT_CLEANUP AT_SETUP([Get the shortest paths #2 (igraph_get_shortest_paths): ]) AT_KEYWORDS([igraph_get_shortest_paths shortest paths geodesic]) AT_COMPILE_CHECK([simple/igraph_get_shortest_paths2.c], [simple/igraph_get_shortest_paths2.out]) AT_CLEANUP AT_SETUP([Weighted shortest paths (Dijkstra): ]) AT_KEYWORDS([igraph_shortest_paths_dijkstra Dijkstra shortest paths geodesic]) AT_COMPILE_CHECK([simple/dijkstra.c], [simple/dijkstra.out]) AT_CLEANUP AT_SETUP([Weighted shortest paths (Bellman-Ford): ]) AT_KEYWORDS([igraph_shortest_paths_bellman_ford Bellman-Ford shortest paths geodesic]) AT_COMPILE_CHECK([simple/bellman_ford.c], [simple/bellman_ford.out]) AT_CLEANUP AT_SETUP([Get the weighted shortest paths (Dijkstra): ]) AT_KEYWORDS([igraph_get_shortest_paths_dijkstra Dijkstra shortest paths geodesic]) AT_COMPILE_CHECK([simple/igraph_get_shortest_paths_dijkstra.c], [simple/igraph_get_shortest_paths_dijkstra.out]) AT_CLEANUP AT_SETUP([Get all weighted shortest paths (Dijkstra): ]) AT_KEYWORDS([igraph_get_all_shortest_paths_dijkstra Dijkstra shortest paths geodesic]) AT_COMPILE_CHECK([simple/igraph_get_all_shortest_paths_dijkstra.c], [simple/igraph_get_all_shortest_paths_dijkstra.out]) AT_CLEANUP AT_SETUP([Shortest path wrappers for single target node: ]) AT_KEYWORDS([igraph_get_shortest_path igraph_get_shortest_path_dijkstra]) AT_COMPILE_CHECK([simple/single_target_shortest_path.c], [simple/single_target_shortest_path.out]) AT_CLEANUP AT_SETUP([Betweenness (igraph_betweenness): ]) AT_KEYWORDS([igraph_betweenness betweenness]) AT_COMPILE_CHECK([simple/igraph_betweenness.c]) AT_CLEANUP AT_SETUP([Betweenness, big integers (igraph_betweenness): ]) AT_KEYWORDS([igraph_betweenness betweenness arbitrarily large integers biguint bigint]) AT_COMPILE_CHECK([simple/biguint_betweenness.c]) AT_CLEANUP AT_SETUP([Edge betweenness (igraph_edge_betweenness): ]) AT_KEYWORDS([igraph_edge_betweenness betwenness]) AT_COMPILE_CHECK([simple/igraph_edge_betweenness.c], [simple/igraph_edge_betweenness.out]) AT_CLEANUP AT_SETUP([Transitivity (igraph_transitivity): ]) AT_KEYWORDS([igraph_transitivity transitivity igraph_transitivity_undirected]) AT_COMPILE_CHECK([simple/igraph_transitivity.c]) AT_CLEANUP AT_SETUP([Local transitivity (igraph_local_transitivity): ]) AT_KEYWORDS([transitivity igraph_transitivity_local_undirected]) AT_COMPILE_CHECK([simple/igraph_local_transitivity.c]) AT_CLEANUP AT_SETUP([Reciprocity (igraph_reciprocity): ]) AT_KEYWORDS([igraph_reciprocity reciprocity]) AT_COMPILE_CHECK([simple/igraph_reciprocity.c]) AT_CLEANUP AT_SETUP([Minimum spanning tree (igraph_minimum_spanning_tree_*): ]) AT_KEYWORDS([igraph_minimum_spanning_tree_prim Prim minimum spanning tree]) AT_COMPILE_CHECK([simple/igraph_minimum_spanning_tree.c], [simple/igraph_minimum_spanning_tree.out]) AT_CLEANUP AT_SETUP([Cocitation and bibcoupling (igraph_cocitation,igraph_bibcoupling):]) AT_KEYWORDS([cocitation bibliographic coupling]) AT_COMPILE_CHECK([simple/igraph_cocitation.c], [simple/igraph_cocitation.out]) AT_CLEANUP AT_SETUP([Similarity coefficients (igraph_similarity_*):]) AT_KEYWORDS([similarity jaccard dice]) AT_COMPILE_CHECK([simple/igraph_similarity.c], [simple/igraph_similarity.out]) AT_CLEANUP AT_SETUP([Simplification of non-simple graphs (igraph_simplify): ]) AT_KEYWORDS([simplify multiple edge loop edges non-simple graphs simple graphs]) AT_COMPILE_CHECK([simple/igraph_simplify.c], [simple/igraph_simplify.out]) AT_CLEANUP AT_SETUP([Topological sorting (igraph_topological_sorting, igraph_is_dag): ]) AT_KEYWORDS([topological sorting directed acyclic graphs]) AT_COMPILE_CHECK([simple/igraph_topological_sorting.c], [simple/igraph_topological_sorting.out]) AT_CLEANUP AT_SETUP([Feedback arc sets, Eades heuristics (igraph_feedback_arc_set): ]) AT_KEYWORDS([feedback arc set directed graphs]) AT_COMPILE_CHECK([simple/igraph_feedback_arc_set.c], [simple/igraph_feedback_arc_set.out]) AT_CLEANUP AT_SETUP([Feedback arc sets, integer programming (igraph_feedback_arc_set): ]) AT_KEYWORDS([feedback arc set directed graphs]) AT_COMPILE_CHECK([simple/igraph_feedback_arc_set_ip.c], [simple/igraph_feedback_arc_set_ip.out]) AT_CLEANUP AT_SETUP([Loop edges test (igraph_is_loop): ]) AT_KEYWORDS([loop edge igraph_is_loop]) AT_COMPILE_CHECK([simple/igraph_is_loop.c], [simple/igraph_is_loop.out]) AT_CLEANUP AT_SETUP([Multiple edges test (igraph_is_multiple): ]) AT_KEYWORDS([multiple edge parallel edge igraph_is_multiple]) AT_COMPILE_CHECK([simple/igraph_is_multiple.c], [simple/igraph_is_multiple.out]) AT_CLEANUP AT_SETUP([Multiple edges test (igraph_has_multiple): ]) AT_KEYWORDS([multiple edge parallel edge igraph_has_multiple]) AT_COMPILE_CHECK([simple/igraph_has_multiple.c]) AT_CLEANUP AT_SETUP([Girth (igraph_girth): ]) AT_KEYWORDS([girth igraph_girth]) AT_COMPILE_CHECK([simple/igraph_girth.c]) AT_CLEANUP AT_SETUP([Convergence degree (igraph_convergence_degree): ]) AT_KEYWORDS([edge convergence degree igraph_convergence_degree]) AT_COMPILE_CHECK([simple/igraph_convergence_degree.c], [simple/igraph_convergence_degree.out]) AT_CLEANUP AT_SETUP([Assortativity coefficient (igraph_assortativity): ]) AT_KEYWORDS([assortativity mixing igraph_assortativity]) AT_COMPILE_CHECK([simple/assortativity.c], [simple/assortativity.out], [simple/{karate,celegansneural}.gml]) AT_CLEANUP AT_SETUP([Average nearest neighbor degree (igraph_avg_nearest_neighbor_degree): ]) AT_KEYWORDS([nearest neighbor degree degree correlations]) AT_COMPILE_CHECK([simple/igraph_knn.c]) AT_CLEANUP AT_SETUP([Transitive closure of a DAG (igraph_transitive_closure_dag): ]) AT_KEYWORDS([transitive closure DAG]) AT_COMPILE_CHECK([simple/igraph_transitive_closure_dag.c], [simple/igraph_transitive_closure_dag.out]) AT_CLEANUP AT_SETUP([Eccentricity (igraph_eccentricity): ]) AT_KEYWORDS([eccentricity]) AT_COMPILE_CHECK([simple/igraph_eccentricity.c], [simple/igraph_eccentricity.out]) AT_CLEANUP AT_SETUP([Radius (igraph_radius): ]) AT_KEYWORDS([radius eccentricity]) AT_COMPILE_CHECK([simple/igraph_radius.c]) AT_CLEANUP