unit tests
This commit is contained in:
parent
7cf49a5a1b
commit
19a1ddb334
29
SharpCalculator.Tests/ComplicatedExpressionTests.cs
Normal file
29
SharpCalculator.Tests/ComplicatedExpressionTests.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
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})))"));
|
||||||
|
|
||||||
|
[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})"));
|
||||||
|
|
||||||
|
[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})))"));
|
||||||
|
}
|
||||||
81
SharpCalculator.Tests/FunctionTests.cs
Normal file
81
SharpCalculator.Tests/FunctionTests.cs
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
namespace SharpCalculator.Tests;
|
||||||
|
|
||||||
|
public class FunctionTests
|
||||||
|
{
|
||||||
|
public FunctionTests()
|
||||||
|
{
|
||||||
|
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(5)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Sin(double a) =>
|
||||||
|
Assert.Equal(Math.Sin(a), Calculator.Calculate($"sin({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Cos(double a) =>
|
||||||
|
Assert.Equal(Math.Cos(a), Calculator.Calculate($"cos({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Tan(double a) =>
|
||||||
|
Assert.Equal(Math.Tan(a), Calculator.Calculate($"tan({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Ctg(double a) =>
|
||||||
|
Assert.Equal(1 / Math.Tan(a), Calculator.Calculate($"ctg({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Asin(double a) =>
|
||||||
|
Assert.Equal( Math.Asin(a), Calculator.Calculate($"asin({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Acos(double a) =>
|
||||||
|
Assert.Equal( Math.Acos(a), Calculator.Calculate($"acos({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Atan(double a) =>
|
||||||
|
Assert.Equal( Math.Atan(a), Calculator.Calculate($"atan({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Actg(double a) =>
|
||||||
|
Assert.Equal( Math.Atan(1 / a), Calculator.Calculate($"actg({a})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(0.9)]
|
||||||
|
[InlineData(1)]
|
||||||
|
[InlineData(-3)]
|
||||||
|
[InlineData(-2)]
|
||||||
|
public void Ln(double a) =>
|
||||||
|
Assert.Equal( Math.Log(a), Calculator.Calculate($"ln({a})"));
|
||||||
|
}
|
||||||
4
SharpCalculator.Tests/GlobalUsings.cs
Normal file
4
SharpCalculator.Tests/GlobalUsings.cs
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
global using System;
|
||||||
|
global using System.Globalization;
|
||||||
|
global using Xunit;
|
||||||
|
global using FusionCalculator;
|
||||||
57
SharpCalculator.Tests/OperatorTests.cs
Normal file
57
SharpCalculator.Tests/OperatorTests.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
namespace SharpCalculator.Tests;
|
||||||
|
|
||||||
|
public class OperatorTests
|
||||||
|
{
|
||||||
|
public OperatorTests()
|
||||||
|
{
|
||||||
|
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(15,5)]
|
||||||
|
[InlineData(13,-6)]
|
||||||
|
[InlineData(-1,-6)]
|
||||||
|
[InlineData(-13,6)]
|
||||||
|
public void Sum(double a,double b) =>
|
||||||
|
Assert.Equal(a+b, Calculator.Calculate($"({a})+({b})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(15,5)]
|
||||||
|
[InlineData(13,-6)]
|
||||||
|
[InlineData(-1,-6)]
|
||||||
|
[InlineData(-13,6)]
|
||||||
|
public void Subtract(double a,double b) =>
|
||||||
|
Assert.Equal(a-b, Calculator.Calculate($"({a})-({b})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(15,5)]
|
||||||
|
[InlineData(13,-6)]
|
||||||
|
[InlineData(-1,-6)]
|
||||||
|
[InlineData(-13,6)]
|
||||||
|
public void Multiplying(double a,double b) =>
|
||||||
|
Assert.Equal(a*b, Calculator.Calculate($"({a})*({b})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(15,5)]
|
||||||
|
[InlineData(24,-6)]
|
||||||
|
[InlineData(-12,-6)]
|
||||||
|
[InlineData(-36,6)]
|
||||||
|
public void Dividing(double a,double b) =>
|
||||||
|
Assert.Equal(a/b, Calculator.Calculate($"({a})/({b})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(2,5)]
|
||||||
|
[InlineData(1,-1)]
|
||||||
|
[InlineData(-3,-4)]
|
||||||
|
[InlineData(-2,2)]
|
||||||
|
public void Power(double a,double b) =>
|
||||||
|
Assert.Equal(Math.Pow(a,b), Calculator.Calculate($"({a})^({b})"));
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(5,2)]
|
||||||
|
[InlineData(1,-1)]
|
||||||
|
[InlineData(-3,-2)]
|
||||||
|
[InlineData(-2,2)]
|
||||||
|
public void Mod(double a,double b) =>
|
||||||
|
Assert.Equal( a%b, Calculator.Calculate($"({a})%({b})"));
|
||||||
|
}
|
||||||
28
SharpCalculator.Tests/SharpCalculator.Tests.csproj
Normal file
28
SharpCalculator.Tests/SharpCalculator.Tests.csproj
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<ImplicitUsings>disable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<IsPackable>false</IsPackable>
|
||||||
|
<IsTestProject>true</IsTestProject>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||||
|
<PackageReference Include="xunit" Version="2.6.4" />
|
||||||
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.6">
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
</PackageReference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\FusionCalculator\FusionCalculator.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@ -11,6 +11,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution_items", "solution_
|
|||||||
README.md = README.md
|
README.md = README.md
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpCalculator.Tests", "SharpCalculator.Tests\SharpCalculator.Tests.csproj", "{E929E48D-D11B-4FB5-AC6F-D0D50E2B3BD1}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -25,5 +27,9 @@ Global
|
|||||||
{8EA39217-DEBD-493B-A19C-5505B58E03FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{8EA39217-DEBD-493B-A19C-5505B58E03FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{8EA39217-DEBD-493B-A19C-5505B58E03FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{8EA39217-DEBD-493B-A19C-5505B58E03FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{8EA39217-DEBD-493B-A19C-5505B58E03FA}.Release|Any CPU.Build.0 = Release|Any CPU
|
{8EA39217-DEBD-493B-A19C-5505B58E03FA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E929E48D-D11B-4FB5-AC6F-D0D50E2B3BD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E929E48D-D11B-4FB5-AC6F-D0D50E2B3BD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E929E48D-D11B-4FB5-AC6F-D0D50E2B3BD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E929E48D-D11B-4FB5-AC6F-D0D50E2B3BD1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user