示例#1
0
    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);
        }
    }
示例#2
0
    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);
            }
        }
    }
示例#3
0
    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);
            }
        }
    }