SmallestCSVParserTests/UnitTest1.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System.Text;
using System.Text.Json;
using SmallestCSV;

[TestClass]
public class SmallestCSVParserTest
{
    [TestMethod]
    public void Test1() {
        using var sr = new StreamReader("test1.csv");
        var parser = new SmallestCSVParser(sr);

        string[][] expected = [
            [ "a", "b", " c ", " 1 2 \"3\"  ", "\"4\"" ],
            [ "d", "e", "f" ],
            [ "", "", "" ],
            [ "" ],
            [ "single_field" ],
            [ "a", "b", " c ",
                " some \r\n emoji \uD83D\uDE0A and \r\nembedded , commas, and \r\n\"new\"\r\nlines ",
                " 3"],
        ];

        var rows = readAllRows(() => parser.ReadNextRow()).ToList();
        compareRows(expected: expected, actual: rows);
    }

    [TestMethod]
    public void Test1Raw() {
        using var sr = new StreamReader("test1.csv");
        var parser = new SmallestCSVParser(sr);

        string[][] expected = [
            [ "a", "b", " c ", "\" 1 2 \"3\"  \"", "\"\"4\"\"" ],
            [ "d", "e", "f" ],
            [ "", "\"\"", "" ],
            [ "" ],
            [ "single_field" ],
            [ "a", "b", " c ",
                "\" some \r\n emoji \uD83D\uDE0A and \r\nembedded , commas, and \r\n\"new\"\r\nlines \"",
                " 3"],
        ];

        var rows = readAllRows(() => parser.ReadNextRow(removeEnclosingQuotes:false)).ToList();
        compareRows(expected: expected, actual: rows);
    }

    [TestMethod]
    public void TestErrorQuoteEOF() {
        string data = "\"this_field_is_not_terminated_by_quote";
        using var sr = streamReaderFromString(data);
        var parser = new SmallestCSVParser(sr);
        var e = Assert.ThrowsException<SmallestCSVParser.Error>(() => parser.ReadNextRow());
        Assert.AreEqual("EOF reached inside quoted column", e.Message);
    }

    [TestMethod]
    public void TestErrorUnknownChar() {
        string data = "\"this_field_has_garbage_after\" ";
        using var sr = streamReaderFromString(data);
后面还有 96 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。