private void Calc(object sender, RoutedEventArgs e)
        {
            try
            {
                using (StreamReader sr = new StreamReader(FileName.Text))
                {
                    string file = sr.ReadToEnd();
                    file        = file.Replace('.', ',');
                    double[,] a = null;
                    double[] b = null;

                    var solver = new SLAEsolverMathNet();
                    switch (solver.ParseSLAE(file, ref a, ref b))
                    {
                    case ErrorCode.NotEnoughtEquations:
                    {
                        Answer.Text = "Недостаточно уравнений";
                        return;
                    }

                    case ErrorCode.TooManyEquations:
                    {
                        Answer.Text = "Излишнее число уравнений может привести к не верному решению. Пожалуйста, перепроверьте систему";
                        return;
                    }

                    case ErrorCode.None:
                    {
                        double[] x = solver.SolveSLAE(a, b);

                        Answer.Text = "";
                        for (int i = 0; i < x.Length; i++)
                        {
                            Answer.Text += x[i] + "\n";
                        }
                        break;
                    }
                    }
                }
            }
            catch (Exception ex)
            {
                Answer.Text = ex.Message;
            }
        }
        public void TestNotEnoughtEquations()
        {
            bool testPass = false;

            using (StreamReader sr = new StreamReader("..\\..\\..\\TestNotEnoughtEquations.txt"))
            {
                string file = sr.ReadToEnd();
                file        = file.Replace('.', ',');
                double[,] a = null;
                double[] b = null;

                var solver = new SLAEsolverMathNet();
                if (solver.ParseSLAE(file, ref a, ref b) == ErrorCode.NotEnoughtEquations)
                {
                    testPass = true;
                }
            }

            Assert.True(testPass);
        }
        public void Test3()
        {
            double[] x, rightX;
            bool     testPass = true;

            using (StreamReader sr = new StreamReader("..\\..\\..\\Test3.txt"))
            {
                string file = sr.ReadToEnd();
                file        = file.Replace('.', ',');
                double[,] a = null;
                double[] b = null;

                var solver = new SLAEsolverMathNet();
                solver.ParseSLAE(file, ref a, ref b);
                x = solver.SolveSLAE(a, b);
            }
            using (StreamReader sr = new StreamReader("..\\..\\..\\Test3_answer.txt"))
            {
                string file = sr.ReadToEnd();
                file = file.Replace('.', ',');
                Regex    regex   = new Regex("[\r\n]+");
                string[] answers = regex.Split(file);
                rightX = new double[answers.Length];
                for (int i = 0; i < answers.Length; i++)
                {
                    rightX[i] = Convert.ToDouble(answers[i]);
                }
            }

            for (int i = 0; i < rightX.Length; i++)
            {
                if (Math.Abs(rightX[i] - x[i]) > 0.0001)
                {
                    testPass = false;
                }
            }

            Assert.True(testPass);
        }