use rust_igraph::{Graph, famous, full_graph, graph_summary, graph_summary_string};
fn main() {
println!("=== Graph Summary Demo ===\n");
let petersen = famous("petersen").unwrap();
let s = graph_summary(&petersen).unwrap();
println!("Petersen graph: {s}");
println!();
let k6 = full_graph(6, false, false).unwrap();
let s = graph_summary(&k6).unwrap();
println!("K6: {s}");
println!();
let adj = vec![
vec![0.0, 1.0, 0.0, 0.0, 1.0],
vec![1.0, 0.0, 1.0, 0.0, 0.0],
vec![0.0, 1.0, 0.0, 1.0, 0.0],
vec![0.0, 0.0, 1.0, 0.0, 1.0],
vec![1.0, 0.0, 0.0, 1.0, 0.0],
];
let cycle5 = Graph::from_adjacency_matrix(&adj, false).unwrap();
let s = graph_summary(&cycle5).unwrap();
println!("C5 (from adjacency matrix): {s}");
println!();
let mut g = Graph::with_vertices(8);
g.add_edge(0, 1).unwrap();
g.add_edge(1, 2).unwrap();
g.add_edge(2, 0).unwrap();
g.add_edge(3, 4).unwrap();
g.add_edge(4, 5).unwrap();
println!("Disconnected graph (detailed):");
println!("{}", graph_summary_string(&g).unwrap());
}