Пример #1
0
        public void DepthFirstSearchIterator_ShouldYieldElements_InCorrectOrder()
        {
            DirectedGraph <int> graph = TestHelper.CreateSampleGraph();

            var sequence = new DepthFirstSearchIterator <int>(graph, 0);

            var expected = new DfsVertice <int>[] { Create(4, 2, 3, 4), Create(2, 0, 2, 5), Create(3, 1, 7, 8), Create(1, 0, 6, 9), Create(0, 0, 1, 10) };
            var actual   = sequence.ToList();

            CollectionAssert.AreEqual(expected, actual);
        }
Пример #2
0
        public void DepthFirstSearchIterator_ShouldYield_CorrectParenthesisedString()
        {
            DirectedGraph <int> graph = TestHelper.CreateSampleGraph();

            var sequence  = new DepthFirstSearchIterator <int>(graph, 0);
            var formatter = new DfsParenthesisFormatter <int>();

            var expected = "(0 (2 (4 4) 2) (1 (3 3) 1) 0)";
            var actual   = formatter.ToString(sequence);

            Assert.AreEqual(expected, actual);
        }
        public void SortTest()
        {
            var graph = TestHelper.CreateSampleGraph();

            var sut = new TopologicalSort <int>();

            var iterator = new DepthFirstSearchIterator <int>(graph, 0);

            var actual = sut.Sort(iterator);

            var sortedVertices = actual.Select(x => x.Vertice).ToList();

            var expected = new int[] { 0, 1, 3, 2, 4 };

            CollectionAssert.AreEqual(expected, sortedVertices);
        }