public void Shrink_StopsAtLeafNode()
        {
            var a = new HierarchicalData("a");
            var b = new HierarchicalData("b");
            var c = new HierarchicalData("c");

            a.AddChild(b);
            b.AddChild(c);

            // c is leaf node

            var data = a.Shrink();

            Assert.AreEqual("c", data.Name);
        }
        public void Shrink_StopsOnMultipleChildren()
        {
            var a = new HierarchicalData("a");
            var b = new HierarchicalData("b");
            var c = new HierarchicalData("c");
            var d = new HierarchicalData("d");

            a.AddChild(b);
            b.AddChild(c);
            b.AddChild(d);

            // b has two children

            var data = a.Shrink();

            Assert.AreEqual("b", data.Name);
        }