use hashbrown::HashSet;
use petgraph::graph::Graph;
use petgraph::graph::NodeIndex;
use petgraph::visit::Visitable;
use petgraph::Undirected;
use rustworkx_core::connectivity;
#[test]
fn test_is_connected() {
let graph = Graph::<(), (), Undirected>::from_edges([
(0, 1),
(1, 2),
(2, 3),
(3, 4),
(4, 5),
(5, 6),
(6, 7),
(7, 4),
]);
let node = NodeIndex::new(6);
let component: HashSet<usize> =
connectivity::bfs_undirected(&graph, node, &mut graph.visit_map())
.into_iter()
.map(|x| x.index())
.collect();
assert_eq!(component.len(), graph.node_count());
}