dsalgo/
dense_graph_from_edges_with_inf.rs1pub fn dense_graph_from_edges<T: Clone>(
2 inf: T,
3 n: usize,
4 edges: Vec<(usize, usize, T)>,
5) -> Vec<Vec<T>> {
6 let mut g = vec![vec![inf; n]; n];
7
8 for (u, v, w) in edges.into_iter() {
9 g[u][v] = w;
10 }
11
12 g
13}
14
15#[cfg(test)]
16
17mod tests {
18
19 use super::*;
20
21 #[test]
22
23 fn test() {
24 let inf = 1 << 30;
25
26 let cases = vec![(
27 vec![
28 (0, 0, 0),
29 (0, 1, 1),
30 (1, 1, 0),
31 (1, 2, 2),
32 (2, 1, 3),
33 (2, 2, 0),
34 ],
35 vec![vec![0, 1, inf], vec![inf, 0, 2], vec![inf, 3, 0]],
36 )];
37
38 for (edges, ans) in cases {
39 assert_eq!(dense_graph_from_edges(inf, ans.len(), edges), ans);
40 }
41 }
42}