Example #1
0
        public void Can_stream_constructor_lines()
        {
            const string separator = "|";
            var          encoding  = Encoding.UTF8;

            var separatorBuffer = encoding.GetSeparatorBuffer(separator);

            const int rowCount = 1000;

            using var fixture = new FlatFileFixture(rowCount, 3, encoding, "A|B|C", separator);

            var lines = 0;
            var sw    = Stopwatch.StartNew();

            foreach (var ctor in LineReader.StreamLines(fixture.FileStream, encoding))
            {
                var row = new RowLayout(ctor, encoding, separatorBuffer);

                if (row.A.Value == null || row.B.Value == null || row.C.Value == null)
                {
                    Trace.WriteLine(lines);
                }

                Assert.NotNull(row.A.Value);
                Assert.NotNull(row.B.Value);
                Assert.NotNull(row.C.Value);
                lines++;
            }

            Assert.Equal(rowCount + 1, lines);
            _console.WriteLine($"{lines} lines took {sw.Elapsed} to read.");
        }
Example #2
0
        public void Can_count_lines_ranged()
        {
            var expected = 10000L;

            using (var fixture = new FlatFileFixture((int)expected, Encoding.UTF8))
            {
                var sw    = Stopwatch.StartNew();
                var lines = LineReader.CountLines(fixture.FileStream, Encoding.UTF8);
                Assert.Equal(expected, lines);
                Trace.WriteLine($"{lines} lines took {sw.Elapsed} to read.");
            }
        }
Example #3
0
        public void Can_read_line_values()
        {
            var values   = 0;
            var encoding = Encoding.UTF8;

            using (var fixture = new FlatFileFixture(100000, encoding, ","))
            {
                var sw = Stopwatch.StartNew();
                LineReader.ReadLines(fixture.FileStream, encoding, ",", (n, i, v, e, m) => { values++; });
                Trace.WriteLine($"{values} cells took {sw.Elapsed} to read.");
            }
        }
Example #4
0
        public void Can_count_lines_ranged()
        {
            const long expected = 10000L;

            using var fixture = new FlatFileFixture((int)expected, Encoding.UTF8);

            var range = new RangeStream(fixture.FileStream, 0, 5000);
            var sw    = Stopwatch.StartNew();
            var lines = LineReader.CountLines(range, Encoding.UTF8);

            Assert.True(lines < 150);
            _console.WriteLine($"{lines} lines took {sw.Elapsed} to read.");
        }
Example #5
0
 public void Can_read_string_lines()
 {
     using (var fixture = new FlatFileFixture(10000, Encoding.UTF8))
     {
         var lines = 0L;
         var sw    = Stopwatch.StartNew();
         LineReader.ReadLines(fixture.FileStream, Encoding.UTF8, (lineNumber, line, metrics) =>
         {
             Assert.NotNull(line);
             lines = lineNumber;
         });
         Trace.WriteLine($"{lines} lines took {sw.Elapsed} to read.");
     }
 }
Example #6
0
 public void Can_read_constructor_lines()
 {
     using (var fixture = new FlatFileFixture(10000, Encoding.UTF8))
     {
         var lines = 0UL;
         var sw    = Stopwatch.StartNew();
         foreach (var ctor in LineReader.ReadLines(fixture.FileStream, Encoding.UTF8, "|"))
         {
             var row = new DummyData(ctor, Encoding.UTF8, Encoding.UTF8.GetSeparatorBuffer("|"));
             Assert.NotNull(row.someField.Value);
             lines++;
         }
         Trace.WriteLine($"{lines} lines took {sw.Elapsed} to read.");
     }
 }
Example #7
0
        public void Can_parse_line_values()
        {
            var values   = 0;
            var encoding = Encoding.UTF8;

            using (var fixture = new FlatFileFixture(100000, encoding, ","))
            {
                var sw = Stopwatch.StartNew();
                unsafe
                {
                    LineReader.ReadLines(fixture.FileStream, encoding, ",", (n, i, start, length, e, m) =>
                    {
                        values++;
                        e.TryParse(start, length, out bool _);
                    });
                }
                Trace.WriteLine($"{values} cells took {sw.Elapsed} to parse.");
            }
        }