Skip to content

Commit d72df26

Browse files
committed
Add test where comma is in header
1 parent f74d1ab commit d72df26

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs

+45
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,51 @@ void Verify(DataFrame df)
554554
Verify(df);
555555
}
556556

557+
[Fact]
558+
public void TestReadCsvWithCommaSeparatorsInHeaderData()
559+
{
560+
string data = @"""Na,me"",Age,Description
561+
Paul,34,""Paul lives in Vermont, VA.""
562+
Victor,29,""Victor: Funny guy""
563+
Maria,31,";
564+
565+
void Verify(DataFrame df)
566+
{
567+
Assert.Equal(3, df.Rows.Count);
568+
Assert.Equal(3, df.Columns.Count);
569+
570+
Assert.True(typeof(string) == df.Columns[0].DataType);
571+
Assert.True(typeof(int) == df.Columns[1].DataType);
572+
Assert.True(typeof(string) == df.Columns[2].DataType);
573+
574+
575+
Assert.Equal("Na,me", df.Columns[0].Name);
576+
Assert.Equal("Age", df.Columns[1].Name);
577+
Assert.Equal("Description", df.Columns[2].Name);
578+
VerifyColumnTypes(df);
579+
580+
var paulRow = df.Rows[0];
581+
Assert.Equal("Paul", paulRow[0]);
582+
Assert.Equal(34, paulRow[1]);
583+
Assert.Equal("Paul lives in Vermont, VA.", paulRow[2]);
584+
585+
var victorRow = df.Rows[1];
586+
Assert.Equal("Victor", victorRow[0]);
587+
Assert.Equal(29, victorRow[1]);
588+
Assert.Equal("Victor: Funny guy", victorRow[2]);
589+
590+
var mariaRow = df.Rows[2];
591+
Assert.Equal("Maria", mariaRow[0]);
592+
Assert.Equal(31, mariaRow[1]);
593+
Assert.Equal("", mariaRow[2]);
594+
}
595+
596+
DataFrame df = DataFrame.LoadCsv(GetStream(data), dataTypes: new Type[] { typeof(string), typeof(int), typeof(string) });
597+
Verify(df);
598+
df = DataFrame.LoadCsvFromString(data, dataTypes: new Type[] { typeof(string), typeof(int), typeof(string) });
599+
Verify(df);
600+
}
601+
557602
[Fact]
558603
public void TestReadCsvWithNewlinesInData()
559604
{

0 commit comments

Comments
 (0)