Browse Source

Making unit tests more robust for running on other cultures and system settings

la-knuth
Christoph Ruegg 16 years ago
parent
commit
df56a3e33f
  1. 55
      src/UnitTests/LinearAlgebraTests/Complex/IO/DelimitedReaderTests.cs
  2. 29
      src/UnitTests/LinearAlgebraTests/Complex/IO/DelimitedWriterTests.cs
  3. 56
      src/UnitTests/LinearAlgebraTests/Complex32/IO/DelimitedReaderTests.cs
  4. 29
      src/UnitTests/LinearAlgebraTests/Complex32/IO/DelimitedWriterTests.cs
  5. 55
      src/UnitTests/LinearAlgebraTests/Double/IO/DelimitedReaderTests.cs
  6. 29
      src/UnitTests/LinearAlgebraTests/Double/IO/DelimitedWriterTests.cs
  7. 55
      src/UnitTests/LinearAlgebraTests/Single/IO/DelimitedReaderTests.cs
  8. 29
      src/UnitTests/LinearAlgebraTests/Single/IO/DelimitedWriterTests.cs

55
src/UnitTests/LinearAlgebraTests/Complex/IO/DelimitedReaderTests.cs

@ -15,16 +15,17 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseCommaDelimitedData() public void CanParseCommaDelimitedData()
{ {
const string data = var data = "a,b,c" + Environment.NewLine
@"a,b,c + "(1,2)" + Environment.NewLine
(1,2) + "\"2.2\",0.3e1" + Environment.NewLine
""2.2"",0.3e1 + "'(4,-5)',5,6" + Environment.NewLine;
'(4,-5)',5,6
";
var reader = new DelimitedReader<DenseMatrix>(',') var reader = new DelimitedReader<DenseMatrix>(',')
{ {
HasHeaderRow = true HasHeaderRow = true,
CultureInfo = CultureInfo.InvariantCulture
}; };
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -45,13 +46,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseTabDelimtedData() public void CanParseTabDelimtedData()
{ {
var data = "1" var data = "1" + Environment.NewLine
+ Environment.NewLine + "\"2.2\"\t\t0.3e1" + Environment.NewLine
+ "\"2.2\"\t\t0.3e1"
+ Environment.NewLine
+ "'4'\t5\t6"; + "'4'\t5\t6";
var reader = new DelimitedReader<SparseMatrix>('\t'); var reader = new DelimitedReader<SparseMatrix>('\t')
{
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -70,12 +73,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseWhiteSpaceDelimitedData() public void CanParseWhiteSpaceDelimitedData()
{ {
const string data = var data = "1" + Environment.NewLine
@"1 + "\"(2.2,3.3)\" 0.3e1" + Environment.NewLine
""(2.2,3.3)"" 0.3e1 + "'4' 5 6" + Environment.NewLine;
'4' 5 6
"; var reader = new DelimitedReader<UserDefinedMatrix>
var reader = new DelimitedReader<UserDefinedMatrix>(); {
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -95,15 +101,14 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParsePeriodDelimitedData() public void CanParsePeriodDelimitedData()
{ {
const string data = var data = "a.b.c" + Environment.NewLine
@"a.b.c + "1" + Environment.NewLine
1 + "\"2,2\".0,3e1+0,2e1i" + Environment.NewLine
""2,2"".0,3e1+0,2e1i + "'4,0'.5,0.6,0" + Environment.NewLine;
'4,0'.5,0.6,0
";
var reader = new DelimitedReader<DenseMatrix>('.') var reader = new DelimitedReader<DenseMatrix>('.')
{ {
HasHeaderRow = true, HasHeaderRow = true,
CultureInfo = new CultureInfo("tr-TR") CultureInfo = new CultureInfo("tr-TR")
}; };

29
src/UnitTests/LinearAlgebraTests/Complex/IO/DelimitedWriterTests.cs

@ -21,9 +21,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"(1.1, 1.1),(2.2, 2.2),(3.3, 3.3) var expected = "(1.1, 1.1),(2.2, 2.2),(3.3, 3.3)" + Environment.NewLine
(4.4, 4.4),(5.5, 5.5),(6.6, 6.6) + "(4.4, 4.4),(5.5, 5.5),(6.6, 6.6)" + Environment.NewLine
(7.7, 7.7),(8.8, 8.8),(9.9, 9.9)"; + "(7.7, 7.7),(8.8, 8.8),(9.9, 9.9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -41,9 +41,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"(1,1, 1,1).(2,2, 2,2).(3,3, 3,3) var expected = "(1,1, 1,1).(2,2, 2,2).(3,3, 3,3)" + Environment.NewLine
(4,4, 4,4).(5,5, 5,5).(6,6, 6,6) + "(4,4, 4,4).(5,5, 5,5).(6,6, 6,6)" + Environment.NewLine
(7,7, 7,7).(8,8, 8,8).(9,9, 9,9)"; + "(7,7, 7,7).(8,8, 8,8).(9,9, 9,9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -57,9 +57,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"(1.1, 1.1) (2.2, 2.2) (3.3, 3.3) var expected = "(1.1, 1.1) (2.2, 2.2) (3.3, 3.3)" + Environment.NewLine
(4.4, 4.4) (5.5, 5.5) (6.6, 6.6) + "(4.4, 4.4) (5.5, 5.5) (6.6, 6.6)" + Environment.NewLine
(7.7, 7.7) (8.8, 8.8) (9.9, 9.9)"; + "(7.7, 7.7) (8.8, 8.8) (9.9, 9.9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -77,13 +77,10 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
var expected = "a\tb\tc" var expected = "a\tb\tc" + Environment.NewLine
+ Environment.NewLine + "(1.1, 1.1)\t(2.2, 2.2)\t(3.3, 3.3)" + Environment.NewLine
+ "(1.1, 1.1)\t(2.2, 2.2)\t(3.3, 3.3)" + "(4.4, 4.4)\t(5.5, 5.5)\t(6.6, 6.6)" + Environment.NewLine
+ Environment.NewLine + "(7.7, 7.7)\t(8.8, 8.8)\t(9.9, 9.9)";
+ "(4.4, 4.4)\t(5.5, 5.5)\t(6.6, 6.6)"
+ Environment.NewLine
+ "(7.7, 7.7)\t(8.8, 8.8)\t(9.9, 9.9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
} }

56
src/UnitTests/LinearAlgebraTests/Complex32/IO/DelimitedReaderTests.cs

@ -7,7 +7,6 @@
using LinearAlgebra.Complex32; using LinearAlgebra.Complex32;
using LinearAlgebra.Complex32.IO; using LinearAlgebra.Complex32.IO;
using MbUnit.Framework; using MbUnit.Framework;
using Numerics;
[TestFixture] [TestFixture]
public class DelimitedReaderTests public class DelimitedReaderTests
@ -16,16 +15,17 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseCommaDelimitedData() public void CanParseCommaDelimitedData()
{ {
const string data = var data = "a,b,c" + Environment.NewLine
@"a,b,c + "(1,2)" + Environment.NewLine
(1,2) + "\"2.2\",0.3e1" + Environment.NewLine
""2.2"",0.3e1 + "'(4,-5)',5,6" + Environment.NewLine;
'(4,-5)',5,6
";
var reader = new DelimitedReader<DenseMatrix>(',') var reader = new DelimitedReader<DenseMatrix>(',')
{ {
HasHeaderRow = true HasHeaderRow = true,
CultureInfo = CultureInfo.InvariantCulture
}; };
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -46,13 +46,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseTabDelimtedData() public void CanParseTabDelimtedData()
{ {
var data = "1" var data = "1" + Environment.NewLine
+ Environment.NewLine + "\"2.2\"\t\t0.3e1" + Environment.NewLine
+ "\"2.2\"\t\t0.3e1"
+ Environment.NewLine
+ "'4'\t5\t6"; + "'4'\t5\t6";
var reader = new DelimitedReader<SparseMatrix>('\t'); var reader = new DelimitedReader<SparseMatrix>('\t')
{
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -71,12 +73,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseWhiteSpaceDelimitedData() public void CanParseWhiteSpaceDelimitedData()
{ {
const string data = var data = "1" + Environment.NewLine
@"1 + "\"(2.2,3.3)\" 0.3e1" + Environment.NewLine
""(2.2,3.3)"" 0.3e1 + "'4' 5 6" + Environment.NewLine;
'4' 5 6
"; var reader = new DelimitedReader<UserDefinedMatrix>
var reader = new DelimitedReader<UserDefinedMatrix>(); {
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -96,15 +101,14 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParsePeriodDelimitedData() public void CanParsePeriodDelimitedData()
{ {
const string data = var data = "a.b.c" + Environment.NewLine
@"a.b.c + "1" + Environment.NewLine
1 + "\"2,2\".0,3e1+0,2e1i" + Environment.NewLine
""2,2"".0,3e1+0,2e1i + "'4,0'.5,0.6,0" + Environment.NewLine;
'4,0'.5,0.6,0
";
var reader = new DelimitedReader<DenseMatrix>('.') var reader = new DelimitedReader<DenseMatrix>('.')
{ {
HasHeaderRow = true, HasHeaderRow = true,
CultureInfo = new CultureInfo("tr-TR") CultureInfo = new CultureInfo("tr-TR")
}; };

29
src/UnitTests/LinearAlgebraTests/Complex32/IO/DelimitedWriterTests.cs

@ -21,9 +21,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"(1.1, 1.1),(2.2, 2.2),(3.3, 3.3) var expected = "(1.1, 1.1),(2.2, 2.2),(3.3, 3.3)" + Environment.NewLine
(4.4, 4.4),(5.5, 5.5),(6.6, 6.6) + "(4.4, 4.4),(5.5, 5.5),(6.6, 6.6)" + Environment.NewLine
(7.7, 7.7),(8.8, 8.8),(9.9, 9.9)"; + "(7.7, 7.7),(8.8, 8.8),(9.9, 9.9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -41,9 +41,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"(1,1, 1,1).(2,2, 2,2).(3,3, 3,3) var expected = "(1,1, 1,1).(2,2, 2,2).(3,3, 3,3)" + Environment.NewLine
(4,4, 4,4).(5,5, 5,5).(6,6, 6,6) + "(4,4, 4,4).(5,5, 5,5).(6,6, 6,6)" + Environment.NewLine
(7,7, 7,7).(8,8, 8,8).(9,9, 9,9)"; + "(7,7, 7,7).(8,8, 8,8).(9,9, 9,9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -57,9 +57,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"(1.1, 1.1) (2.2, 2.2) (3.3, 3.3) var expected = "(1.1, 1.1) (2.2, 2.2) (3.3, 3.3)" + Environment.NewLine
(4.4, 4.4) (5.5, 5.5) (6.6, 6.6) + "(4.4, 4.4) (5.5, 5.5) (6.6, 6.6)" + Environment.NewLine
(7.7, 7.7) (8.8, 8.8) (9.9, 9.9)"; + "(7.7, 7.7) (8.8, 8.8) (9.9, 9.9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -77,13 +77,10 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
var expected = "a\tb\tc" var expected = "a\tb\tc" + Environment.NewLine
+ Environment.NewLine + "(1.1, 1.1)\t(2.2, 2.2)\t(3.3, 3.3)" + Environment.NewLine
+ "(1.1, 1.1)\t(2.2, 2.2)\t(3.3, 3.3)" + "(4.4, 4.4)\t(5.5, 5.5)\t(6.6, 6.6)" + Environment.NewLine
+ Environment.NewLine + "(7.7, 7.7)\t(8.8, 8.8)\t(9.9, 9.9)";
+ "(4.4, 4.4)\t(5.5, 5.5)\t(6.6, 6.6)"
+ Environment.NewLine
+ "(7.7, 7.7)\t(8.8, 8.8)\t(9.9, 9.9)";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
} }

55
src/UnitTests/LinearAlgebraTests/Double/IO/DelimitedReaderTests.cs

@ -15,16 +15,17 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseCommaDelimitedData() public void CanParseCommaDelimitedData()
{ {
const string data = var data = "a,b,c" + Environment.NewLine
@"a,b,c + "1" + Environment.NewLine
1 + "\"2.2\",0.3e1" + Environment.NewLine
""2.2"",0.3e1 + "'4',5,6" + Environment.NewLine;
'4',5,6
";
var reader = new DelimitedReader<DenseMatrix>(',') var reader = new DelimitedReader<DenseMatrix>(',')
{ {
HasHeaderRow = true HasHeaderRow = true,
CultureInfo = CultureInfo.InvariantCulture
}; };
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -43,13 +44,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseTabDelimtedData() public void CanParseTabDelimtedData()
{ {
var data = "1" var data = "1" + Environment.NewLine
+ Environment.NewLine + "\"2.2\"\t\t0.3e1" + Environment.NewLine
+ "\"2.2\"\t\t0.3e1"
+ Environment.NewLine
+ "'4'\t5\t6"; + "'4'\t5\t6";
var reader = new DelimitedReader<SparseMatrix>('\t'); var reader = new DelimitedReader<SparseMatrix>('\t')
{
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -68,12 +71,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseWhiteSpaceDelimitedData() public void CanParseWhiteSpaceDelimitedData()
{ {
const string data = var data = "1" + Environment.NewLine
@"1 + "\"2.2\" 0.3e1" + Environment.NewLine
""2.2"" 0.3e1 + "'4' 5 6" + Environment.NewLine;
'4' 5 6
"; var reader = new DelimitedReader<UserDefinedMatrix>
var reader = new DelimitedReader<UserDefinedMatrix>(); {
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -92,15 +98,14 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParsePeriodDelimitedData() public void CanParsePeriodDelimitedData()
{ {
const string data = var data = "a.b.c" + Environment.NewLine
@"a.b.c + "1" + Environment.NewLine
1 + "\"2,2\".0,3e1" + Environment.NewLine
""2,2"".0,3e1 + "'4,0'.5,0.6,0" + Environment.NewLine;
'4,0'.5,0.6,0
";
var reader = new DelimitedReader<DenseMatrix>('.') var reader = new DelimitedReader<DenseMatrix>('.')
{ {
HasHeaderRow = true, HasHeaderRow = true,
CultureInfo = new CultureInfo("tr-TR") CultureInfo = new CultureInfo("tr-TR")
}; };

29
src/UnitTests/LinearAlgebraTests/Double/IO/DelimitedWriterTests.cs

@ -20,9 +20,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"1.1,2.2,3.3 var expected = @"1.1,2.2,3.3" + Environment.NewLine
4.4,5.5,6.6 + "4.4,5.5,6.6" + Environment.NewLine
7.7,8.8,9.9"; + "7.7,8.8,9.9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -40,9 +40,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"1,1.2,2.3,3 var expected = @"1,1.2,2.3,3" + Environment.NewLine
4,4.5,5.6,6 + "4,4.5,5.6,6" + Environment.NewLine
7,7.8,8.9,9"; + "7,7.8,8.9,9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -56,9 +56,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"1.1 0 0 var expected = @"1.1 0 0" + Environment.NewLine
0 5.5 0 + "0 5.5 0" + Environment.NewLine
0 0 9.9"; + "0 0 9.9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -76,13 +76,10 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
var expected = "a\tb\tc" var expected = "a\tb\tc" + Environment.NewLine
+ Environment.NewLine + "1.1\t2.2\t3.3" + Environment.NewLine
+ "1.1\t2.2\t3.3" + "4.4\t5.5\t6.6" + Environment.NewLine
+ Environment.NewLine + "7.7\t8.8\t9.9";
+ "4.4\t5.5\t6.6"
+ Environment.NewLine
+ "7.7\t8.8\t9.9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
} }

55
src/UnitTests/LinearAlgebraTests/Single/IO/DelimitedReaderTests.cs

@ -15,16 +15,17 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseCommaDelimitedData() public void CanParseCommaDelimitedData()
{ {
const string data = var data = "a,b,c" + Environment.NewLine
@"a,b,c + "1" + Environment.NewLine
1 + "\"2.2\",0.3e1" + Environment.NewLine
""2.2"",0.3e1 + "'4',5,6" + Environment.NewLine;
'4',5,6
";
var reader = new DelimitedReader<DenseMatrix>(',') var reader = new DelimitedReader<DenseMatrix>(',')
{ {
HasHeaderRow = true HasHeaderRow = true,
CultureInfo = CultureInfo.InvariantCulture
}; };
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -43,13 +44,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseTabDelimtedData() public void CanParseTabDelimtedData()
{ {
var data = "1" var data = "1" + Environment.NewLine
+ Environment.NewLine + "\"2.2\"\t\t0.3e1" + Environment.NewLine
+ "\"2.2\"\t\t0.3e1"
+ Environment.NewLine
+ "'4'\t5\t6"; + "'4'\t5\t6";
var reader = new DelimitedReader<SparseMatrix>('\t'); var reader = new DelimitedReader<SparseMatrix>('\t')
{
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -68,12 +71,15 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParseWhiteSpaceDelimitedData() public void CanParseWhiteSpaceDelimitedData()
{ {
const string data = var data = "1" + Environment.NewLine
@"1 + "\"2.2\" 0.3e1" + Environment.NewLine
""2.2"" 0.3e1 + "'4' 5 6" + Environment.NewLine;
'4' 5 6
"; var reader = new DelimitedReader<UserDefinedMatrix>()
var reader = new DelimitedReader<UserDefinedMatrix>(); {
CultureInfo = CultureInfo.InvariantCulture
};
var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data))); var matrix = reader.ReadMatrix(new MemoryStream(Encoding.UTF8.GetBytes(data)));
Assert.AreEqual(3, matrix.RowCount); Assert.AreEqual(3, matrix.RowCount);
Assert.AreEqual(3, matrix.ColumnCount); Assert.AreEqual(3, matrix.ColumnCount);
@ -92,15 +98,14 @@
[MultipleAsserts] [MultipleAsserts]
public void CanParsePeriodDelimitedData() public void CanParsePeriodDelimitedData()
{ {
const string data = var data = "a.b.c" + Environment.NewLine
@"a.b.c + "1" + Environment.NewLine
1 + "\"2,2\".0,3e1" + Environment.NewLine
""2,2"".0,3e1 + "'4,0'.5,0.6,0" + Environment.NewLine;
'4,0'.5,0.6,0
";
var reader = new DelimitedReader<DenseMatrix>('.') var reader = new DelimitedReader<DenseMatrix>('.')
{ {
HasHeaderRow = true, HasHeaderRow = true,
CultureInfo = new CultureInfo("tr-TR") CultureInfo = new CultureInfo("tr-TR")
}; };

29
src/UnitTests/LinearAlgebraTests/Single/IO/DelimitedWriterTests.cs

@ -20,9 +20,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"1.1,2.2,3.3 var expected = @"1.1,2.2,3.3" + Environment.NewLine
4.4,5.5,6.6 + "4.4,5.5,6.6" + Environment.NewLine
7.7,8.8,9.9"; + "7.7,8.8,9.9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -40,9 +40,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"1,1.2,2.3,3 var expected = @"1,1.2,2.3,3" + Environment.NewLine
4,4.5,5.6,6 + "4,4.5,5.6,6" + Environment.NewLine
7,7.8,8.9,9"; + "7,7.8,8.9,9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -56,9 +56,9 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
const string expected = @"1.1 0 0 var expected = @"1.1 0 0" + Environment.NewLine
0 5.5 0 + "0 5.5 0" + Environment.NewLine
0 0 9.9"; + "0 0 9.9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
@ -76,13 +76,10 @@
var data = stream.ToArray(); var data = stream.ToArray();
var reader = new StreamReader(new MemoryStream(data)); var reader = new StreamReader(new MemoryStream(data));
var text = reader.ReadToEnd(); var text = reader.ReadToEnd();
var expected = "a\tb\tc" var expected = "a\tb\tc" + Environment.NewLine
+ Environment.NewLine + "1.1\t2.2\t3.3" + Environment.NewLine
+ "1.1\t2.2\t3.3" + "4.4\t5.5\t6.6" + Environment.NewLine
+ Environment.NewLine + "7.7\t8.8\t9.9";
+ "4.4\t5.5\t6.6"
+ Environment.NewLine
+ "7.7\t8.8\t9.9";
Assert.AreEqual(expected, text); Assert.AreEqual(expected, text);
} }
} }

Loading…
Cancel
Save