def CheckResults(ref_file_name, out_file_name):
    # check the results
    settings_check_process = KratosMultiphysics.Parameters("""
    {
        "reference_file_name"   : \"""" + ref_file_name.replace("\\", "\\\\") + """\",
        "output_file_name"      : \"""" + out_file_name.replace("\\", "\\\\") + """\",
        "comparison_type"       : "post_res_file"
    }
    """)

    check_process = CompareTwoFilesCheckProcess(settings_check_process)

    check_process.ExecuteInitialize()
    check_process.ExecuteBeforeSolutionLoop()
    check_process.ExecuteInitializeSolutionStep()
    check_process.ExecuteFinalizeSolutionStep()
    check_process.ExecuteBeforeOutputStep()
    check_process.ExecuteAfterOutputStep()
    check_process.ExecuteFinalize()
    def test_PostprocessEigenvaluesProcess(self):
        test_model = KratosMultiphysics.Model()
        model_part = test_model.CreateModelPart("Structure")
        comp_model_part = model_part.CreateSubModelPart("computing_domain")

        model_part.AddNodalSolutionStepVariable(KratosMultiphysics.DISPLACEMENT)
        model_part.AddNodalSolutionStepVariable(KratosMultiphysics.REACTION)
        model_part.AddNodalSolutionStepVariable(KratosMultiphysics.ROTATION)
        model_part.AddNodalSolutionStepVariable(KratosMultiphysics.REACTION_MOMENT)

        model_part.ProcessInfo[KratosMultiphysics.STEP] = 15

        CreateNodes(comp_model_part)

        # adding dofs is needed for the process internally
        KratosMultiphysics.VariableUtils().AddDof(KratosMultiphysics.DISPLACEMENT_X, KratosMultiphysics.REACTION_X, model_part)
        KratosMultiphysics.VariableUtils().AddDof(KratosMultiphysics.DISPLACEMENT_Y, KratosMultiphysics.REACTION_Y, model_part)
        KratosMultiphysics.VariableUtils().AddDof(KratosMultiphysics.DISPLACEMENT_Z, KratosMultiphysics.REACTION_Z, model_part)
        KratosMultiphysics.VariableUtils().AddDof(KratosMultiphysics.ROTATION_X, KratosMultiphysics.REACTION_MOMENT_X,model_part)
        KratosMultiphysics.VariableUtils().AddDof(KratosMultiphysics.ROTATION_Y, KratosMultiphysics.REACTION_MOMENT_Y,model_part)
        KratosMultiphysics.VariableUtils().AddDof(KratosMultiphysics.ROTATION_Z, KratosMultiphysics.REACTION_MOMENT_Z,model_part)


        # set EigenValues and -Vectors
        num_eigenvalues = 4
        eigenval_vector = GetEigenValueVector(num_eigenvalues)
        model_part.ProcessInfo[StructuralMechanicsApplication.EIGENVALUE_VECTOR] = eigenval_vector

        for node in model_part.Nodes:
            node.SetValue(StructuralMechanicsApplication.EIGENVECTOR_MATRIX,
                          GetEigenVectorMatrix(num_eigenvalues, node.Id))

        # Use the process
        # here the minimum settings are specified to test the default values!
        settings_eigen_process = KratosMultiphysics.Parameters("""{
            "Parameters" : {
                "result_file_format_use_ascii" : true
            }
        }""")

        post_eigen_process = postprocess_eigenvalues_process.Factory(settings_eigen_process, test_model)

        post_eigen_process.ExecuteInitialize()
        post_eigen_process.ExecuteBeforeSolutionLoop()
        post_eigen_process.ExecuteInitializeSolutionStep()
        post_eigen_process.ExecuteFinalizeSolutionStep()
        post_eigen_process.ExecuteBeforeOutputStep()
        post_eigen_process.ExecuteAfterOutputStep()
        post_eigen_process.ExecuteFinalize()

        # check the results
        settings_check_process = KratosMultiphysics.Parameters("""
        {
            "reference_file_name"   : "",
            "output_file_name"      : "",
            "remove_output_file"    : true,
            "comparison_type"       : "post_res_file"
        }
        """)

        settings_check_process["reference_file_name"].SetString(GetFilePath("test_postprocess_eigenvalues_process.ref"))
        settings_check_process["output_file_name"].SetString("Structure_EigenResults_15_0.post.res")

        check_process = CompareTwoFilesCheckProcess(settings_check_process)

        check_process.ExecuteInitialize()
        check_process.ExecuteBeforeSolutionLoop()
        check_process.ExecuteInitializeSolutionStep()
        check_process.ExecuteFinalizeSolutionStep()
        check_process.ExecuteBeforeOutputStep()
        check_process.ExecuteAfterOutputStep()
        check_process.ExecuteFinalize()