use leiden_rs::{GraphDataBuilder, Leiden, LeidenConfig};
fn main() {
let mut b = GraphDataBuilder::new(6);
b.add_edge(0, 1, 1.0).unwrap();
b.add_edge(1, 2, 1.0).unwrap();
b.add_edge(0, 2, 1.0).unwrap();
b.add_edge(3, 4, 1.0).unwrap();
b.add_edge(4, 5, 1.0).unwrap();
b.add_edge(3, 5, 1.0).unwrap();
b.add_edge(2, 3, 0.1).unwrap();
let graph = b.build().unwrap();
let leiden = Leiden::new(LeidenConfig::default());
let result = leiden.run(&graph).expect("leiden failed");
println!("Graph has {} nodes", graph.node_count());
println!(
"Detected {} communities (quality: {:.4})",
result.partition.num_communities(),
result.quality
);
println!();
for node in 0..graph.node_count() {
println!(
" Node {} → Community {}",
node,
result.partition.community_of(node)
);
}
}