diff --git a/tests/graphmap.rs b/tests/graphmap.rs
index 02362ef..c8fbeed 100644
--- a/tests/graphmap.rs
+++ b/tests/graphmap.rs
@@ -304,11 +304,11 @@
 fn neighbors_incoming_includes_self_loops() {
     let mut graph = DiGraphMap::new();
 
-    let node = graph.add_node(());
-    graph.add_edge(node, node, ());
+    graph.add_node(());
+    graph.add_edge((), (), ());
 
-    let mut neighbors = graph.neighbors_directed(node, Incoming);
-    assert_eq!(neighbors.next(), Some(node));
+    let mut neighbors = graph.neighbors_directed((), Incoming);
+    assert_eq!(neighbors.next(), Some(()));
     assert_eq!(neighbors.next(), None);
 }
 
@@ -316,11 +316,11 @@
 fn undirected_neighbors_includes_self_loops() {
     let mut graph = UnGraphMap::new();
 
-    let node = graph.add_node(());
-    graph.add_edge(node, node, ());
+    graph.add_node(());
+    graph.add_edge((), (), ());
 
-    let mut neighbors = graph.neighbors(node);
-    assert_eq!(neighbors.next(), Some(node));
+    let mut neighbors = graph.neighbors(());
+    assert_eq!(neighbors.next(), Some(()));
     assert_eq!(neighbors.next(), None);
 }
 
@@ -328,11 +328,11 @@
 fn self_loops_can_be_removed() {
     let mut graph = DiGraphMap::new();
 
-    let node = graph.add_node(());
-    graph.add_edge(node, node, ());
+    graph.add_node(());
+    graph.add_edge((), (), ());
 
-    graph.remove_edge(node, node);
+    graph.remove_edge((), ());
 
-    assert_eq!(graph.neighbors_directed(node, Outgoing).next(), None);
-    assert_eq!(graph.neighbors_directed(node, Incoming).next(), None);
+    assert_eq!(graph.neighbors_directed((), Outgoing).next(), None);
+    assert_eq!(graph.neighbors_directed((), Incoming).next(), None);
 }
diff --git a/tests/stable_graph.rs b/tests/stable_graph.rs
index 7d05669..8645865 100644
--- a/tests/stable_graph.rs
+++ b/tests/stable_graph.rs
@@ -331,14 +331,14 @@
     gr1.add_edge(a, c, 40);
 
     let gr2 = Graph::from(gr1.clone());
-    let gr3 = StableGraph::from(gr2.clone());
+    let gr3 = StableGraph::from(gr2);
     assert!(nodes_eq!(gr1, gr3));
     assert!(edgew_eq!(gr1, gr3));
     assert!(edges_eq!(gr1, gr3));
 
     gr1.remove_node(b);
 
-    let gr4 = Graph::from(gr1.clone());
+    let gr4 = Graph::from(gr1);
     let gr5 = StableGraph::from(gr4.clone());
 
     let mut ans = StableGraph::new();
