private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) { var sfd = new SaveFileDialog(); sfd.Filter = "Файлы xml|*.xml"; var dialogResult = sfd.ShowDialog(); if (dialogResult == DialogResult.OK) { var filePath = sfd.FileName; var conditions = new ProblemConditions(_variables, _rules); ProblemConditionsHelper.WriteToFile(conditions, filePath); } }
public void ReadConditionsFromXmlStringTest() { var result = ProblemConditionsHelper.ReadConditionsFromXmlString(Resources.input); Assert.IsTrue(result.Success); Assert.IsNotNull(result.Data); Assert.AreEqual(result.Data.Variables.Count, 3); Assert.AreEqual(result.Data.Rules.Count, 12); Assert.IsTrue(result.Data.Variables.Any(x => x.Name == "X1")); Assert.IsTrue(result.Data.Variables.Any(x => x.Name == "X1" && x.Terms.Any(t => t.Name == "низкий"))); Assert.IsTrue(result.Data.Variables.Any(x => x.Name == "Y" && x.IsResult) && result.Data.Variables.Where(x => x.Name != "Y").All(x => !x.IsResult)); Assert.IsTrue(result.Data.Rules.All(x => x.Conditions.Any(c => c.FuzzyVariable.Name == "X1") && x.Conditions.Any(c => c.FuzzyVariable.Name == "X2") && x.Conclusion.FuzzyVariable.Name == "Y")); }
public void MamdaniServiceTestMethod1() { var solveResultPattern = 0.34375; var result = ProblemConditionsHelper.ReadConditionsFromXmlString(Resources.input); var mamdaniService = new MamdaniService(); ProblemConditions conditions = new ProblemConditions() { Rules = result.Data.Rules, Variables = result.Data.Variables }; var problem = new Problem() { InputData = new double[] { 0.6, 0.8 }, ProblemConditions = conditions }; var solveResult = mamdaniService.SolveProblem(problem); Assert.IsTrue(Math.Abs(solveResult.Data - solveResultPattern) < 1e-3); }
private void task1ToolStripMenuItem_Click(object sender, EventArgs e) { var result = ProblemConditionsHelper.ReadConditionsFromXmlString(Resources.input1); if (!result.Success) { MessageBox.Show("Во время загрузки задачи возникли непридвиденные ошибки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } _variables.Clear(); _variables.AddRange(result.Data.Variables); _rules.Clear(); _rules.AddRange(result.Data.Rules); inputDataTextBox.Text = ""; RefreshVariablesListView(); RefreshRulesListView(); }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { var ofd = new OpenFileDialog(); ofd.Filter = "Файлы xml|*.xml"; ofd.Multiselect = false; var dialogResult = ofd.ShowDialog(); if (dialogResult == DialogResult.OK) { using (var stream = ofd.OpenFile()) { var result = ProblemConditionsHelper.ReadConditionsFromXmlStream(stream); if (!result.Success) { MessageBox.Show("Во время загрузки задачи возникли непредвиденные ошибки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } _variables.Clear(); _variables.AddRange(result.Data.Variables); _rules.Clear(); _rules.AddRange(result.Data.Rules); inputDataTextBox.Text = ""; RefreshVariablesListView(); RefreshRulesListView(); } } }
public void ReadConditionsFromXmlStreamTest() { using (var mem = new MemoryStream()) { var str = Resources.input; var buffer = Encoding.UTF8.GetBytes(str); mem.Write(buffer, 0, buffer.Length); mem.Seek(0, SeekOrigin.Begin); var result = ProblemConditionsHelper.ReadConditionsFromXmlStream(mem); Assert.IsTrue(result.Success); Assert.IsNotNull(result.Data); Assert.AreEqual(result.Data.Variables.Count, 3); Assert.AreEqual(result.Data.Rules.Count, 12); Assert.IsTrue(result.Data.Variables.Any(x => x.Name == "X1")); Assert.IsTrue(result.Data.Variables.Any(x => x.Name == "X1" && x.Terms.Any(t => t.Name == "низкий"))); Assert.IsTrue(result.Data.Rules.All(x => x.Conditions.Any(c => c.FuzzyVariable.Name == "X1") && x.Conditions.Any(c => c.FuzzyVariable.Name == "X2") && x.Conclusion.FuzzyVariable.Name == "Y")); } }