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); }