()
| 211 | |
| 212 | #[test] |
| 213 | fn complex_graph() { |
| 214 | let a = n("A"); |
| 215 | let b = n("B"); |
| 216 | let c = n("C"); |
| 217 | let d = n("D"); |
| 218 | let e = n("E"); |
| 219 | let f = n("F"); |
| 220 | let g = n("G"); |
| 221 | let h = n("H"); |
| 222 | |
| 223 | let graph = map_of(&[ |
| 224 | (&a, slice::from_ref(&b)), |
| 225 | (&b, &[c.clone(), e.clone(), f.clone()]), |
| 226 | (&c, &[d.clone(), g.clone()]), |
| 227 | (&d, &[c.clone(), h.clone()]), |
| 228 | (&e, &[a.clone(), f.clone()]), |
| 229 | (&f, slice::from_ref(&g)), |
| 230 | (&g, slice::from_ref(&f)), |
| 231 | (&h, &[d.clone(), g.clone()]), |
| 232 | ]); |
| 233 | |
| 234 | let sccs = compute_sccs(&graph); |
| 235 | let mut res = vec![ |
| 236 | vec![n("A"), n("B"), n("E")], |
| 237 | vec![n("C"), n("D"), n("H")], |
| 238 | vec![n("F"), n("G")], |
| 239 | ]; |
| 240 | for scc in &mut res { |
| 241 | scc.sort(); |
| 242 | } |
| 243 | res.sort(); |
| 244 | assert_eq!(scc_to_vec(&sccs), res,); |
| 245 | } |
| 246 | } |
nothing calls this directly
no test coverage detected