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); }
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); }