public void Constructor_Identity() { IndeterminateExpression v = 'v'; v.IsOne.AssertIsFalse(); v.HasUnaryModifier.AssertIsFalse(); ((char)v).AssertIsEqualTo('v'); v.ToString().AssertIsEqualTo("v"); v.ToPower(2).ToString().AssertIsEqualTo("v²"); v.GetOperation('v').Value(5).AssertIsEqualTo <double>(5); v.ToPower(2).DerivativeBy('v').AssertIsEqualTo(2 * (PolynomialTerm)v); v.SimplifyForConstant(23).AssertIsEqualTo <double>(23); }
public void Constructor_Cos() { IndeterminateExpression v = IndeterminateExpression.Cos('v'); v.IsOne.AssertIsFalse(); v.HasUnaryModifier.AssertIsTrue(); Assert.Throws <InvalidOperationException>(() => { var _ = (char)v; }); v.ToString().AssertIsEqualTo("Cos(v)"); v.ToPower(2).ToString().AssertIsEqualTo("Cos²(v)"); v.GetOperation('v').Value(0).AssertIsEqualTo(1); v.GetOperation('v').Value(Math.PI / 2).AssertIsEqualTo(0); v.ToPower(2).DerivativeBy('v').AssertIsEqualTo(-2 * Cos(Term.v) * Sin(Term.v)); v.SimplifyForConstant(0).AssertIsEqualTo(1); v.SimplifyForConstant(Math.PI / 2).AssertIsEqualTo(0); }
public void Comparer() { IndeterminateExpression a = 'a'; IndeterminateExpression b = 'b'; IndeterminateExpression sinA = IndeterminateExpression.Sin('a'); IndeterminateExpression sinB = IndeterminateExpression.Sin('b'); a.CompareTo(b).AssertIsEqualTo(-1); a.CompareTo(a).AssertIsEqualTo(0); b.CompareTo(a).AssertIsEqualTo(1); sinA.CompareTo(sinB).AssertIsEqualTo(-1); sinA.CompareTo(sinA).AssertIsEqualTo(0); sinB.CompareTo(sinA).AssertIsEqualTo(1); a.CompareTo(sinA).AssertIsEqualTo(-1); a.CompareTo(sinB).AssertIsEqualTo(-1); sinA.CompareTo(a).AssertIsEqualTo(1); sinB.CompareTo(a).AssertIsEqualTo(1); }
public void Constructor_Default() { IndeterminateExpression v = default; v.IsOne.AssertIsTrue(); v.HasUnaryModifier.AssertIsFalse(); Assert.Throws <InvalidOperationException>(() => { var _ = (char)v; }); v.ToString().AssertIsEqualTo("1"); v.ToPower(2).AssertIsEqualTo(v); v.GetOperation().Value().AssertIsEqualTo(1); Assert.Throws <InvalidOperationException>(() => { var _ = v.DerivativeBy('a'); }); v.SimplifyForConstant(12).AssertIsEqualTo(12); }
public void Cos_Variable() { PolynomialTerm.Cos(Term.a).AssertIsEqualTo(IndeterminateExpression.Cos('a')); }
public void Sin_Variable() { PolynomialTerm.Sin(Term.a).AssertIsEqualTo(IndeterminateExpression.Sin('a')); }
public static PolynomialTerm Cos(PolynomialTerm term) => IndeterminateExpression.Cos((char)term);
public static PolynomialTerm Sin(PolynomialTerm term) => IndeterminateExpression.Sin((char)term);