using System; using System.Collections.Generic; using System.Linq; using System.Text; using Azimuth.SparseLinearAlgebra; using Azimuth.DenseLinearAlgebra; using UnitTestSharp; namespace Azimuth.UnitTests.SparseLinearAlgebra { public class CoreTransformationTests : UnitTestSharp.TestFixture { public class Turnover : UnitTestSharp.TestFixture { public void Identity() { var A = new CoreTransformation(Matrix2x2.Identity, 0); var B = new CoreTransformation(Matrix2x2.Identity, 1); var C = new CoreTransformation(Matrix2x2.Identity, 0); bool success = CoreTransformation.Turnover(ref A, ref B, ref C); Check(success); if (success) { CheckEqual(new CoreTransformation(Matrix2x2.Identity, 1), A); CheckEqual(new CoreTransformation(Matrix2x2.Identity, 0), B); CheckEqual(new CoreTransformation(Matrix2x2.Identity, 1), C); } } } public class Descend : UnitTestSharp.TestFixture { public void LeadingZero() { var row = new DenseVector(new Scalar[] { 1, 2, 3, 4, 5, 6, 7, }); var coreTransform = CoreTransformation.Descend(ref row, 0, new Matrix2x2(0, 10, 20, 30)); var expected = new CoreTransformation(new Matrix2x2(0, 1, 1, 0), 0); CheckEqual(expected, coreTransform); CheckEqual(new DenseVector(new Scalar[] { 1, 2, 3, 4, 5, 6, 7, }), row); } [IgnoreTest] public void Identity() { var row = new DenseVector(new Scalar[] { 1, 2, 3, 4, 5, 6, 7, }); var coreTransform = CoreTransformation.Descend(ref row, 0, Matrix2x2.Identity); // I have no idea what the values should be here } public void Triangular() { var row = new DenseVector(new Scalar[] { 1, 2, 3, 4, 5, 6, 7, }); var coreTransform = CoreTransformation.Descend(ref row, 0, new Matrix2x2(1, 0, 2, 1)); var expected = new CoreTransformation(new Matrix2x2(0, 1, -2, 1), 0); CheckEqual(expected, coreTransform); CheckEqual(new DenseVector(new Scalar[] { 1, 2, -6, -8, -10, -12, -14, }), row); } public void Full() { var row = new DenseVector(new Scalar[] { 1, 2, 3, 4, 5, 6, 7, }); var coreTransform = CoreTransformation.Descend(ref row, 0, new Matrix2x2(1, 2, 3, 4)); var expected = new CoreTransformation(new Matrix2x2(0, 1, -3, 1), 0); CheckEqual(expected, coreTransform); CheckEqual(new DenseVector(new Scalar[] { 1, 2, -9, -12, -15, -18, -21, }), row); } } } }