    @Test
    public void testComplexDag() {

	DirectedGraph<String, DefaultEdge> g = new DefaultDirectedGraph<String, DefaultEdge>(DefaultEdge.class);

	g.addVertex("a");
	g.addVertex("b");
	g.addVertex("c");
	g.addVertex("d");
	g.addVertex("e");
	g.addVertex("f");
	g.addVertex("g");

	g.addEdge("a", "b");
	g.addEdge("b", "c");
	g.addEdge("c", "d");
	g.addEdge("d", "f");
	g.addEdge("b", "e");
	g.addEdge("e", "f");
	g.addEdge("f", "g");
	g.addEdge("a", "f");

	Assert.assertEquals("b", new TarjanLowestCommonAncestor<String, DefaultEdge>(g).calculate("a", "e", "c"));

    }