예제 #1
0
        public void interpolate_2()
        {
            ps = new PerfSerie();
            // Polynome               0.5 . x^2 + x -1
            ps.add(new PerfPoint(3, 0.5 * Math.Pow(3, 2) + (3) - 1, false));
            ps.add(new PerfPoint(1, 0.5 * Math.Pow(1, 2) + (1) - 1, false));
            ps.add(new PerfPoint(-5, 0.5 * Math.Pow(-5, 2) + (-5) - 1, false));
            ps.add(new PerfPoint(-1, 0.5 * Math.Pow(-1, 2) + (-1) - 1, false));
            ps.add(new PerfPoint(8, 0.5 * Math.Pow(8, 2) + (8) - 1, false));
            ps.setRange();
            pi = new PolInter(ps);

            // Lève une exception quand aucun point n'est sélectionné

            bool result = false;

            try {
                ps.selectNone();
                pi.interpolate(0.0);
            }
            catch (ModelException e) {
                result = (e.nature == AeroCalc.E_VOID_SYSTEM ? true : false);
            }
            Assert.IsTrue(result);

            // Test de la prédiction de niveau 2 ( polynôme ^2 )

            result = true;
            double calculation = 0.0;
            double expected    = 0.5 * Math.Pow(5, 2) + (5) - 1; // 16.5

            try {
                ps.selectAll();
                calculation = pi.interpolate(5);
            }
            catch (ModelException e) {
                // Dans ce cas, aucune exception ne doit être levée
                result = false;
            }
            Assert.AreEqual(expected, calculation);
            Assert.IsTrue(result);
        }
예제 #2
0
 public void SetUp()
 {
     ps = new PerfSerie();
     pi = new PolInter(ps);
 }