public void TestMultiplicativeInverse() { ((PolyNumber)1).MultiplicativeInverse().HasValue(1).AssertTrue(); ((PolyNumber)2).MultiplicativeInverse().HasValue(new BigRational(1, 2)).AssertTrue(); var p = new PolyNumber(Polynomial.FromRoots(1, 2, new BigRational(3, 5))).MultiplicativeInverse(); p.HasValue(1).AssertTrue(); p.HasValue(new BigRational(1, 2)).AssertTrue(); p.HasValue(new BigRational(5, 3)).AssertTrue(); p.Constraint.Degree().AssertEquals((BigInteger)3); }
public void TestMultiply2() { var x = new PolyNumber(Polynomial.FromRoots(1, 4, 7)) * new PolyNumber(Polynomial.FromRoots(1, 2, 3)); x.Constraint.Degree().AssertEquals((BigInteger)9); x.HasValue(1).AssertTrue(); x.HasValue(2).AssertTrue(); x.HasValue(3).AssertTrue(); x.HasValue(4).AssertTrue(); x.HasValue(8).AssertTrue(); x.HasValue(12).AssertTrue(); x.HasValue(7).AssertTrue(); x.HasValue(14).AssertTrue(); x.HasValue(21).AssertTrue(); }
public void TestAdd4() { var x = new PolyNumber(Polynomial.FromRoots(1, 4, 7)) + new PolyNumber(Polynomial.FromRoots(1, 2, 3)); x.Constraint.Degree().AssertEquals((BigInteger)9); x.HasValue(2).AssertTrue(); x.HasValue(3).AssertTrue(); x.HasValue(4).AssertTrue(); x.HasValue(5).AssertTrue(); x.HasValue(6).AssertTrue(); x.HasValue(7).AssertTrue(); x.HasValue(8).AssertTrue(); x.HasValue(9).AssertTrue(); x.HasValue(10).AssertTrue(); }
public void TestConvert() { PolyNumber x = 2; x.HasValue(2).AssertTrue(); Assert.AreEqual(x.Approximates().Single(), 2, 0.001); PolyNumber x2 = new BigRational(3, 5); x2.HasValue(new BigRational(3, 5)).AssertTrue(); Assert.AreEqual(x2.Approximates().Single(), 0.6, 0.001); }