Пример #1
0
    private void NewtonIterationProcess_CalculateFCoefficient_ValidFCoefficient()
    {
        FillListsCoordinationData(PathToTestTxt, out var listSrc, out var listDest);

        var nip     = new NewtonIterationProcess(listSrc, listDest);
        var aMatrix = nip.FormingAMatrixTst();
        var yMatrix = nip.FormingYMatrixTst();
        var paramsTransformMatrix = nip.GetVectorWithTransformParametersTst(aMatrix, yMatrix);
        var vMatrix = nip.GetVMatrixTst(aMatrix, yMatrix, paramsTransformMatrix);

        var fCoefficientActual   = nip.CalculateFCoefficientTst(vMatrix);
        var fCoefficientExpected = 3.68548085E-07;

        Assert.Equal(fCoefficientExpected, fCoefficientActual, 12); // 10^-12 m^2
    }
Пример #2
0
    private void NewtonIterationProcess_CalculateMCoefficient_ValidMCoefficient()
    {
        FillListsCoordinationData(PathToTestTxt, out var listSrc, out var listDest);

        var nip     = new NewtonIterationProcess(listSrc, listDest);
        var aMatrix = nip.FormingAMatrixTst();
        var yMatrix = nip.FormingYMatrixTst();
        var paramsTransformMatrix = nip.GetVectorWithTransformParametersTst(aMatrix, yMatrix);
        var vMatrix      = nip.GetVMatrixTst(aMatrix, yMatrix, paramsTransformMatrix);
        var fCoefficient = nip.CalculateFCoefficientTst(vMatrix);

        var mCoefficientActual   = nip.CalculateMCoefficientTst(fCoefficient);
        var mCoefficientExpected = 0.000126585;

        Assert.Equal(mCoefficientExpected, mCoefficientActual, 6); // 10^-6 m
    }
Пример #3
0
    private void NewtonIterationProcess_FormingAMatrix_ValidAMatrix()
    {
        FillListsCoordinationData(PathToTestTxt, out var listSrc, out var listDest);

        var test = ReadControlDataFromFile(PathToTestTxt + "\\aMatrix.txt", 30, 7);

        var nip = new NewtonIterationProcess(listSrc, listDest);
        var controlMatrixSrc = nip.FormingAMatrixTst();

        for (int row = 0; row < test.RowCount; row++)
        {
            for (int col = 0; col < test.ColumnCount; col++)
            {
                // excessive accuracy for correct pMatrix forming
                Assert.Equal(test[row, col], controlMatrixSrc[row, col], 8);
            }
        }
    }
Пример #4
0
    private void NewtonIterationProcess_GetQMatrix_ValidQMatrix()
    {
        FillListsCoordinationData(PathToTestTxt, out var listSrc, out var listDest);

        var qMatrixActual = ReadControlDataFromFile(PathToTestTxt + "\\qMatrix.txt", 7, 7);

        var nip             = new NewtonIterationProcess(listSrc, listDest);
        var aMatrix         = nip.FormingAMatrixTst();
        var qMatrixExpected = nip.GetQMatrixTst(aMatrix);

        for (int row = 0; row < qMatrixExpected.RowCount; row++)
        {
            for (int col = 0; col < qMatrixExpected.ColumnCount; col++)
            {
                Assert.Equal(qMatrixExpected[row, col], qMatrixActual[row, col], 5);
            }
        }
    }
Пример #5
0
    private void NewtonIterationProcess_GetVMatrix_ValidVMatrix()
    {
        FillListsCoordinationData(PathToTestTxt, out var listSrc, out var listDest);

        var vMatrixExpected = ReadControlDataFromFile(PathToTestTxt + "\\vMatrix.txt", 30, 1);

        var nip             = new NewtonIterationProcess(listSrc, listDest);
        var aMatrix         = nip.FormingAMatrixTst();
        var yMatrix         = nip.FormingYMatrixTst();
        var vecParamsMatrix = nip.GetVectorWithTransformParametersTst(aMatrix, yMatrix);
        var vMatrixActual   = nip.GetVMatrixTst(aMatrix, yMatrix, vecParamsMatrix);

        for (int row = 0; row < vMatrixExpected.RowCount; row++)
        {
            for (int col = 0; col < vMatrixExpected.ColumnCount; col++)
            {
                Assert.Equal(vMatrixExpected[row, col], vMatrixActual[row, col], 6); // 10^-6 meters
            }
        }
    }
Пример #6
0
    private void NewtonIterationProcess_GetMeanSquareErrorsMatrix_ValidMeanSquareErrorsMatrix()
    {
        FillListsCoordinationData(PathToTestTxt, out var listSrc, out var listDest);

        var mceMatrixActual = ReadControlDataFromFile(PathToTestTxt + "\\mceMatrix.txt", 7, 1);

        var nip     = new NewtonIterationProcess(listSrc, listDest);
        var aMatrix = nip.FormingAMatrixTst();
        var yMatrix = nip.FormingYMatrixTst();
        var paramsTransformMatrix = nip.GetVectorWithTransformParametersTst(aMatrix, yMatrix);
        var vMatrix      = nip.GetVMatrixTst(aMatrix, yMatrix, paramsTransformMatrix);
        var fCoefficient = nip.CalculateFCoefficientTst(vMatrix);
        var mCoefficient = nip.CalculateMCoefficientTst(fCoefficient);
        var qMatrix      = nip.GetQMatrixTst(aMatrix);

        var mceMatrixExpected = nip.GetMeanSquareErrorsMatrixTst(qMatrix, mCoefficient);

        for (int row = 0; row < mceMatrixExpected.Count; row++)
        {
            Assert.Equal(mceMatrixExpected[row], mceMatrixActual[row, 0], 8);
        }
    }