예제 #1
0
        public void Constructor_Span()
        {
            string      val  = "Data1,Data2,Data3";
            Span <char> span = new Span <char>(val.ToCharArray());

            var data = new DsvReader(span, System.Text.Encoding.UTF8, new DsvOptions(',', '"', false));

            List <ReadOnlyMemory <char> > values = new List <ReadOnlyMemory <char> >();


            while (data.MoveNext())
            {
                values.Add(data.ReadNextAsMemory());
            }

            Assert.Equal(val, string.Join(",", values));
        }
예제 #2
0
        public void ReadNextSequential()
        {
            Span <string> span = new Span <string>(new string[10]);

            span.Fill("Data");

            var file = string.Join(",", span.ToArray());

            var data = new DsvReader(file, System.Text.Encoding.UTF8, DsvOptions.DefaultCsvOptions);

            List <ReadOnlyMemory <char> > values = new List <ReadOnlyMemory <char> >();


            while (data.MoveNext())
            {
                values.Add(data.ReadNextAsMemory());
            }

            Assert.Equal(span.ToArray(), values.Select(x => x.ToString()).ToArray());
        }
예제 #3
0
        public void PublicPropertyState()
        {
            string file = FileGenerator("Column", "Data", 1, 3);

            var data = new DsvReader(file, System.Text.Encoding.UTF8, DsvOptions.DefaultCsvOptions);

            Assert.True(data.MoveNext());

            var column1 = data.ReadNextAsMemory().ToString();

            Assert.Equal("Column1", column1);
            Assert.Empty(data.ReadNextAsMemory().ToString());
            Assert.Equal(1, data.Column);
            Assert.Equal(1, data.ColumnCount);
            Assert.Equal(0, data.RowCount);
            Assert.False(data.ColumnsFilled);
            Assert.False(data.NewRowNextRead);

            Assert.True(data.MoveNext());

            var column2 = data.ReadNextAsMemory().ToString();

            Assert.Equal("Column2", column2);
            Assert.Empty(data.ReadNextAsMemory().ToString());
            Assert.Equal(2, data.Column);
            Assert.Equal(2, data.ColumnCount);
            Assert.Equal(0, data.RowCount);
            Assert.False(data.ColumnsFilled);
            Assert.False(data.NewRowNextRead);

            Assert.True(data.MoveNext());

            var column3 = data.ReadNextAsMemory().ToString();

            Assert.Equal("Column3", column3);
            Assert.Empty(data.ReadNextAsMemory().ToString());
            Assert.Equal(3, data.Column);
            Assert.Equal(3, data.ColumnCount);
            Assert.Equal(1, data.RowCount);
            Assert.True(data.ColumnsFilled);
            Assert.True(data.NewRowNextRead);

            Assert.True(data.MoveNext());

            var data1 = data.ReadNextAsMemory().ToString();

            Assert.Equal("Data1", data1);
            Assert.Empty(data.ReadNextAsMemory().ToString());
            Assert.Equal(1, data.Column);
            Assert.Equal(3, data.ColumnCount);
            Assert.Equal(1, data.RowCount);
            Assert.True(data.ColumnsFilled);
            Assert.False(data.NewRowNextRead);

            Assert.True(data.MoveNext());

            var data2 = data.ReadNextAsMemory().ToString();

            Assert.Equal("Data2", data2);
            Assert.Empty(data.ReadNextAsMemory().ToString());
            Assert.Equal(2, data.Column);
            Assert.Equal(3, data.ColumnCount);
            Assert.Equal(1, data.RowCount);
            Assert.True(data.ColumnsFilled);
            Assert.False(data.NewRowNextRead);

            Assert.True(data.MoveNext());

            var data3 = data.ReadNextAsMemory().ToString();

            Assert.Equal("Data3", data3);
            Assert.Empty(data.ReadNextAsMemory().ToString());
            Assert.Equal(3, data.Column);
            Assert.Equal(3, data.ColumnCount);
            Assert.Equal(2, data.RowCount);
            Assert.True(data.ColumnsFilled);
            Assert.False(data.NewRowNextRead);

            Assert.False(data.MoveNext());
        }