using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnitTestSharp; using Azimuth.Polynomials; namespace Azimuth.UnitTests.Polynomials { public class CubicTests : TestFixture { public void Correct() { RootList expected = new Scalar?[] { 2, 3, 4 }; RootList actual = Cubic.Solve(1, -9, 26, -24); CheckEqual(expected, actual); } public void Multiplicity_3() { RootList expected = new Scalar?[] { 2, 2, 2 }; RootList actual = Cubic.Solve(1, -6, 12, -8); CheckEqual(expected, actual); } public void Multiplicity_2_1null() { RootList expected = new Scalar?[] { 2, 2, }; RootList actual = Cubic.Solve(0, 1, -4, 4); CheckEqual(expected, actual); } public void TEST_Cubic_B0() { RootList expected = new Scalar?[] { -3, 0, 3, }; RootList actual = Cubic.Solve(1, 0, -9, 0); CheckEqual(expected, actual); } public void TEST_Cubic_C0() { RootList expected = new Scalar?[] { -1, 0, 0, }; RootList actual = Cubic.Solve(1, 1, 0, 0); CheckEqual(expected, actual); } public void NoSolutions() { RootList expected = new Scalar?[] { }; RootList actual = Cubic.Solve(0, 0, 0, 4); CheckEqual(expected, actual); } public void Multiplicity_2_1real() { RootList expected = new Scalar?[] { 0, 1, 1 }; RootList actual = Cubic.Solve(1, -2, 1, 0); CheckEqual(expected, actual); } #region ThreeNumberSort //public void r_123() //{ // Scalar? r1, r2, r3; // Cubic.Sort(1, 2, 3, out r1, out r2, out r3); // CheckEqual(1, r1); // CheckEqual(2, r2); // CheckEqual(3, r3); //} //public void r_132() //{ // Scalar? r1, r2, r3; // Cubic.Sort(1, 3, 2, out r1, out r2, out r3); // CheckEqual(1, r1); // CheckEqual(2, r2); // CheckEqual(3, r3); //} //public void r_213() //{ // Scalar? r1, r2, r3; // Cubic.Sort(2, 1, 3, out r1, out r2, out r3); // CheckEqual(1, r1); // CheckEqual(2, r2); // CheckEqual(3, r3); //} //public void r_231() //{ // Scalar? r1, r2, r3; // Cubic.Sort(2, 3, 1, out r1, out r2, out r3); // CheckEqual(1, r1); // CheckEqual(2, r2); // CheckEqual(3, r3); //} //public void r_312() //{ // Scalar? r1, r2, r3; // Cubic.Sort(3, 1, 2, out r1, out r2, out r3); // CheckEqual(1, r1); // CheckEqual(2, r2); // CheckEqual(3, r3); //} //public void r_321() //{ // Scalar? r1, r2, r3; // Cubic.Sort(3, 2, 1, out r1, out r2, out r3); // CheckEqual(1, r1); // CheckEqual(2, r2); // CheckEqual(3, r3); //} #endregion } }