public void BFS() { var edge0 = new[] { 1, 2 }; var edge1 = new[] { 3 }; var edge2 = new[] { 3, 1, 4 }; var edge3 = new[] { 0 }; var edge4 = new[] { 3, 1 }; var dgraph = new DGraph(5); dgraph.Add(0, edge0); dgraph.Add(1, edge1); dgraph.Add(2, edge2); dgraph.Add(3, edge3); dgraph.Add(4, edge4); var bfs = dgraph.BFS(1); Assert.AreEqual(5, bfs.Count()); var bfsArr = bfs.ToArray(); var result = new[] { 1, 3, 0, 2, 4 }; for (int i = 0; i < bfsArr.Length; i++) { Assert.AreEqual(result[i], bfsArr[i]); } }