public void ReadColumnsSetTest()
        {
            const byte separator = BytesSplitReader.Comma;
            var        expecteds = new string[] { "A", "B", "C", "D", "", };
            var        text      = string.Join(((char)separator).ToString(), expecteds);
            var        raw       = Encoding.UTF8.GetBytes(text);
            var        columns   = new int[expecteds.Length];

            for (var column = columns.Length - 1; column >= 0; --column)
            {
                columns[column] = column;
            }
            var actuals = new BytesColumn[expecteds.Length];
            var appends = new Action <byte[], int, int> [expecteds.Length];

            for (var i = actuals.Length - 1; i >= 0; --i)
            {
                var actual = new BytesColumn();
                actuals[i] = actual;
                appends[i] = actual.AppendLength;
            }
            using (var readerStream = new MemoryStream(raw))
                using (var reader = new BytesSplitReader(readerStream))
                {
                    Assert.IsTrue(reader.ReadColumnsLength(separator, appends), "!ReadColumns");
                    for (var i = expecteds.Length - 1; i >= 0; --i)
                    {
                        Assert.AreEqual(expecteds[i], actuals[i].ToString(Encoding.UTF8), i.ToString());
                    }
                }
        }
        public void PositionTest()
        {
            const byte separator = BytesSplitReader.Comma;
            var        expecteds = new string[] { "A", "B", "C", "D", "", };
            var        text      = string.Join(((char)separator).ToString(), expecteds);
            var        raw       = Encoding.UTF8.GetBytes(text);

            using (var readerStream = new MemoryStream(raw))
                using (var reader = new BytesSplitReader(readerStream))
                {
                    Assert.IsTrue(reader.ReadColumns());
                    Assert.AreEqual(raw.Length, reader.Position);
                }
        }
        public void ReadColumnTest()
        {
            const byte separator = BytesSplitReader.Comma;
            var        expecteds = new string[] { "A", "B", "C", "D", "", };
            var        text      = string.Join(((char)separator).ToString(), expecteds);
            var        raw       = Encoding.UTF8.GetBytes(text);

            for (var i = expecteds.Length - 1; i >= 0; --i)
            {
                var actual = new BytesColumn();
                using (var readerStream = new MemoryStream(raw))
                    using (var reader = new BytesSplitReader(readerStream))
                    {
                        Assert.IsTrue(reader.ReadColumnsLength(separator, i, actual.AppendLength), "!ReadColumn");
                        Assert.AreEqual(expecteds[i], actual.ToString(Encoding.UTF8), i.ToString());
                    }
            }
        }