public void TestCorruptStrings()
        {
            var chars = new char[char.MaxValue];

            for (var i = char.MinValue; i < chars.Length; i++)
            {
                chars[i] = i;
            }
            var str = new string(chars);
            var sb  = new StringHelper.LiteStringBuilder();

            sb.Append(chars);

            Assert.AreEqual(sb.ToString(), str);

            Assert.AreEqual(sb.Length, str.Length);
            Assert.AreEqual(sb.ToString().Length, sb.Length);


            sb.Clear();
            var singleByteString = "s";
            var doubleByteString = "ß";
            var quadByteString   = "𝟘";

            sb.Append(singleByteString);
            Assert.AreEqual(sb.ToString(), singleByteString);

            sb.Append(doubleByteString);
            Assert.AreEqual(sb.ToString(), singleByteString + doubleByteString);

            sb.Append(quadByteString);
            Assert.AreEqual(sb.ToString(), singleByteString + doubleByteString + quadByteString);
        }
        public void TestClear()
        {
            var sb = new StringHelper.LiteStringBuilder();

            Assert.IsTrue(sb.IsEmpty());
            sb.Append("Hello");
            Assert.IsFalse(sb.IsEmpty());
            Assert.AreEqual(sb.ToString(), "Hello");
            sb.Clear();
            Assert.IsTrue(sb.IsEmpty());
            Assert.AreEqual(sb.ToString(), "");
        }