public void ComputeRoots_OneRoot()
 {
   var qe = new QuadraticEquation(-4, 4, -1);
   var actual = qe.ComputeRoots();
   Assert.AreEqual(1, actual.Length);
   Assert.AreEqual(0.5, actual[0]);
 }
 public void ComputeRoots_PerfectSquare()
 {
   var qe = new QuadraticEquation(1, 3, -4);
   var actual = qe.ComputeRoots();
   Assert.AreEqual(2, actual.Length);
   Assert.AreEqual(1, actual[0]);
   Assert.AreEqual(-4, actual[1]);
 }
 public void ComputeRoots_TwoRoots()
 {
   var qe = new QuadraticEquation(9, 3, -8);
   var actual = qe.ComputeRoots();
   Assert.AreEqual(2, actual.Length);
   Assert.AreEqual( 0.79076, actual[0], 0.00001);
   Assert.AreEqual(-1.12409, actual[1], 0.00001);
 }
Esempio n. 4
0
        public void QuadraticEquation()
        {
            var eq = new QuadraticEquation("A".Parse(), "B".Parse(), "C".Parse());
            var roots = eq.Solve();
            var context = ImmutableContext.Empty
                .RegisterValue("A".Parse(), 1)
                .RegisterValue("B".Parse(), -2)
                .RegisterValue("C".Parse(), -3);
            Assert.AreEqual(3, roots.Item1.ToReal(context));
            Assert.AreEqual(-1, roots.Item2.ToReal(context));

            context = ImmutableContext.Empty
                .RegisterValue("A".Parse(), 2)
                .RegisterValue("B".Parse(), -4)
                .RegisterValue("C".Parse(), -6);
            Assert.AreEqual(3, roots.Item1.ToReal(context));
            Assert.AreEqual(-1, roots.Item2.ToReal(context));

            eq = new QuadraticEquation("X + 1".Parse(), "Y - 2".Parse(), "Z / 2".Parse());
            roots = eq.Solve();
            context = ImmutableContext.Empty
                .RegisterValue("X".Parse(), 0)
                .RegisterValue("Y".Parse(), 0)
                .RegisterValue("Z".Parse(), -6);
            Assert.AreEqual(3, roots.Item1.ToReal(context));
            Assert.AreEqual(-1, roots.Item2.ToReal(context));
        }
 public void ComputeRoots_NoRoot()
 {
   var qe = new QuadraticEquation(1, 0, 0.5);
   var actual = qe.ComputeRoots();
   Assert.AreEqual(0, actual.Length);
 }