private static void RunTest() { var parser = new ManualParser(); string csv = Properties.Resources.Csv; var result = new StringBuilder(); var s = new Stopwatch(); for (int test = 0; test < 3; test++) { int lineCount = 0; s.Start(); for (int i = 0; i < 1000000 / 50; i++) { foreach (var line in csv.Split(new[] { Environment.NewLine }, StringSplitOptions.None)) { string cur = line + s.ElapsedTicks.ToString(); result.AppendLine(parser.Parse(cur).ToString()); lineCount++; } } s.Stop(); Console.WriteLine("Completed {0} lines in {1}ms", lineCount, s.ElapsedMilliseconds); s.Reset(); result = new StringBuilder(); } }
public void Parse_GivenStringWithNoQuotesAndNoCommas_ShouldReturnThatString() { // Arrange var parser = new ManualParser(); // Act string[] result = parser.Parse("This is my data").ToArray(); // Assert Assert.AreEqual(1, result.Length, "Should only be one column returned"); Assert.AreEqual("This is my data", result[0], "Incorrect value is returned"); }
public void Parse_GivenStringWithQuotesAndNoCommas_ShouldReturnColumnWithoutQuotes() { // Arrange var parser = new ManualParser(); // Act string[] result = parser.Parse("\"This is my data\"").ToArray(); // Assert Assert.AreEqual(1, result.Length, "Should be 1 column returned"); Assert.AreEqual("This is my data", result[0], "Value is incorrect"); }
public void Parse_GivenStringWithQuotesContainingCommasAndCommas_ShouldReturnColumnsWithoutQuotes() { // Arrange var parser = new ManualParser(); // Act string[] result = parser.Parse("\"This, is\", my data").ToArray(); // Assert Assert.AreEqual(2, result.Length, "Should be 2 columns returned"); Assert.AreEqual("This, is", result[0], "First value is incorrect"); Assert.AreEqual("my data", result[1], "Second value is incorrect"); }
public void Parse_GivenStringWithNoQuotesAndOneComma_ShouldReturnTwoColumns() { // Arrange var parser = new ManualParser(); // Act string[] result = parser.Parse("This is, my data").ToArray(); // Assert Assert.AreEqual(2, result.Length, "Should be 2 columns returned"); Assert.AreEqual("This is", result[0], "First value is incorrect"); Assert.AreEqual("my data", result[1], "Second value is incorrect"); }
static void Main(string[] args) { var parser = new ManualParser(); string csv = Properties.Resources.Csv; var result = new StringBuilder(); var s = new Stopwatch(); int lineCount = 0; s.Start(); for (int i = 0; i < 3000; i++) { foreach (var line in csv.Split(new[] { Environment.NewLine }, StringSplitOptions.None)) { result.AppendLine(parser.Parse(line).ToString()); lineCount++; } } s.Stop(); Console.WriteLine("Completed {0} lines in {1}ms", lineCount, s.ElapsedMilliseconds); }