35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
namespace SharpCalculator.Tests;
|
|
|
|
public class ComplicatedExpressionTests
|
|
{
|
|
public ComplicatedExpressionTests()
|
|
{
|
|
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(0.9,2,3)]
|
|
public void Expression1(double a, double b, double c) =>
|
|
Assert.Equal( a/(b+c), Calculator.Calculate($"({a})/(({b})+({c}))"));
|
|
|
|
[Theory]
|
|
[InlineData(0.9,2,3)]
|
|
public void Expression2(double a, double b, double c) =>
|
|
Assert.Equal( Math.Sin(a)-b*Math.Cos(c),
|
|
Calculator.Calculate($"sin(({a}))-(({b})*cos(({c})))"),
|
|
FunctionTests.PRECISION);
|
|
|
|
[Theory]
|
|
[InlineData(0.9,2,3)]
|
|
public void Expression3(double a, double b, double c) =>
|
|
Assert.Equal( a*Math.Pow(b,c)+a*Math.Pow(b,c+1)+a*Math.Pow(b,c+2),
|
|
Calculator.Calculate($"({a})*({b})^({c}) + ({a})*({b})^({c+1}) + ({a})*({b})^({c+2})"),
|
|
FunctionTests.PRECISION);
|
|
|
|
[Theory]
|
|
[InlineData(0.9,2,3)]
|
|
public void Expression4(double a, double b, double c) =>
|
|
Assert.Equal(a/(b+Math.Tan(c)),
|
|
Calculator.Calculate($"({a})/(({b})+tan(({c})))"),
|
|
FunctionTests.PRECISION);
|
|
} |