public void Add_SquareMatrixAndSymmetricMatrix_CorrectResult(int order, int[] squareValues, int[] SymmetricValues) { var squareMatrix = new SquareMatrix <int>(order); squareMatrix.Copy(squareValues); var symmetricValues = new SymmetricMatrix <int>(order); symmetricValues.Copy(SymmetricValues); int[] values = new int[symmetricValues.Lenght]; int i = 0; foreach (var element in symmetricValues) { values[i++] = element; } var actual = squareMatrix.Add(symmetricValues); i = 0; foreach (var element in actual) { Assert.AreEqual(squareValues[i] + values[i], element); i++; } }
public void Indexator_SymmetricSequenceOfElements_CorrectResult(int order, int[] values) { var matrix = new SymmetricMatrix <int>(order); matrix.Copy(values); int i = 0; foreach (var element in matrix) { Assert.AreEqual(values[i++], element); } }
public void SymmetricMatrixAccess() { SymmetricMatrix M = CreateSymmetricRandomMatrix(4, 1); // check column ColumnVector c = M.Column(1); Assert.IsTrue(c.Dimension == M.Dimension); for (int i = 0; i < c.Dimension; i++) { Assert.IsTrue(c[i] == M[i, 1]); } // check row RowVector r = M.Row(1); Assert.IsTrue(r.Dimension == M.Dimension); for (int i = 0; i < r.Dimension; i++) { Assert.IsTrue(r[i] == c[i]); } // check clone SymmetricMatrix MC = M.Copy(); Assert.IsTrue(MC == M); Assert.IsFalse(MC != M); // check independence of clone MC[0, 1] += 1.0; Assert.IsFalse(MC == M); Assert.IsTrue(MC != M); // check that update was symmetric Assert.IsTrue(M[0, 1] == M[1, 0]); }
/// <summary> /// Gets the curvature matrix at the extremum. /// </summary> /// <returns>The curvature matrix.</returns> public SymmetricMatrix Curvature() { return(f2.Copy()); }