示例#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_FormingNMatrix_ValidNMatrix()
    {
        FillListsCoordinationData(PathToTxt, out var srcSC, out var dstSC);
        var             nMatrixExpected = ReadControlDataFromFile(PathToTxt + "\\nMatrix.txt", 3, 3);
        var             a9Instance      = new NineAffine(srcSC, dstSC);
        Matrix <double> nMatrixActual   = a9Instance.CreateNMatrixTst();

        for (int row = 0; row < nMatrixActual.RowCount; row++)
        {
            for (int col = 0; col < nMatrixExpected.ColumnCount; col++)
            {
                Assert.Equal(nMatrixExpected[row, col], nMatrixActual[row, col], 6);
            }
        }
    }
示例#4
0
    private void NineAffine_CalculateScaleMatrix_ValidScaleMatrix()
    {
        FillListsCoordinationData(PathToTxt, out var srcSC, out var dstSC);
        var             scaleMatrixExpected = ReadControlDataFromFile(PathToTxt + "\\baseScaleMatrix.txt", 3, 3);
        var             a9Instance          = new NineAffine(srcSC, dstSC);
        var             mMatrixTst          = a9Instance.CreateMMatrixTst();
        var             nMatrixTst          = a9Instance.CreateNMatrixTst();
        var             pMatrixTst          = a9Instance.CreatePMatrixTst();
        Matrix <double> rotMatrixActual     = a9Instance.CalculateScaleMatrixTst(mMatrixTst, nMatrixTst, pMatrixTst);

        for (int row = 0; row < rotMatrixActual.RowCount; row++)
        {
            for (int col = 0; col < scaleMatrixExpected.ColumnCount; col++)
            {
                Assert.Equal(scaleMatrixExpected[row, col], rotMatrixActual[row, col], 4);
            }
        }
    }