public void GetRow() { var A = new ElasticMatrix <int>(3, 4); A[0, 0] = 10; A[0, 1] = 11; A[0, 2] = 12; A[0, 3] = 13; A[1, 3] = 23; A[1, 0] = 20; A[1, 1] = 21; A[2, 3] = 33; A[2, 2] = 32; A[2, 1] = 31; A[2, 0] = 30; var row = A.GetRow(0); Assert.AreEqual(4, row.Size); Assert.AreEqual(4, row.Count); Assert.AreEqual(10, row[0]); Assert.AreEqual(11, row[1]); Assert.AreEqual(12, row[2]); Assert.AreEqual(13, row[3]); row = A.GetRow(1); Assert.AreEqual(4, row.Size); Assert.AreEqual(3, row.Count); Assert.AreEqual(20, row[0]); Assert.AreEqual(21, row[1]); Assert.AreEqual(23, row[3]); row = A.GetRow(2); Assert.AreEqual(4, row.Size); Assert.AreEqual(4, row.Count); Assert.AreEqual(30, row[0]); Assert.AreEqual(31, row[1]); Assert.AreEqual(32, row[2]); Assert.AreEqual(33, row[3]); }
public void ForRow() { var A = new ElasticMatrix <double>(3, 4); A[0, 0] = 10; A[0, 1] = 11; A[0, 2] = 12; A[0, 3] = 13; A[1, 3] = 23; A[1, 0] = 20; A[1, 1] = 21; A[2, 3] = 33; A[2, 2] = 32; A[2, 1] = 31; A[2, 0] = 30; A.Sorting(); var row = new List <double>(); A.ForRow(0, (j, value) => row.Add(value)); Assert.AreEqual(4, row.Count); Assert.AreEqual(10, row[0]); Assert.AreEqual(11, row[1]); Assert.AreEqual(12, row[2]); Assert.AreEqual(13, row[3]); row.Clear(); A.ForRow(1, (j, value) => row.Add(value)); Assert.AreEqual(3, row.Count); Assert.AreEqual(20, row[0]); Assert.AreEqual(21, row[1]); Assert.AreEqual(23, row[2]); row.Clear(); A.ForRow(2, (j, value) => row.Add(value)); Assert.AreEqual(4, row.Count); Assert.AreEqual(30, row[0]); Assert.AreEqual(31, row[1]); Assert.AreEqual(32, row[2]); Assert.AreEqual(33, row[3]); }
public void Constructor_2() { var A = new SparseMatrix <double>( 3, 4, new int[] { 0, 4, 7, 11 }, new int[] { 0, 1, 2, 3, 0, 1, 3, 0, 1, 2, 3 }, new double[] { 10, 11, 12, 13, 20, 21, 23, 30, 31, 32, 33 }); var P = new ElasticMatrix <double>(3, 4); P[0, 0] = 10; P[0, 1] = 11; P[0, 2] = 12; P[0, 3] = 13; P[1, 3] = 23; P[1, 0] = 20; P[1, 1] = 21; P[2, 3] = 33; P[2, 2] = 32; P[2, 1] = 31; P[2, 0] = 30; var E = new SparseMatrix <double>(P); Assert.IsTrue(A.Equals(E)); for (int i = 0; i < A.Rows; i++) { foreach (var it in A.GetRow(i)) { Assert.AreEqual(E[i, it.Key], it.Value); } } for (int j = 0; j < A.Columns; j++) { foreach (var it in A.GetColumn(j)) { Assert.AreEqual(E[it.Key, j], it.Value); } } }
public void Transpose() { var A = new ElasticMatrix <int>(3, 2); A[0, 0] = 0; A[0, 1] = 1; A[1, 0] = 2; A[1, 1] = 4; A[2, 0] = 0; A[2, 1] = 3; var At = A.Transpose(); var Att = At.Transpose(); var Attt = Att.Transpose(); Assert.IsTrue(A.Equals(Att)); Assert.IsTrue(At.Equals(Attt)); Assert.IsFalse(A.Equals(At)); }
public void Transpose() { var P = new ElasticMatrix <double>(3, 2); P[0, 0] = 0; P[0, 1] = 1; P[1, 0] = 2; P[1, 1] = 4; P[2, 0] = 0; P[2, 1] = 3; var A = new SparseMatrix <double>(P); var At = A.Transpose(); var Att = At.Transpose(); var Attt = Att.Transpose(); Assert.IsTrue(A.Equals(Att)); Assert.IsTrue(At.Equals(Attt)); Assert.IsFalse(A.Equals(At)); }
public void Constructor() { var P = new ElasticMatrix <double>(3, 4); P[0, 0] = 10; P[0, 1] = 11; P[0, 2] = 12; P[0, 3] = 13; P[1, 3] = 23; P[1, 0] = 20; P[1, 1] = 21; P[2, 3] = 33; P[2, 2] = 32; P[2, 1] = 31; P[2, 0] = 30; var A = new SparseMatrix <double>(P); Assert.AreEqual(11, A.Count); Assert.AreEqual(10, A[0, 0]); Assert.AreEqual(11, A[0, 1]); Assert.AreEqual(12, A[0, 2]); Assert.AreEqual(13, A[0, 3]); Assert.AreEqual(20, A[1, 0]); Assert.AreEqual(21, A[1, 1]); Assert.AreEqual(23, A[1, 3]); Assert.AreEqual(30, A[2, 0]); Assert.AreEqual(31, A[2, 1]); Assert.AreEqual(32, A[2, 2]); Assert.AreEqual(33, A[2, 3]); for (int i = 0; i < A.Rows; i++) { foreach (var it in A.GetRow(i)) { Assert.AreEqual(A[i, it.Key], it.Value); } } for (int j = 0; j < A.Columns; j++) { foreach (var it in A.GetColumn(j)) { Assert.AreEqual(A[it.Key, j], it.Value); } } }
public void GetColumn() { var P = new ElasticMatrix <double>(3, 4); P[0, 0] = 10; P[0, 1] = 11; P[0, 2] = 12; P[0, 3] = 13; P[1, 3] = 23; P[1, 0] = 20; P[1, 1] = 21; P[2, 3] = 33; P[2, 2] = 32; P[2, 1] = 31; P[2, 0] = 30; var A = new SparseMatrix <double>(P); var column = A.GetColumn(0); Assert.AreEqual(3, column.Size); Assert.AreEqual(3, column.Count); Assert.AreEqual(10, column[0]); Assert.AreEqual(20, column[1]); Assert.AreEqual(30, column[2]); column = A.GetColumn(1); Assert.AreEqual(3, column.Size); Assert.AreEqual(3, column.Count); Assert.AreEqual(11, column[0]); Assert.AreEqual(21, column[1]); Assert.AreEqual(31, column[2]); column = A.GetColumn(2); Assert.AreEqual(3, column.Size); Assert.AreEqual(2, column.Count); Assert.AreEqual(12, column[0]); Assert.AreEqual(32, column[2]); column = A.GetColumn(3); Assert.AreEqual(3, column.Size); Assert.AreEqual(3, column.Count); Assert.AreEqual(13, column[0]); Assert.AreEqual(23, column[1]); Assert.AreEqual(33, column[2]); }
public void ForColumn() { var P = new ElasticMatrix <double>(3, 4); P[0, 0] = 10; P[0, 1] = 11; P[0, 2] = 12; P[0, 3] = 13; P[1, 3] = 23; P[1, 0] = 20; P[1, 1] = 21; P[2, 3] = 33; P[2, 2] = 32; P[2, 1] = 31; P[2, 0] = 30; var A = new SparseMatrix <double>(P); var column = new List <double>(); A.ForColumn(0, (j, value) => column.Add(value)); Assert.AreEqual(3, column.Count); Assert.AreEqual(10, column[0]); Assert.AreEqual(20, column[1]); Assert.AreEqual(30, column[2]); column.Clear(); A.ForColumn(1, (j, value) => column.Add(value)); Assert.AreEqual(3, column.Count); Assert.AreEqual(11, column[0]); Assert.AreEqual(21, column[1]); Assert.AreEqual(31, column[2]); column.Clear(); A.ForColumn(2, (j, value) => column.Add(value)); Assert.AreEqual(2, column.Count); Assert.AreEqual(12, column[0]); Assert.AreEqual(32, column[1]); column.Clear(); A.ForColumn(3, (j, value) => column.Add(value)); Assert.AreEqual(3, column.Count); Assert.AreEqual(13, column[0]); Assert.AreEqual(23, column[1]); Assert.AreEqual(33, column[2]); }
public void Sorting() { var A = new ElasticMatrix <int>(3, 4); A[0, 0] = 10; A[0, 1] = 11; A[0, 2] = 12; A[0, 3] = 13; A[1, 3] = 23; A[1, 0] = 20; A[1, 1] = 21; A[2, 3] = 33; A[2, 2] = 32; A[2, 1] = 31; A[2, 0] = 30; var B = new ElasticMatrix <int>(A); Assert.IsTrue(A.Equals(B)); A.Sorting(); Assert.IsFalse(A.Equals(B)); var E = new ElasticMatrix <int>(3, 4); E[0, 0] = 10; E[0, 1] = 11; E[0, 2] = 12; E[0, 3] = 13; E[1, 0] = 20; E[1, 1] = 21; E[1, 3] = 23; E[2, 0] = 30; E[2, 1] = 31; E[2, 2] = 32; E[2, 3] = 33; Assert.IsTrue(E.Equals(A)); }