CsvFieldIndexer: Fix calculation of offsets with unicode characters.
Fixes #4
This commit is contained in:
@@ -137,6 +137,39 @@ public class CsvFieldIndexerTests
|
||||
Assert.Equal(29, indexer.FieldIndex[1][3]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GenerateIndex__TwoLinesWithTwoQuotedColumnsWithUnicode__TwoRowsTwoFields()
|
||||
{
|
||||
// --- Arrange
|
||||
StringReader sr = new("""
|
||||
"Hélló","Wórld"
|
||||
"Hélló","Wórld"
|
||||
""");
|
||||
|
||||
// --- Act
|
||||
CsvFieldIndexer indexer = new();
|
||||
indexer.GenerateIndex(sr);
|
||||
|
||||
// --- Assert
|
||||
|
||||
Assert.Equal(3, indexer.Index.Count);
|
||||
Assert.Equal(0, indexer.Index[0]);
|
||||
Assert.Equal(19, indexer.Index[1]);
|
||||
Assert.Equal(38, indexer.Index[2]);
|
||||
|
||||
Assert.Equal(2, indexer.FieldIndex.Count);
|
||||
Assert.Equal(4, indexer.FieldIndex[0].Count);
|
||||
Assert.Equal(1, indexer.FieldIndex[0][0]);
|
||||
Assert.Equal(7, indexer.FieldIndex[0][1]);
|
||||
Assert.Equal(11, indexer.FieldIndex[0][2]);
|
||||
Assert.Equal(16, indexer.FieldIndex[0][3]);
|
||||
Assert.Equal(4, indexer.FieldIndex[1].Count);
|
||||
Assert.Equal(20, indexer.FieldIndex[1][0]);
|
||||
Assert.Equal(26, indexer.FieldIndex[1][1]);
|
||||
Assert.Equal(30, indexer.FieldIndex[1][2]);
|
||||
Assert.Equal(35, indexer.FieldIndex[1][3]);
|
||||
}
|
||||
|
||||
#endregion GenerateIndex
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user