public void TestWriteCsvWithCultureInfo() { using MemoryStream csvStream = new MemoryStream(); DataFrame dataFrame = DataFrameTests.MakeDataFrameWithNumericColumns(10, true); dataFrame[1, 1] = 1.1M; dataFrame[1, 2] = 1.2D; dataFrame[1, 3] = 1.3F; var cultureInfo = new CultureInfo("en-US"); DataFrame.WriteCsv(dataFrame, csvStream, cultureInfo: cultureInfo); csvStream.Seek(0, SeekOrigin.Begin); DataFrame readIn = DataFrame.LoadCsv(csvStream); Assert.Equal(dataFrame.Rows.Count, readIn.Rows.Count); Assert.Equal(dataFrame.Columns.Count, readIn.Columns.Count); Assert.Equal(1F, readIn[1, 0]); Assert.Equal(1.1F, readIn[1, 1]); Assert.Equal(1.2F, readIn[1, 2]); Assert.Equal(1.3F, readIn[1, 3]); Assert.Equal(1F, readIn[1, 4]); Assert.Equal(1F, readIn[1, 5]); Assert.Equal(1F, readIn[1, 6]); Assert.Equal(1F, readIn[1, 7]); Assert.Equal(1F, readIn[1, 8]); Assert.Equal(1F, readIn[1, 9]); Assert.Equal(1F, readIn[1, 10]); }
public void TestWriteCsvWithCultureInfoRomanianAndSemiColon() { DataFrame dataFrame = DataFrameTests.MakeDataFrameWithNumericColumns(10, true); dataFrame[1, 1] = 1.1M; dataFrame[1, 2] = 1.2D; dataFrame[1, 3] = 1.3F; using MemoryStream csvStream = new MemoryStream(); var cultureInfo = new CultureInfo("ro-RO"); var separator = ';'; DataFrame.WriteCsv(dataFrame, csvStream, separator: separator, cultureInfo: cultureInfo); csvStream.Seek(0, SeekOrigin.Begin); DataFrame readIn = DataFrame.LoadCsv(csvStream, separator: separator); Assert.Equal(dataFrame.Rows.Count, readIn.Rows.Count); Assert.Equal(dataFrame.Columns.Count, readIn.Columns.Count); Assert.Equal(1F, readIn[1, 0]); // LoadCsv does not support culture info, therefore decimal point comma (,) is seen as thousand separator and is ignored when read Assert.Equal(11F, readIn[1, 1]); Assert.Equal(12F, readIn[1, 2]); Assert.Equal(129999992F, readIn[1, 3]); Assert.Equal(1F, readIn[1, 4]); Assert.Equal(1F, readIn[1, 5]); Assert.Equal(1F, readIn[1, 6]); Assert.Equal(1F, readIn[1, 7]); Assert.Equal(1F, readIn[1, 8]); Assert.Equal(1F, readIn[1, 9]); Assert.Equal(1F, readIn[1, 10]); }
public void TestWriteCsvWithCultureInfoRomanianAndComma() { using MemoryStream csvStream = new MemoryStream(); DataFrame dataFrame = DataFrameTests.MakeDataFrameWithNumericColumns(10, true); var cultureInfo = new CultureInfo("ro-RO"); var separator = cultureInfo.NumberFormat.NumberDecimalSeparator.First(); Assert.Throws <ArgumentException>(() => DataFrame.WriteCsv(dataFrame, csvStream, separator: separator, cultureInfo: cultureInfo)); }
private DataFrame MakeTestDataFrameWithParityAndTensColumns(int length) { DataFrame df = DataFrameTests.MakeDataFrameWithNumericColumns(length, false); DataFrameColumn parityColumn = new StringDataFrameColumn("Parity", Enumerable.Range(0, length).Select(x => x % 2 == 0 ? "even" : "odd")); DataFrameColumn tensColumn = new Int32DataFrameColumn("Tens", Enumerable.Range(0, length).Select(x => x / 10)); df.Columns.Insert(df.Columns.Count, parityColumn); df.Columns.Insert(df.Columns.Count, tensColumn); return(df); }