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
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpCalculator.Tests", "SharpCalculator.Tests\SharpCalculator.Tests.csproj", "{E929E48D-D11B-4FB5-AC6F-D0D50E2B3BD1}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
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}.Release|Any CPU.ActiveCfg = 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
|
||||
EndGlobal
|
||||
|
||||
Loading…
Reference in New Issue
Block a user