public void Constructor_Polynomial() { Polynomial constant = 1; PolynomialDivision v = _x / constant; v.IsPolynomial.AssertIsTrue(); v.IsConstant.AssertIsFalse(); v.ToString().AssertIsEqualTo("x"); }
public void Constructor_PolynomialDivision() { PolynomialDivision v = _x / _y; (v == 0).AssertIsFalse(); v.IsPolynomial.AssertIsFalse(); v.IsConstant.AssertIsFalse(); v.GetOperation('x', 'y').Value(10, 2).AssertIsEqualTo(5); }
public void TryDivideBy_Polynomial() { PolynomialDivision numerator = (_x - 1) * (_x + 2); // test PolynomialDivision result; numerator.TryDivideBy(_x - 1, out result).AssertIsTrue(); result.AssertIsEqualTo(_x + 2); }
private static void EqualityAfterTransformation(PolynomialDivision polynomial) { var cartesianPoint = new Number[] { Term.x, Term.y, Term.z }; var sphericalPoint = new HypersphericalCoordinate(Term.r, new Number[] { Term.θ, Term.φ }); PolynomialDivision sphericalPolynomial = polynomial.ToSpherical(cartesianPoint, sphericalPoint); double sqrt2 = Math.Sqrt(2); double sqrt3 = Math.Sqrt(3); Number polynomialResult = polynomial.GetOperation(Term.x, Term.y, Term.z).Value(sqrt2, sqrt2, 2 * sqrt3); double sphericalResult = sphericalPolynomial.GetOperation(Term.r, Term.θ, Term.φ).Value(4, Math.PI / 4, Math.PI / 3); polynomialResult.AssertIsEqualTo(sphericalResult); }
public void GeneralizationForSum() { PolynomialDivision last = default; for (uint i = 2; i <= 5; ++i) { PolynomialDivision current = GetSum(i); if (last != default) { last.AssertIsEqualTo(current.Composition(Number.GreekTerm(i - 2), 0)); } last = current; } }
public void Constructor_Default() { PolynomialDivision v = default; v.AssertIsEqualTo(0); (v == 0).AssertIsTrue(); v.IsPolynomial.AssertIsTrue(); v.IsConstant.AssertIsTrue(); v.ToString().AssertIsEqualTo("0"); v.DerivativeBy('a').AssertIsEqualTo(0); (2 * v).AssertIsEqualTo(0); (v / 2).AssertIsEqualTo(0); v.GetOperation().Value().AssertIsEqualTo(0); }
public void Constructor_Variable() { PolynomialDivision v = 'a'; (v == 0).AssertIsFalse(); v.IsConstant.AssertIsFalse(); v.IsPolynomial.AssertIsTrue(); v.ToString().AssertIsEqualTo("a"); ((PolynomialTerm)v).AssertIsEqualTo('a'); v.DerivativeBy('a').AssertIsEqualTo(1); v.DerivativeBy('b').AssertIsEqualTo(0); (2 * v).AssertIsEqualTo(2 * Term.a); (v / 2).AssertIsEqualTo(0.5 * Term.a); v.GetOperation('a').Value(5).AssertIsEqualTo(5); }
public void Constructor_Constant() { PolynomialDivision v = 2; (v == 0).AssertIsFalse(); v.IsPolynomial.AssertIsTrue(); v.IsConstant.AssertIsTrue(); v.ToString().AssertIsEqualTo("2"); v.AssertIsEqualTo(2); (1 == v).AssertIsFalse(); (0 == v).AssertIsFalse(); v.DerivativeBy('a').AssertIsEqualTo(0); (2 * v).AssertIsEqualTo(4); (v / 2).AssertIsEqualTo(1); v.GetOperation().Value().AssertIsEqualTo(2); }
public void GetCartesianAxisViewsRatiosDerivativesByAngle() { var sphericalPoint = new HypersphericalCoordinate(r, new Number[] { α, β, γ, δ }); Span <Number> cartesianActual = new Number[5]; sphericalPoint.ToCartesian(in cartesianActual); for (ushort anglePos = 0; anglePos < sphericalPoint.Angles.Length; ++anglePos) { PolynomialTerm angleTerm = (PolynomialTerm)sphericalPoint.Angles.Span[anglePos]; var derivatives = new HypersphericalCoordinateOnAxisViewForAngleDerivatives(sphericalPoint, anglePos: anglePos).DerivativesCartesianVector; derivatives.Length.AssertIsEqualTo(sphericalPoint.DimensionsCount); for (ushort coordinatePos = 0; coordinatePos < cartesianActual.Length; ++coordinatePos) { PolynomialDivision coordinate = (PolynomialDivision)cartesianActual[coordinatePos]; PolynomialDivision expected = coordinate.DerivativeBy(angleTerm); derivatives[coordinatePos].AssertIsEqualTo(expected); } } }
public void Composition_Division() { PolynomialDivision entry = _x / (_x + 1); entry.Composition(_x, _y / _x).AssertIsEqualTo(_y / (_x + _y)); }
public void Composition_Square() { PolynomialDivision entry = (_x + 1) / (_x - 1); entry.Composition((char)_x, _y + 1).AssertIsEqualTo((_y + 2) / _y); }