public void TestWalkDirectedAcyclicGraph( )
        {
            IGraphNode n0 = new GraphNode( "n0", 0 );
            IGraphNode n1 = new GraphNode( "n1", 1 );
            IGraphNode n2 = new GraphNode( "n2", 2 );
            IGraphNode n3 = new GraphNode( "n3", 3 );
            IGraphNode n4 = new GraphNode( "n4", 4 );
            IGraphNode n5 = new GraphNode( "n5", 5 );
            IGraphNode n6 = new GraphNode( "n6", 6 );
            n0.AddOutputNode( n2 );
            n1.AddOutputNode( n2 );	//	n2 has two inputs (n0,n1). n1 is not in the start node list

            n3.AddInputNode( n2 );	//	Should be the same as n2.AddOutputNode( n3 )
            n4.AddInputNode( n3 );
            n5.AddInputNode( n4 );
            n5.AddInputNode( n1 );
            n6.AddInputNode( n5 );
            GraphNodeWalker.Walk( new IGraphNode[] { n0 }, new MockVisitor( n0, n1, n2, n3, n4, n5, n6 ) );
        }