let directed_graph use node_ and edge_iterators
add tests for directed_graph