ade_graph_generators/
complete_graph.rs1pub fn complete_graph_data(n: usize) -> (Vec<u32>, Vec<(u32, u32)>) {
2 let nodes: Vec<u32> = (0..n as u32).collect();
3
4 let mut edges = Vec::new();
5 for &src in &nodes {
6 for &dst in &nodes {
7 if src != dst {
8 edges.push((src, dst));
9 }
10 }
11 }
12
13 (nodes, edges)
14}
15
16#[cfg(test)]
17mod tests {
18 use super::*;
19
20 #[test]
21 fn test_complete_graph_data() {
22 let (nodes, edges) = complete_graph_data(3);
23 assert_eq!(nodes.len(), 3);
24 assert_eq!(edges.len(), 3 * 2);
25
26 let (nodes, edges) = complete_graph_data(4);
27 assert_eq!(nodes.len(), 4);
28 assert_eq!(edges.len(), 4 * 3);
29
30 let (nodes, edges) = complete_graph_data(7);
31 assert_eq!(nodes.len(), 7);
32 assert_eq!(edges.len(), 7 * 6);
33 }
34}