Added Unit Tests

This commit is contained in:
2023-04-20 16:56:41 +02:00
parent d4e217efad
commit 93abb5d308
6 changed files with 82 additions and 7 deletions

4
.gitignore vendored
View File

@ -1,5 +1,5 @@
Elwig/obj/
Elwig/bin/
obj/
bin/
*.user
.vs
.idea

View File

@ -1,10 +1,11 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32929.385
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elwig", "Elwig\Elwig.csproj", "{00868460-16F6-4B48-AA9B-998F6263693B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{AF4B84F8-08E6-409C-9E94-D7D990469597}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -15,6 +16,10 @@ Global
{00868460-16F6-4B48-AA9B-998F6263693B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00868460-16F6-4B48-AA9B-998F6263693B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{00868460-16F6-4B48-AA9B-998F6263693B}.Release|Any CPU.Build.0 = Release|Any CPU
{AF4B84F8-08E6-409C-9E94-D7D990469597}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AF4B84F8-08E6-409C-9E94-D7D990469597}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AF4B84F8-08E6-409C-9E94-D7D990469597}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF4B84F8-08E6-409C-9E94-D7D990469597}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -108,17 +108,17 @@ namespace Elwig.Helpers {
}
public static double OeToKmw(double oe) {
return Math.Round((-4.54 + Math.Sqrt(4.54 * 4.54 - 4 * 0.022 * -oe)) / 2 * 0.022, 1);
return Math.Round((-4.54 + Math.Sqrt(4.54 * 4.54 - 4 * 0.022 * -oe)) / (2 * 0.022), 1);
}
public static decimal DecFromDb(long value, byte precision) {
bool neg = value < 0;
if (neg) value = -value;
return new decimal((int)(value & 0xFFFFFFFF), (int)((value >> 32) & 0x7FFFFFFF), 0, neg, precision);
return new((int)(value & 0xFFFFFFFF), (int)((value >> 32) & 0x7FFFFFFF), 0, neg, precision);
}
public static long DecToDb(decimal value, byte precision) {
return (long)decimal.Round(value * precision, 0);
return (long)decimal.Round(value * (decimal)Math.Pow(10, precision), 0);
}
}
}

46
Tests/HelpersUtilsTest.cs Normal file
View File

@ -0,0 +1,46 @@
using Elwig.Helpers;
namespace Tests {
[TestClass]
public class HelpersUtilsTest {
private static readonly double[,] Gradation = new double[,] {
{ 14.0, 68.0 },
{ 15.0, 73.0 },
{ 17.1, 84.0 },
{ 19.0, 94.0 },
{ 21.0, 105.0 },
{ 25.0, 127.0 },
{ 27.1, 139.0 },
{ 30.0, 156.0 },
};
[TestMethod]
public void Test_KmwToOe() {
for (int i = 0; i < Gradation.GetLength(0); i++) {
Assert.AreEqual(Gradation[i, 1], Utils.KmwToOe(Gradation[i, 0]));
}
}
[TestMethod]
public void Test_OeToKmw() {
for (int i = 0; i < Gradation.GetLength(0); i++) {
Assert.AreEqual(Gradation[i, 0], Utils.OeToKmw(Gradation[i, 1]));
}
}
[TestMethod]
public void Test_DecFromDb() {
Assert.AreEqual(10.67M, Utils.DecFromDb(10670, 3));
Assert.AreEqual(-100.9999M, Utils.DecFromDb(-1009999, 4));
Assert.AreEqual(0.01M, Utils.DecFromDb(1, 2));
}
[TestMethod]
public void Test_DecToDb() {
Assert.AreEqual(21948, Utils.DecToDb(219.48M, 2));
Assert.AreEqual(-12345, Utils.DecToDb(-1.2345M, 4));
Assert.AreEqual(99190, Utils.DecToDb(99190, 0));
}
}
}

23
Tests/Tests.csproj Normal file
View File

@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
<PackageReference Include="coverlet.collector" Version="3.1.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Elwig\Elwig.csproj" />
</ItemGroup>
</Project>

1
Tests/Usings.cs Normal file
View File

@ -0,0 +1 @@
global using Microsoft.VisualStudio.TestTools.UnitTesting;