Beispiel #1
0
        public void Should_travesed_path_that_present_all_tree()
        {
            var factory = new ChainFactory();

            var treeHead = factory.Create("0");
            var subTreeA = factory.Create("123");
            var subTreeB = factory.Create("453");

            treeHead.AppendSub(subTreeA);
            treeHead.AppendSub(subTreeB);

            var enumerable = new EnumerableTreeByBFS(treeHead);
            var buffer     = new StringBuilder();

            foreach (Node node in enumerable)
            {
                buffer.Append(node.Data);
            }


            var expectedPath1 = "0142533";
            var expectedPath2 = "0415233";
            var expected      = new List <string> {
                expectedPath1, expectedPath2
            };

            Assert.Contains(expected, x => x == buffer.ToString());
        }
Beispiel #2
0
        public void Should_traverse_all_node_success()
        {
            var factory  = new ChainFactory();
            var headNode = factory.Create("12345");
            var subNode  = factory.Create("7890");

            headNode.AppendSub(subNode);

            var visited    = new List <Node>();
            var enumerable = new EnumerableTreeByBFS(headNode);

            foreach (Node node in enumerable)
            {
                visited.Add(node);
            }

            Assert.Equal(visited.Count, enumerable.Count());
        }