From 9c102471463ed13c4d066fee448e833633663520 Mon Sep 17 00:00:00 2001 From: Aleksei Smirnov Date: Thu, 20 Jul 2023 11:42:34 +0300 Subject: [PATCH 1/2] Fix issue with addIndexColumn in DataFrame.LoadCsv --- src/Microsoft.Data.Analysis/DataFrame.IO.cs | 7 +++---- .../DataFrame.IOTests.cs | 13 +++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.Data.Analysis/DataFrame.IO.cs b/src/Microsoft.Data.Analysis/DataFrame.IO.cs index 44448da008..247df0a57e 100644 --- a/src/Microsoft.Data.Analysis/DataFrame.IO.cs +++ b/src/Microsoft.Data.Analysis/DataFrame.IO.cs @@ -439,14 +439,13 @@ private static DataFrame ReadCsvLinesIntoDataFrame(WrappedStreamReaderOrStringRe if (addIndexColumn) { - PrimitiveDataFrameColumn indexColumn = new PrimitiveDataFrameColumn("IndexColumn", columns[0].Length); - for (int i = 0; i < columns[0].Length; i++) + Int64DataFrameColumn indexColumn = new Int64DataFrameColumn("IndexColumn", columns[0].Length); + for (long i = 0; i < columns[0].Length; i++) { indexColumn[i] = i; } - columns.Insert(0, indexColumn); + ret.Columns.Insert(0, indexColumn); } - } return ret; diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs index 05565673b0..1f934ff2eb 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs @@ -622,6 +622,19 @@ public void TestReadCsvWithRepeatColumnNameInHeader() Assert.Matches(@"DataFrame already contains a column called Column( \(Parameter 'column'\)|\r\nParameter name: column)", exp.Message); } + [Fact] + public void TestLoadCsvWithAddIndexColumn() + { + var dataFrame = DataFrame.LoadCsvFromString("11\r\n22\r\n33", header: false, addIndexColumn: true); + + Assert.Equal(2, dataFrame.Columns.Count); + Assert.Equal("IndexColumn", dataFrame.Columns[0].Name); + Assert.Equal(3, dataFrame.Columns[0].Length); + + for (long i = 0; i < dataFrame.Columns[0].Length; i++) + Assert.Equal(i, dataFrame.Columns[0].Length); + } + [Fact] public void TestReadCsvWithExtraColumnInRow() { From 3093a20b3805c4230a22411104b62be3249a112c Mon Sep 17 00:00:00 2001 From: Aleksei Smirnov Date: Thu, 20 Jul 2023 13:27:12 +0300 Subject: [PATCH 2/2] Fix tests --- test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs index 1f934ff2eb..f2a1182b59 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrame.IOTests.cs @@ -632,7 +632,7 @@ public void TestLoadCsvWithAddIndexColumn() Assert.Equal(3, dataFrame.Columns[0].Length); for (long i = 0; i < dataFrame.Columns[0].Length; i++) - Assert.Equal(i, dataFrame.Columns[0].Length); + Assert.Equal(i, dataFrame.Columns[0][i]); } [Fact]