private void button10_Click(object sender, EventArgs e) { try { var od = new OpenFileDialog() { Filter = "CSV Files|*.csv", Multiselect = true }; if (od.ShowDialog() == DialogResult.OK) { int k = 0; var oneGraff = new PotentGraff2P(); chart1.Series.Clear(); foreach (var fileName in od.FileNames) { var lines = File.ReadAllLines(fileName). Select(a => a.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries)). Where(a => a.Count() > 0); var ddd = lines.ToArray(); var matr = new double[lines.Count(), lines.First().Count()]; int i = 0; foreach (var items in lines) { int j = 0; foreach (var item in items) { //MessageBox.Show($"i={i}, j={j++}, val={Convert.ToDouble(item.Replace('.',',').Trim())}"); matr[i, j++] = Convert.ToDouble(item.Replace('.', ',').Trim()); } i++; } var ss = fileName.ElementAt(fileName.Length - 6).ToString(); var ss2 = fileName.ElementAt(fileName.Length - 5).ToString(); double value = Convert.ToDouble(ss) + Convert.ToDouble(ss2) / 10.0; var interpLevLine = new LevelLine(value); var s = $"№ {k}, value = {value}"; chart1.Series.Add(s); chart1.Series[s].ChartType = Charting.SeriesChartType.Line; for (int j = 1; j < matr.GetLength(0); j++) { interpLevLine.AddPoint(matr[j, 0], matr[j, 1]); chart1.Series[s].Points.AddXY(matr[j, 0], matr[j, 1]); } oneGraff.AddElement(k++, interpLevLine); } if (!oneGraff.ValidData()) { MessageBox.Show("Плохие данные"); } oneGraff.SaveToXmlFile(Path.ChangeExtension(od.FileNames[0], ".xml")); } } catch (Exception) { } }
public void GetVTest() { var testDummy = new PotentGraff2P(); var testLine = new LevelLine(0); testLine.AddPoint(2, 0); testLine.AddPoint(1.5, 1.5); testLine.AddPoint(0, 2); testLine.AddPoint(0, 5); testDummy.AddElement(testLine.Value, testLine); testLine = new LevelLine(1); testLine.AddPoint(2.5, 0); testLine.AddPoint(2, 2); testLine.AddPoint(1, 3); testLine.AddPoint(0.5, 5); testDummy.AddElement(testLine.Value, testLine); testLine = new LevelLine(2); testLine.AddPoint(3, 0); testLine.AddPoint(3, 2); testLine.AddPoint(2.5, 3); testLine.AddPoint(3.5, 4); testLine.AddPoint(6, 5); testDummy.AddElement(testLine.Value, testLine); testLine = new LevelLine(3); testLine.AddPoint(3.5, 0); testLine.AddPoint(4, 2); testLine.AddPoint(5, 2.5); testLine.AddPoint(6, 1.5); testDummy.AddElement(testLine.Value, testLine); testLine = new LevelLine(4); testLine.AddPoint(4, 0); testLine.AddPoint(5, 1); testLine.AddPoint(6, 0.5); testDummy.AddElement(testLine.Value, testLine); testLine = new LevelLine(5); testLine.AddPoint(4.5, 0); testLine.AddPoint(5, 0.5); testLine.AddPoint(6, 0); testDummy.AddElement(testLine.Value, testLine); Assert.AreEqual(6, testDummy.Count); Assert.AreEqual(0, testDummy.GetV(0, 0), 0.0001); Assert.AreEqual(0, testDummy.GetV(1, 1), 0.0001); Assert.AreEqual(0.5, testDummy.GetV(0.5, 3), 0.1); Assert.AreEqual(0.2, testDummy.GetV(1, 2), 0.2); Assert.AreEqual(1.8, testDummy.GetV(2.5, 4), 0.15); Assert.AreEqual(2.5, testDummy.GetV(5, 3.5), 0.15); Assert.AreEqual(2.9, testDummy.GetV(4.5, 2.5), 0.15); Assert.AreEqual(2, testDummy.GetV(2.5, 3), 0.001); Assert.AreEqual(5, testDummy.GetV(5, 0), 0.0001); Assert.AreEqual(true, testDummy.ValidData()); testLine = new LevelLine(6); testLine.AddPoint(5, 0); testLine.AddPoint(6, 1); testDummy.AddElement(testLine.Value, testLine); Assert.AreEqual(false, testDummy.ValidData()); }