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."); }
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."); } }
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."); } }
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."); }
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."); } }
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."); } }
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."); } }