diff --git a/src/graph.rs b/src/graph.rs index a98b022..6e274b0 100644 --- a/src/graph.rs +++ b/src/graph.rs @@ -98,8 +98,8 @@ where /// would introduce a cycle, the edge is rejected and `false` is returned. pub(crate) fn add_edge(&mut self, x: V, y: V) -> bool { if x == y { - // self-edges are not considered cycles - return true; + // self-edges are always considered cycles + return false; } let (_, out_edges, ub) = self.add_node(x); @@ -258,7 +258,9 @@ mod tests { for i in 0..NUM_NODES { for j in i..NUM_NODES { - edges.push((i, j)); + if i != j { + edges.push((i, j)); + } } } diff --git a/src/lib.rs b/src/lib.rs index 71c049e..2c15a7b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -357,7 +357,9 @@ mod tests { let mut edges = Vec::with_capacity(NUM_NODES * NUM_NODES); for i in 0..NUM_NODES { for j in i..NUM_NODES { - edges.push((i, j)); + if i != j { + edges.push((i, j)); + } } }