Browse Source

LA: validate strorage ctors, fix tests

pull/47/head
Christoph Ruegg 14 years ago
parent
commit
e38acb03a0
  1. 10
      src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs
  2. 10
      src/Numerics/LinearAlgebra/Storage/DiagonalMatrixStorage.cs
  3. 4
      src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs
  4. 4
      src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs
  5. 4
      src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs
  6. 4
      src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs

10
src/Numerics/LinearAlgebra/Storage/DenseColumnMajorMatrixStorage.cs

@ -19,6 +19,16 @@ namespace MathNet.Numerics.LinearAlgebra.Storage
internal DenseColumnMajorMatrixStorage(int rows, int columns, T[] data)
: base(rows, columns)
{
if (data == null)
{
throw new ArgumentNullException("data");
}
if (data.Length != rows * columns)
{
throw new ArgumentOutOfRangeException("data", string.Format(Resources.ArgumentArrayWrongLength, rows * columns));
}
Data = data;
}

10
src/Numerics/LinearAlgebra/Storage/DiagonalMatrixStorage.cs

@ -22,6 +22,16 @@ namespace MathNet.Numerics.LinearAlgebra.Storage
internal DiagonalMatrixStorage(int rows, int columns, T zero, T[] data)
: base(rows, columns)
{
if (data == null)
{
throw new ArgumentNullException("data");
}
if (data.Length != Math.Min(rows, columns))
{
throw new ArgumentOutOfRangeException("data", string.Format(Resources.ArgumentArrayWrongLength, Math.Min(rows, columns)));
}
_zero = zero;
Data = data;
}

4
src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs

@ -116,7 +116,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
var testData = new Dictionary<string, Matrix>
{
{ "Singular3x3", new DiagonalMatrix(3, 3, new[] { new Complex(1.0, 1), Complex.Zero, new Complex(3.0, 1) }) },
{ "Square3x3", new DiagonalMatrix(4, 4, new[] { new Complex(-1.1, 1), new Complex(1.1, 1), new Complex(6.6, 1) }) },
{ "Square3x3", new DiagonalMatrix(3, 3, new[] { new Complex(-1.1, 1), new Complex(1.1, 1), new Complex(6.6, 1) }) },
{ "Square4x4", new DiagonalMatrix(4, 4, new[] { new Complex(-1.1, 1), new Complex(1.1, 1), new Complex(6.2, 1), new Complex(-7.7, 1) }) },
{ "Tall3x2", new DiagonalMatrix(3, 2, new[] { new Complex(-1.1, 1), new Complex(1.1, 1) }) },
{ "Wide2x3", new DiagonalMatrix(2, 3, new[] { new Complex(-1.1, 1), new Complex(1.1, 1) }) },
@ -124,7 +124,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
foreach (var name in testData.Keys)
{
Assert.AreEqual(TestMatrices[name], testData[name]);
Assert.That(testData[name], Is.EqualTo(TestMatrices[name]));
}
}

4
src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs

@ -116,7 +116,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
var testData = new Dictionary<string, Matrix>
{
{ "Singular3x3", new DiagonalMatrix(3, 3, new[] { new Complex32(1.0f, 1), Complex32.Zero, new Complex32(3.0f, 1) }) },
{ "Square3x3", new DiagonalMatrix(4, 4, new[] { new Complex32(-1.1f, 1), new Complex32(1.1f, 1), new Complex32(6.6f, 1) }) },
{ "Square3x3", new DiagonalMatrix(3, 3, new[] { new Complex32(-1.1f, 1), new Complex32(1.1f, 1), new Complex32(6.6f, 1) }) },
{ "Square4x4", new DiagonalMatrix(4, 4, new[] { new Complex32(-1.1f, 1), new Complex32(1.1f, 1), new Complex32(6.2f, 1), new Complex32(-7.7f, 1) }) },
{ "Tall3x2", new DiagonalMatrix(3, 2, new[] { new Complex32(-1.1f, 1), new Complex32(1.1f, 1) }) },
{ "Wide2x3", new DiagonalMatrix(2, 3, new[] { new Complex32(-1.1f, 1), new Complex32(1.1f, 1) }) },
@ -124,7 +124,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
foreach (var name in testData.Keys)
{
Assert.AreEqual(TestMatrices[name], testData[name]);
Assert.That(testData[name], Is.EqualTo(TestMatrices[name]));
}
}

4
src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs

@ -116,7 +116,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
var testData = new Dictionary<string, Matrix<double>>
{
{ "Singular3x3", new DiagonalMatrix(3, 3, new[] { 1.0, 0.0, 3.0 }) },
{ "Square3x3", new DiagonalMatrix(4, 4, new[] { -1.1, 1.1, 6.6 }) },
{ "Square3x3", new DiagonalMatrix(3, 3, new[] { -1.1, 1.1, 6.6 }) },
{ "Square4x4", new DiagonalMatrix(4, 4, new[] { -1.1, 1.1, 6.2, -7.7 }) },
{ "Tall3x2", new DiagonalMatrix(3, 2, new[] { -1.1, 1.1 }) },
{ "Wide2x3", new DiagonalMatrix(2, 3, new[] { -1.1, 1.1 }) },
@ -124,7 +124,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
foreach (var name in testData.Keys)
{
Assert.AreEqual(TestMatrices[name], testData[name]);
Assert.That(testData[name], Is.EqualTo(TestMatrices[name]));
}
}

4
src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs

@ -115,7 +115,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
var testData = new Dictionary<string, Matrix>
{
{ "Singular3x3", new DiagonalMatrix(3, 3, new[] { 1.0f, 0.0f, 3.0f }) },
{ "Square3x3", new DiagonalMatrix(4, 4, new[] { -1.1f, 1.1f, 6.6f }) },
{ "Square3x3", new DiagonalMatrix(3, 3, new[] { -1.1f, 1.1f, 6.6f }) },
{ "Square4x4", new DiagonalMatrix(4, 4, new[] { -1.1f, 1.1f, 6.2f, -7.7f }) },
{ "Tall3x2", new DiagonalMatrix(3, 2, new[] { -1.1f, 1.1f }) },
{ "Wide2x3", new DiagonalMatrix(2, 3, new[] { -1.1f, 1.1f }) },
@ -123,7 +123,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
foreach (var name in testData.Keys)
{
Assert.AreEqual(TestMatrices[name], testData[name]);
Assert.That(testData[name], Is.EqualTo(TestMatrices[name]));
}
}

Loading…
Cancel
Save