/// <summary>
        /// Just to compare linear equation set solvers
        /// </summary>
        protected override bool CheckCommodity()
        {
            linEquationContext.TCPELinProgMatrix = new LinEquationsMatrix();
            ILinEqsAlgorithmProvider linEqsAlgorithmProvider = configuration.Get <ILinEqsAlgorithmProvider>();

            LinEqsSetBuilder tcpeLinProgBuilder =
                linEqsAlgorithmProvider.GetLinEquationsSetBuilder(
                    meapContext,
                    tapeSegContext,
                    linEquationContext);

            tcpeLinProgBuilder.CreateTCPEPLinProgEqsSet();
            AddCommodityCheckEquation();

            String linEqSetQuery = linEquationContext.TCPELinProgMatrix.GetLinEqSetQuery();

            tapeSegContext.MathQueryString = linEqSetQuery + "LinearSolve[A,b]";

            MathKernelConnector mathKernelConnector = configuration.Get <MathKernelConnector>();
            String linEqSetOutput = mathKernelConnector.MathKernel.EvaluateToOutputForm(tapeSegContext.MathQueryString, 0);

            return(!linEqSetOutput.Contains(linEqSetStr));
        }
        public void Run(string[] args)
        {
            AppStatistics  appStatistics = configuration.Get <AppStatistics>();
            ICommonOptions commonOptions = configuration.Get <ICommonOptions>();

            try
            {
                MathKernelConnector mathKernelConnector = configuration.Get <MathKernelConnector>();

                mathKernelConnector.LoadMathKernel();
                Ensure.That(ThreadPool.SetMinThreads(32, 2)).IsTrue();

                IVerificator verificator = configuration.Get <OrdinaryVerificator>();
                verificator.Run();

                mathKernelConnector.UnloadMathKernel();
            }
            catch (Exception exception)
            {
                appStatistics.ThereWereErrors = true;
                log.Error(exception.ToString());
            }
        }