private void NineAffine_CalculateDxVector_ValidDxVector() { FillListsCoordinationData(PathToTxt, out var srcSC, out var dstSC); var dxVectorExpected = ReadControlDataFromFile(PathToTxt + "\\dxVector.txt", 9, 1).Column(0); var a9Instance = new NineAffine(srcSC, dstSC); var eMatrix = a9Instance.CreateEMatrixTst(); var fMatrix = a9Instance.CreateFMatrixTst(); var gMatrix = a9Instance.CreateGMatrixTst(); var rotMatrix = a9Instance.CalculateRotationMatrixTst(eMatrix, fMatrix, gMatrix); var mMatrixTst = a9Instance.CreateMMatrixTst(); var nMatrixTst = a9Instance.CreateNMatrixTst(); var pMatrixTst = a9Instance.CreatePMatrixTst(); var scaleMatrix = a9Instance.CalculateScaleMatrixTst(mMatrixTst, nMatrixTst, pMatrixTst); var aMatrix = a9Instance.CreateAMatrixTst(rotMatrix, scaleMatrix); var diagonalRot = Matrix <double> .Build.DenseDiagonal(3, 3, 1); var diagonalScale = Matrix <double> .Build.DenseDiagonal(3, 3, 1); var lVector = a9Instance.CreateLVectorTst(diagonalRot, diagonalScale); var dxVectorActual = a9Instance.CreateDxVectorTst(aMatrix, lVector); for (int row = 0; row < dxVectorActual.Count; row++) { Assert.Equal(dxVectorExpected[row], dxVectorActual[row], 8); } }
private void NineAffine_CreateAMatrix_ValidAMatrix() { FillListsCoordinationData(PathToTxt, out var srcSC, out var dstSC); var aMatrixExpected = ReadControlDataFromFile(PathToTxt + "\\aMatrix.txt", 30, 9); var a9Instance = new NineAffine(srcSC, dstSC); var eMatrix = a9Instance.CreateEMatrixTst(); var fMatrix = a9Instance.CreateFMatrixTst(); var gMatrix = a9Instance.CreateGMatrixTst(); var rotMatrix = a9Instance.CalculateRotationMatrixTst(eMatrix, fMatrix, gMatrix); var mMatrixTst = a9Instance.CreateMMatrixTst(); var nMatrixTst = a9Instance.CreateNMatrixTst(); var pMatrixTst = a9Instance.CreatePMatrixTst(); var scaleMatrix = a9Instance.CalculateScaleMatrixTst(mMatrixTst, nMatrixTst, pMatrixTst); var aMatrixActual = a9Instance.CreateAMatrixTst(rotMatrix, scaleMatrix); for (int row = 0; row < aMatrixActual.RowCount; row++) { for (int col = 0; col < aMatrixExpected.ColumnCount; col++) { Assert.Equal(aMatrixExpected[row, col], aMatrixActual[row, col], 3); } } }
private void NineAffine_FormingEMatrix_ValidEMatrix() { FillListsCoordinationData(PathToTxt, out var srcSC, out var dstSC); var eMatrixExpected = ReadControlDataFromFile(PathToTxt + "\\eMatrix.txt", 3, 3); var a9Instance = new NineAffine(srcSC, dstSC); Matrix <double> eMatrixActual = a9Instance.CreateEMatrixTst(); for (int row = 0; row < eMatrixActual.RowCount; row++) { for (int col = 0; col < eMatrixExpected.ColumnCount; col++) { Assert.Equal(eMatrixExpected[row, col], eMatrixActual[row, col], 8); } } }
private void NineAffine_CalculateRotationMatrix_ValidRotationMatrix() { FillListsCoordinationData(PathToTxt, out var srcSC, out var dstSC); var rotMatrixExpected = ReadControlDataFromFile(PathToTxt + "\\baseRotMatrix.txt", 3, 3); var a9Instance = new NineAffine(srcSC, dstSC); var eMatrix = a9Instance.CreateEMatrixTst(); var fMatrix = a9Instance.CreateFMatrixTst(); var gMatrix = a9Instance.CreateGMatrixTst(); Matrix <double> rotMatrixActual = a9Instance.CalculateRotationMatrixTst(eMatrix, fMatrix, gMatrix); for (int row = 0; row < rotMatrixActual.RowCount; row++) { for (int col = 0; col < rotMatrixExpected.ColumnCount; col++) { Assert.Equal(rotMatrixExpected[row, col], rotMatrixActual[row, col], 5); } } }