コード例 #1
0
        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)
            {
            }
        }
コード例 #2
0
        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());
        }