diff --git a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs index 5fb1bc73..43ad7003 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs @@ -369,71 +369,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex Assert.Throws(() => matrix.Determinant()); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public override void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(Complex.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(Complex.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(Complex.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(Complex.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(Complex.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(Complex.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(Complex.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex(3.0, 1.0), item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs index 9971b7e2..25e30e58 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs @@ -26,9 +26,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { - using System; using System.Numerics; - using LinearAlgebra.Generic; using NUnit.Framework; /// @@ -88,70 +86,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex } } - /// - /// Can convert a matrix to a multidimensional array. - /// - [Test] - public void CanToArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToArray(); - Assert.AreEqual(data.RowCount, array.GetLength(0)); - Assert.AreEqual(data.ColumnCount, array.GetLength(1)); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[i, j]); - } - } - } - } - - /// - /// Can convert a matrix to a column-wise array. - /// - [Test] - public void CanToColumnWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToColumnWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(j * data.RowCount) + i]); - } - } - } - } - - /// - /// Can convert a matrix to a row-wise array. - /// - [Test] - public void CanToRowWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToRowWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(i * data.ColumnCount) + j]); - } - } - } - } - /// /// Can compute Frobenius norm. /// @@ -215,71 +149,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex AssertHelpers.AlmostEqual(7.35826643761172, matrix.L2Norm(), 14); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public virtual void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex(2.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex(2.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex(1.0, 1.0), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex(2.0, 1.0), item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// @@ -292,71 +161,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex matrix = TestMatrices["Square3x3"]; Assert.IsFalse(matrix.IsSymmetric); } - - /// - /// Test whether we can create a matrix from a list of column vectors. - /// - [Test] - public virtual void CanCreateMatrixFromColumns() - { - var column1 = CreateVector(new Complex[] { 1.0 }); - var column2 = CreateVector(new Complex[] { 1.0, 2.0, 3.0, 4.0 }); - var column3 = CreateVector(new Complex[] { 1.0, 2.0 }); - var columnVectors = new System.Collections.Generic.List> - { - column1, - column2, - column3 - }; - var matrix = Matrix.CreateFromColumns(columnVectors); - - Assert.AreEqual(matrix.RowCount, 4); - Assert.AreEqual(matrix.ColumnCount, 3); - Assert.AreEqual(1.0, matrix[0, 0].Real); - Assert.AreEqual(0.0, matrix[1, 0].Real); - Assert.AreEqual(0.0, matrix[2, 0].Real); - Assert.AreEqual(0.0, matrix[3, 0].Real); - Assert.AreEqual(1.0, matrix[0, 1].Real); - Assert.AreEqual(2.0, matrix[1, 1].Real); - Assert.AreEqual(3.0, matrix[2, 1].Real); - Assert.AreEqual(4.0, matrix[3, 1].Real); - Assert.AreEqual(1.0, matrix[0, 2].Real); - Assert.AreEqual(2.0, matrix[1, 2].Real); - Assert.AreEqual(0.0, matrix[2, 2].Real); - Assert.AreEqual(0.0, matrix[3, 2].Real); - } - - /// - /// Test whether we can create a matrix from a list of row vectors. - /// - [Test] - public virtual void CanCreateMatrixFromRows() - { - var row1 = CreateVector(new Complex[] { 1.0 }); - var row2 = CreateVector(new Complex[] { 1.0, 2.0, 3.0, 4.0 }); - var row3 = CreateVector(new Complex[] { 1.0, 2.0 }); - var rowVectors = new System.Collections.Generic.List> - { - row1, - row2, - row3 - }; - var matrix = Matrix.CreateFromRows(rowVectors); - - Assert.AreEqual(matrix.RowCount, 3); - Assert.AreEqual(matrix.ColumnCount, 4); - Assert.AreEqual(1.0, matrix[0, 0].Real); - Assert.AreEqual(0.0, matrix[0, 1].Real); - Assert.AreEqual(0.0, matrix[0, 2].Real); - Assert.AreEqual(0.0, matrix[0, 3].Real); - Assert.AreEqual(1.0, matrix[1, 0].Real); - Assert.AreEqual(2.0, matrix[1, 1].Real); - Assert.AreEqual(3.0, matrix[1, 2].Real); - Assert.AreEqual(4.0, matrix[1, 3].Real); - Assert.AreEqual(1.0, matrix[2, 0].Real); - Assert.AreEqual(2.0, matrix[2, 1].Real); - Assert.AreEqual(0.0, matrix[2, 2].Real); - Assert.AreEqual(0.0, matrix[2, 3].Real); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs index 4d2f2943..7ca65f5a 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs @@ -369,71 +369,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 Assert.Throws(() => matrix.Determinant()); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public override void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(Complex32.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(Complex32.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(Complex32.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(Complex32.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(Complex32.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(Complex32.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(Complex32.Zero, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex32(3.0f, 1.0f), item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs index e58c3c74..35b46a5c 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs @@ -26,8 +26,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { - using System; - using LinearAlgebra.Generic; using NUnit.Framework; using Complex32 = Numerics.Complex32; @@ -88,70 +86,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 } } - /// - /// Can convert a matrix to a multidimensional array. - /// - [Test] - public void CanToArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToArray(); - Assert.AreEqual(data.RowCount, array.GetLength(0)); - Assert.AreEqual(data.ColumnCount, array.GetLength(1)); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[i, j]); - } - } - } - } - - /// - /// Can convert a matrix to a column-wise array. - /// - [Test] - public void CanToColumnWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToColumnWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(j * data.RowCount) + i]); - } - } - } - } - - /// - /// Can convert a matrix to a row-wise array. - /// - [Test] - public void CanToRowWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToRowWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(i * data.ColumnCount) + j]); - } - } - } - } - /// /// Can compute Frobenius norm. /// @@ -215,71 +149,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 AssertHelpers.AlmostEqual(7.3582664f, matrix.L2Norm().Real, 6); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public virtual void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(new Complex32(1.0f, 1.0f), item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(new Complex32(2.0f, 1.0f), item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// @@ -292,71 +161,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 matrix = TestMatrices["Square3x3"]; Assert.IsFalse(matrix.IsSymmetric); } - - /// - /// Test whether we can create a matrix from a list of column vectors. - /// - [Test] - public virtual void CanCreateMatrixFromColumns() - { - var column1 = CreateVector(new Complex32[] { 1.0f }); - var column2 = CreateVector(new Complex32[] { 1.0f, 2.0f, 3.0f, 4.0f }); - var column3 = CreateVector(new Complex32[] { 1.0f, 2.0f }); - var columnVectors = new System.Collections.Generic.List> - { - column1, - column2, - column3 - }; - var matrix = Matrix.CreateFromColumns(columnVectors); - - Assert.AreEqual(matrix.RowCount, 4); - Assert.AreEqual(matrix.ColumnCount, 3); - Assert.AreEqual(1.0, matrix[0, 0].Real); - Assert.AreEqual(0.0, matrix[1, 0].Real); - Assert.AreEqual(0.0, matrix[2, 0].Real); - Assert.AreEqual(0.0, matrix[3, 0].Real); - Assert.AreEqual(1.0, matrix[0, 1].Real); - Assert.AreEqual(2.0, matrix[1, 1].Real); - Assert.AreEqual(3.0, matrix[2, 1].Real); - Assert.AreEqual(4.0, matrix[3, 1].Real); - Assert.AreEqual(1.0, matrix[0, 2].Real); - Assert.AreEqual(2.0, matrix[1, 2].Real); - Assert.AreEqual(0.0, matrix[2, 2].Real); - Assert.AreEqual(0.0, matrix[3, 2].Real); - } - - /// - /// Test whether we can create a matrix from a list of row vectors. - /// - [Test] - public virtual void CanCreateMatrixFromRows() - { - var row1 = CreateVector(new Complex32[] { 1.0f }); - var row2 = CreateVector(new Complex32[] { 1.0f, 2.0f, 3.0f, 4.0f }); - var row3 = CreateVector(new Complex32[] { 1.0f, 2.0f }); - var rowVectors = new System.Collections.Generic.List> - { - row1, - row2, - row3 - }; - var matrix = Matrix.CreateFromRows(rowVectors); - - Assert.AreEqual(matrix.RowCount, 3); - Assert.AreEqual(matrix.ColumnCount, 4); - Assert.AreEqual(1.0, matrix[0, 0].Real); - Assert.AreEqual(0.0, matrix[0, 1].Real); - Assert.AreEqual(0.0, matrix[0, 2].Real); - Assert.AreEqual(0.0, matrix[0, 3].Real); - Assert.AreEqual(1.0, matrix[1, 0].Real); - Assert.AreEqual(2.0, matrix[1, 1].Real); - Assert.AreEqual(3.0, matrix[1, 2].Real); - Assert.AreEqual(4.0, matrix[1, 3].Real); - Assert.AreEqual(1.0, matrix[2, 0].Real); - Assert.AreEqual(2.0, matrix[2, 1].Real); - Assert.AreEqual(0.0, matrix[2, 2].Real); - Assert.AreEqual(0.0, matrix[2, 3].Real); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs index ee875b20..7990c277 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs @@ -369,71 +369,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double Assert.Throws(() => matrix.Determinant()); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public override void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(0.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(0.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(0.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(0.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(0.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(0.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(0.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(3.0, item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs index b19da409..388ac1f8 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs @@ -26,8 +26,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { - using System; - using LinearAlgebra.Generic; using NUnit.Framework; /// @@ -61,70 +59,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double } } - /// - /// Can convert a matrix to a multidimensional array. - /// - [Test] - public void CanToArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToArray(); - Assert.AreEqual(data.RowCount, array.GetLength(0)); - Assert.AreEqual(data.ColumnCount, array.GetLength(1)); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[i, j]); - } - } - } - } - - /// - /// Can convert a matrix to a column-wise array. - /// - [Test] - public void CanToColumnWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToColumnWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(j * data.RowCount) + i]); - } - } - } - } - - /// - /// Can convert a matrix to a row-wise array. - /// - [Test] - public void CanToRowWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToRowWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(i * data.ColumnCount) + j]); - } - } - } - } - /// /// Can compute Frobenius norm. /// @@ -188,71 +122,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double AssertHelpers.AlmostEqual(7.182727033856683, matrix.L2Norm(), 14); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public virtual void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0, item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// @@ -265,71 +134,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double matrix = TestMatrices["Square3x3"]; Assert.IsFalse(matrix.IsSymmetric); } - - /// - /// Test whether we can create a matrix from a list of column vectors. - /// - [Test] - public virtual void CanCreateMatrixFromColumns() - { - var column1 = CreateVector(new[] { 1.0 }); - var column2 = CreateVector(new[] { 1.0, 2.0, 3.0, 4.0 }); - var column3 = CreateVector(new[] { 1.0, 2.0 }); - var columnVectors = new System.Collections.Generic.List> - { - column1, - column2, - column3 - }; - var matrix = Matrix.CreateFromColumns(columnVectors); - - Assert.AreEqual(matrix.RowCount, 4); - Assert.AreEqual(matrix.ColumnCount, 3); - Assert.AreEqual(1.0, matrix[0, 0]); - Assert.AreEqual(0.0, matrix[1, 0]); - Assert.AreEqual(0.0, matrix[2, 0]); - Assert.AreEqual(0.0, matrix[3, 0]); - Assert.AreEqual(1.0, matrix[0, 1]); - Assert.AreEqual(2.0, matrix[1, 1]); - Assert.AreEqual(3.0, matrix[2, 1]); - Assert.AreEqual(4.0, matrix[3, 1]); - Assert.AreEqual(1.0, matrix[0, 2]); - Assert.AreEqual(2.0, matrix[1, 2]); - Assert.AreEqual(0.0, matrix[2, 2]); - Assert.AreEqual(0.0, matrix[3, 2]); - } - - /// - /// Test whether we can create a matrix from a list of row vectors. - /// - [Test] - public virtual void CanCreateMatrixFromRows() - { - var row1 = CreateVector(new[] { 1.0 }); - var row2 = CreateVector(new[] { 1.0, 2.0, 3.0, 4.0 }); - var row3 = CreateVector(new[] { 1.0, 2.0 }); - var rowVectors = new System.Collections.Generic.List> - { - row1, - row2, - row3 - }; - var matrix = Matrix.CreateFromRows(rowVectors); - - Assert.AreEqual(matrix.RowCount, 3); - Assert.AreEqual(matrix.ColumnCount, 4); - Assert.AreEqual(1.0, matrix[0, 0]); - Assert.AreEqual(0.0, matrix[0, 1]); - Assert.AreEqual(0.0, matrix[0, 2]); - Assert.AreEqual(0.0, matrix[0, 3]); - Assert.AreEqual(1.0, matrix[1, 0]); - Assert.AreEqual(2.0, matrix[1, 1]); - Assert.AreEqual(3.0, matrix[1, 2]); - Assert.AreEqual(4.0, matrix[1, 3]); - Assert.AreEqual(1.0, matrix[2, 0]); - Assert.AreEqual(2.0, matrix[2, 1]); - Assert.AreEqual(0.0, matrix[2, 2]); - Assert.AreEqual(0.0, matrix[2, 3]); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/MatrixStructureTheory.cs b/src/UnitTests/LinearAlgebraTests/MatrixStructureTheory.cs index ec0bda76..e16531b9 100644 --- a/src/UnitTests/LinearAlgebraTests/MatrixStructureTheory.cs +++ b/src/UnitTests/LinearAlgebraTests/MatrixStructureTheory.cs @@ -1,4 +1,6 @@ -namespace MathNet.Numerics.UnitTests.LinearAlgebraTests +using System.Collections.Generic; + +namespace MathNet.Numerics.UnitTests.LinearAlgebraTests { using System; using LinearAlgebra.Generic; @@ -90,6 +92,57 @@ Assert.That(() => matrix.CopyTo(CreateDense(matrix.RowCount, matrix.ColumnCount + 1)), Throws.ArgumentException); } + [Theory, Timeout(200)] + public void CanGetHashCode(Matrix matrix) + { + Assert.That(matrix.GetHashCode(), Is.Not.EqualTo(matrix.CreateMatrix(matrix.RowCount, matrix.ColumnCount).GetHashCode())); + } + + [Theory, Timeout(200)] + public void CanClear(Matrix matrix) + { + var cleared = matrix.Clone(); + cleared.Clear(); + Assert.That(cleared, Is.EqualTo(matrix.CreateMatrix(matrix.RowCount, matrix.ColumnCount))); + } + + [Theory, Timeout(200)] + public void CanToArray(Matrix matrix) + { + var array = matrix.ToArray(); + Assert.That(array.GetLength(0), Is.EqualTo(matrix.RowCount)); + Assert.That(array.GetLength(1), Is.EqualTo(matrix.ColumnCount)); + for (var i = 0; i < matrix.RowCount; i++) + { + for (var j = 0; j < matrix.ColumnCount; j++) + { + Assert.That(array[i, j], Is.EqualTo(matrix[i, j])); + } + } + } + + [Theory, Timeout(200)] + public void CanToColumnWiseArray(Matrix matrix) + { + var array = matrix.ToColumnWiseArray(); + Assert.That(array.Length, Is.EqualTo(matrix.RowCount * matrix.ColumnCount)); + for (int i = 0; i < array.Length; i++) + { + Assert.That(array[i], Is.EqualTo(matrix[i % matrix.RowCount, i / matrix.RowCount])); + } + } + + [Theory, Timeout(200)] + public void CanToRowWiseArray(Matrix matrix) + { + var array = matrix.ToRowWiseArray(); + Assert.That(array.Length, Is.EqualTo(matrix.RowCount * matrix.ColumnCount)); + for (int i = 0; i < array.Length; i++) + { + Assert.That(array[i], Is.EqualTo(matrix[i / matrix.ColumnCount, i % matrix.ColumnCount])); + } + } + [Theory, Timeout(200)] public void CanCreateSameType(Matrix matrix) { @@ -102,18 +155,85 @@ Assert.That(() => matrix.CreateMatrix(-1, -1), Throws.InstanceOf()); } - [Theory, Timeout(200)] - public void CanGetHashCode(Matrix matrix) + [Test, Timeout(200)] + public void CanCreateFromColumns() { - Assert.That(matrix.GetHashCode(), Is.Not.EqualTo(matrix.CreateMatrix(matrix.RowCount, matrix.ColumnCount).GetHashCode())); + var column1 = CreateVector(1, 0); + var column2 = CreateVector(4, 1); + var column3 = CreateVector(2, 3); + + var matrix = Matrix.CreateFromColumns(new List> + { + column1, + column2, + column3 + }); + + Assert.That(matrix.RowCount, Is.EqualTo(4)); + Assert.That(matrix.ColumnCount, Is.EqualTo(3)); + + Assert.That(matrix[0, 0], Is.EqualTo(column1[0])); + Assert.That(matrix[0, 1], Is.EqualTo(column2[0])); + Assert.That(matrix[1, 1], Is.EqualTo(column2[1])); + Assert.That(matrix[2, 1], Is.EqualTo(column2[2])); + Assert.That(matrix[3, 1], Is.EqualTo(column2[3])); + Assert.That(matrix[0, 2], Is.EqualTo(column3[0])); + Assert.That(matrix[1, 2], Is.EqualTo(column3[1])); + + Assert.That(matrix[1, 0], Is.EqualTo(Zero)); + Assert.That(matrix[2, 0], Is.EqualTo(Zero)); + Assert.That(matrix[3, 0], Is.EqualTo(Zero)); + Assert.That(matrix[2, 2], Is.EqualTo(Zero)); + Assert.That(matrix[3, 2], Is.EqualTo(Zero)); } - [Theory, Timeout(200)] - public void CanClear(Matrix matrix) + [Test, Timeout(200)] + public void CanCreateFromRows() { - var cleared = matrix.Clone(); - cleared.Clear(); - Assert.That(cleared, Is.EqualTo(matrix.CreateMatrix(matrix.RowCount, matrix.ColumnCount))); + var row1 = CreateVector(1, 0); + var row2 = CreateVector(4, 1); + var row3 = CreateVector(2, 3); + + var matrix = Matrix.CreateFromRows(new List> + { + row1, + row2, + row3 + }); + + Assert.That(matrix.RowCount, Is.EqualTo(3)); + Assert.That(matrix.ColumnCount, Is.EqualTo(4)); + + Assert.That(matrix[0, 0], Is.EqualTo(row1[0])); + Assert.That(matrix[1, 0], Is.EqualTo(row2[0])); + Assert.That(matrix[1, 1], Is.EqualTo(row2[1])); + Assert.That(matrix[1, 2], Is.EqualTo(row2[2])); + Assert.That(matrix[1, 3], Is.EqualTo(row2[3])); + Assert.That(matrix[2, 0], Is.EqualTo(row3[0])); + Assert.That(matrix[2, 1], Is.EqualTo(row3[1])); + + Assert.That(matrix[0, 1], Is.EqualTo(Zero)); + Assert.That(matrix[0, 2], Is.EqualTo(Zero)); + Assert.That(matrix[0, 3], Is.EqualTo(Zero)); + Assert.That(matrix[2, 2], Is.EqualTo(Zero)); + Assert.That(matrix[2, 3], Is.EqualTo(Zero)); + } + + [Test, Timeout(200)] + public void CanEnumerateWithIndex() + { + var dense = CreateDense(2, 3, 0); + using(var enumerator = dense.IndexedEnumerator().GetEnumerator()) + for (int i = 0; i < 2; i++) + { + for (int j = 0; j < 3; j++) + { + enumerator.MoveNext(); + Assert.AreEqual(i, enumerator.Current.Item1); + Assert.AreEqual(j, enumerator.Current.Item2); + Assert.AreEqual(dense[i, j], enumerator.Current.Item3); + } + } } } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs index 20a89063..e974f640 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs @@ -368,72 +368,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single Assert.Throws(() => matrix.Determinant()); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public override void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(0.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(0.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(0.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(0.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(0.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(0.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(0.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(3.0f, item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// diff --git a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs index 27d63e7c..e229e022 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs @@ -26,8 +26,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { - using System; - using LinearAlgebra.Generic; using NUnit.Framework; /// @@ -61,70 +59,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single } } - /// - /// Can convert a matrix to a multidimensional array. - /// - [Test] - public void CanToArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToArray(); - Assert.AreEqual(data.RowCount, array.GetLength(0)); - Assert.AreEqual(data.ColumnCount, array.GetLength(1)); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[i, j]); - } - } - } - } - - /// - /// Can convert a matrix to a column-wise array. - /// - [Test] - public void CanToColumnWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToColumnWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(j * data.RowCount) + i]); - } - } - } - } - - /// - /// Can convert a matrix to a row-wise array. - /// - [Test] - public void CanToRowWiseArray() - { - foreach (var data in TestMatrices.Values) - { - var array = data.ToRowWiseArray(); - Assert.AreEqual(data.RowCount * data.ColumnCount, array.Length); - - for (var i = 0; i < data.RowCount; i++) - { - for (var j = 0; j < data.ColumnCount; j++) - { - Assert.AreEqual(data[i, j], array[(i * data.ColumnCount) + j]); - } - } - } - } - /// /// Can compute Frobenius norm. /// @@ -188,71 +122,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single AssertHelpers.AlmostEqual(7.182727033856683f, matrix.L2Norm(), 5); } - /// - /// Test whether the index enumerator returns the correct values. - /// - [Test] - public virtual void CanUseIndexedEnumerator() - { - var matrix = TestMatrices["Singular3x3"]; - using (var enumerator = matrix.IndexedEnumerator().GetEnumerator()) - { - enumerator.MoveNext(); - var item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(0, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(1, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(0, item.Item2); - Assert.AreEqual(1.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(1, item.Item2); - Assert.AreEqual(1.0f, item.Item3); - - enumerator.MoveNext(); - item = enumerator.Current; - Assert.AreEqual(2, item.Item1); - Assert.AreEqual(2, item.Item2); - Assert.AreEqual(2.0f, item.Item3); - } - } - /// /// Can check if a matrix is symmetric. /// @@ -265,71 +134,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single matrix = TestMatrices["Square3x3"]; Assert.IsFalse(matrix.IsSymmetric); } - - /// - /// Test whether we can create a matrix from a list of column vectors. - /// - [Test] - public virtual void CanCreateMatrixFromColumns() - { - var column1 = CreateVector(new[] { 1.0f }); - var column2 = CreateVector(new[] { 1.0f, 2.0f, 3.0f, 4.0f }); - var column3 = CreateVector(new[] { 1.0f, 2.0f }); - var columnVectors = new System.Collections.Generic.List> - { - column1, - column2, - column3 - }; - var matrix = Matrix.CreateFromColumns(columnVectors); - - Assert.AreEqual(matrix.RowCount, 4); - Assert.AreEqual(matrix.ColumnCount, 3); - Assert.AreEqual(1.0, matrix[0, 0]); - Assert.AreEqual(0.0, matrix[1, 0]); - Assert.AreEqual(0.0, matrix[2, 0]); - Assert.AreEqual(0.0, matrix[3, 0]); - Assert.AreEqual(1.0, matrix[0, 1]); - Assert.AreEqual(2.0, matrix[1, 1]); - Assert.AreEqual(3.0, matrix[2, 1]); - Assert.AreEqual(4.0, matrix[3, 1]); - Assert.AreEqual(1.0, matrix[0, 2]); - Assert.AreEqual(2.0, matrix[1, 2]); - Assert.AreEqual(0.0, matrix[2, 2]); - Assert.AreEqual(0.0, matrix[3, 2]); - } - - /// - /// Test whether we can create a matrix from a list of row vectors. - /// - [Test] - public virtual void CanCreateMatrixFromRows() - { - var row1 = CreateVector(new[] { 1.0f }); - var row2 = CreateVector(new[] { 1.0f, 2.0f, 3.0f, 4.0f }); - var row3 = CreateVector(new[] { 1.0f, 2.0f }); - var rowVectors = new System.Collections.Generic.List> - { - row1, - row2, - row3 - }; - var matrix = Matrix.CreateFromRows(rowVectors); - - Assert.AreEqual(matrix.RowCount, 3); - Assert.AreEqual(matrix.ColumnCount, 4); - Assert.AreEqual(1.0, matrix[0, 0]); - Assert.AreEqual(0.0, matrix[0, 1]); - Assert.AreEqual(0.0, matrix[0, 2]); - Assert.AreEqual(0.0, matrix[0, 3]); - Assert.AreEqual(1.0, matrix[1, 0]); - Assert.AreEqual(2.0, matrix[1, 1]); - Assert.AreEqual(3.0, matrix[1, 2]); - Assert.AreEqual(4.0, matrix[1, 3]); - Assert.AreEqual(1.0, matrix[2, 0]); - Assert.AreEqual(2.0, matrix[2, 1]); - Assert.AreEqual(0.0, matrix[2, 2]); - Assert.AreEqual(0.0, matrix[2, 3]); - } } }