public void Deregionize()
        {
            var code =
            @"public class MyClass
            {
            #region Constructors
            public MyClass()
            : base() { }

            public string Data { get; set; }
            }
            #endregion";

            var tree = SyntaxFactory.ParseSyntaxTree(code).GetRoot();
            var treeRegionCounts = new RegionWalker();
            treeRegionCounts.Visit(tree);

            Assert.AreEqual(1, treeRegionCounts.RegionCount);
            Assert.AreEqual(1, treeRegionCounts.EndRegionCount);

            var newTree = tree.Deregionize();
            Assert.AreNotSame(newTree, tree);

            var newTreeRegionCounts = new RegionWalker();
            newTreeRegionCounts.Visit(newTree);

            Assert.AreEqual(0, newTreeRegionCounts.RegionCount);
            Assert.AreEqual(0, newTreeRegionCounts.EndRegionCount);
        }
        public void DeregionizeRange()
        {
            var code = File.ReadAllText("Range.cs");

            var tree = SyntaxFactory.ParseSyntaxTree(code).GetRoot();

            var treeRegionCounts = new RegionWalker();
            treeRegionCounts.Visit(tree);

            Assert.AreEqual(4, treeRegionCounts.RegionCount);
            Assert.AreEqual(4, treeRegionCounts.EndRegionCount);

            var newTree = tree.Deregionize();
            Assert.AreNotSame(newTree, tree);

            var newTreeRegionCounts = new RegionWalker();
            newTreeRegionCounts.Visit(newTree);

            File.WriteAllText("RangeNoRegions.cs", newTree.ToString());

            Assert.AreEqual(0, newTreeRegionCounts.RegionCount);
            Assert.AreEqual(0, newTreeRegionCounts.EndRegionCount);
        }