static SourceFragment RemoveIndentFromDescendantNodes(SourceFragment fragment, string elementIndent)
        {
            // If all subsequent lines start with the indent specified, remove it
            StringBuilder stringBuilder    = new StringBuilder();
            bool          isFirst          = true;
            bool          indentFixSuccess = true;

            foreach (var line in fragment.ToString().Split('\n'))
            {
                if (isFirst)
                {
                    isFirst = false;
                    stringBuilder.Append(line);
                }
                else if (!line.StartsWith(elementIndent))
                {
                    indentFixSuccess = false;
                    break;
                }
                else
                {
                    stringBuilder.Append('\n');
                    stringBuilder.Append(line.Substring(elementIndent.Length));
                }
            }
            return(indentFixSuccess ? SourceFragment.FromString(stringBuilder.ToString()) : fragment);
        }
        public static void ToStringIsRoundtripInvariant()
        {
            var fragmentString  = Fragment.ToString();
            var trippedFragment = SourceFragment.FromString(fragmentString);

            Assert.AreEqual(Fragment, trippedFragment);
        }