diff --git a/FusionCalculator b/FusionCalculator index 43d3864..d831063 160000 --- a/FusionCalculator +++ b/FusionCalculator @@ -1 +1 @@ -Subproject commit 43d38645a527aff10f585a01f62313cbd840014e +Subproject commit d83106358fbf7293a112d6f3c75f6113e546aa09 diff --git a/SharpCalculator.Tests/ComplicatedExpressionTests.cs b/SharpCalculator.Tests/ComplicatedExpressionTests.cs index bd9b411..52a9306 100644 --- a/SharpCalculator.Tests/ComplicatedExpressionTests.cs +++ b/SharpCalculator.Tests/ComplicatedExpressionTests.cs @@ -15,15 +15,21 @@ public class ComplicatedExpressionTests [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})))")); + 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})")); + 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})))")); + Assert.Equal(a/(b+Math.Tan(c)), + Calculator.Calculate($"({a})/(({b})+tan(({c})))"), + FunctionTests.PRECISION); } \ No newline at end of file diff --git a/SharpCalculator.Tests/FunctionTests.cs b/SharpCalculator.Tests/FunctionTests.cs index c59c083..5487b25 100644 --- a/SharpCalculator.Tests/FunctionTests.cs +++ b/SharpCalculator.Tests/FunctionTests.cs @@ -2,6 +2,8 @@ public class FunctionTests { + public const int PRECISION = 8; + public FunctionTests() { CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; @@ -12,32 +14,56 @@ public class FunctionTests [InlineData(1)] [InlineData(-3)] [InlineData(-2)] + [InlineData(Math.PI/4)] + [InlineData(Math.PI/2)] + [InlineData(Math.PI*3/4)] + [InlineData(Math.PI*2)] + [InlineData(999)] + [InlineData(-999)] public void Sin(double a) => - Assert.Equal(Math.Sin(a), Calculator.Calculate($"sin({a})")); + Assert.Equal(Math.Sin(a), Calculator.Calculate($"sin({a})"), PRECISION); [Theory] - [InlineData(0.9)] + [InlineData(5)] [InlineData(1)] [InlineData(-3)] [InlineData(-2)] + [InlineData(Math.PI/4)] + [InlineData(Math.PI/2)] + [InlineData(Math.PI*3/4)] + [InlineData(Math.PI*2)] + [InlineData(999)] + [InlineData(-999)] public void Cos(double a) => - Assert.Equal(Math.Cos(a), Calculator.Calculate($"cos({a})")); + Assert.Equal(Math.Cos(a), Calculator.Calculate($"cos({a})"), PRECISION); [Theory] - [InlineData(0.9)] + [InlineData(5)] [InlineData(1)] [InlineData(-3)] [InlineData(-2)] + [InlineData(Math.PI/4)] + [InlineData(Math.PI/1.99)] + [InlineData(Math.PI*3/4)] + [InlineData(Math.PI*1.99)] + [InlineData(999)] + [InlineData(-999)] public void Tan(double a) => - Assert.Equal(Math.Tan(a), Calculator.Calculate($"tan({a})")); + Assert.Equal(Math.Tan(a), Calculator.Calculate($"tan({a})"), PRECISION); [Theory] - [InlineData(0.9)] + [InlineData(5)] [InlineData(1)] [InlineData(-3)] [InlineData(-2)] + [InlineData(Math.PI/4)] + [InlineData(Math.PI/2)] + [InlineData(Math.PI*3/4)] + [InlineData(Math.PI*1.99)] + [InlineData(999)] + [InlineData(-999)] public void Ctg(double a) => - Assert.Equal(1 / Math.Tan(a), Calculator.Calculate($"ctg({a})")); + Assert.Equal(1 / Math.Tan(a), Calculator.Calculate($"ctg({a})"), PRECISION); [Theory] [InlineData(0.9)] @@ -45,7 +71,7 @@ public class FunctionTests [InlineData(-3)] [InlineData(-2)] public void Asin(double a) => - Assert.Equal( Math.Asin(a), Calculator.Calculate($"asin({a})")); + Assert.Equal( Math.Asin(a), Calculator.Calculate($"asin({a})"), PRECISION); [Theory] [InlineData(0.9)] @@ -53,7 +79,7 @@ public class FunctionTests [InlineData(-3)] [InlineData(-2)] public void Acos(double a) => - Assert.Equal( Math.Acos(a), Calculator.Calculate($"acos({a})")); + Assert.Equal( Math.Acos(a), Calculator.Calculate($"acos({a})"), PRECISION); [Theory] [InlineData(0.9)] @@ -61,7 +87,7 @@ public class FunctionTests [InlineData(-3)] [InlineData(-2)] public void Atan(double a) => - Assert.Equal( Math.Atan(a), Calculator.Calculate($"atan({a})")); + Assert.Equal( Math.Atan(a), Calculator.Calculate($"atan({a})"), PRECISION); [Theory] [InlineData(0.9)] @@ -69,7 +95,7 @@ public class FunctionTests [InlineData(-3)] [InlineData(-2)] public void Actg(double a) => - Assert.Equal( Math.Atan(1 / a), Calculator.Calculate($"actg({a})")); + Assert.Equal( Math.Atan(1 / a), Calculator.Calculate($"actg({a})"), PRECISION); [Theory] [InlineData(0.9)] @@ -77,5 +103,5 @@ public class FunctionTests [InlineData(-3)] [InlineData(-2)] public void Ln(double a) => - Assert.Equal( Math.Log(a), Calculator.Calculate($"ln({a})")); + Assert.Equal( Math.Log(a), Calculator.Calculate($"ln({a})"), PRECISION); } \ No newline at end of file