Skip to content

Commit 7220ca0

Browse files
authored
hotfix/tendency-to-throw-in-vectorization (#37)
* adds test * adds test * adds zero support * switchs reference of GenericSpecializationGenerator into via NuGet * adds type checks * adds type guard * fixes script
1 parent 22f639c commit 7220ca0

37 files changed

+2285
-939
lines changed

.gitmodules

Lines changed: 0 additions & 3 deletions
This file was deleted.

Measure-Coverage.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
$currentDir = Get-Location
33
try {
44
Set-Location $PSScriptRoot
5-
5+
66
# install reportgenerator if not installed
77
if(dotnet tool list --tool-path .dotnet/ `
88
| Select-String dotnet-reportgenerator-globaltool) {
@@ -15,7 +15,7 @@ try {
1515
Get-ChildItem -Directory src/*.Test*/TestResults/* | Remove-Item -Recurse
1616

1717
# test and measure coverage
18-
dotnet test src/SmartVectorDotNet.sln --collect:"XPlat Code Coverage"
18+
dotnet test src/SmartVectorDotNet.slnx --collect:"XPlat Code Coverage"
1919

2020
# export HTML coverage report
2121
Get-ChildItem src/*.Test*/TestResults/*/coverage.cobertura.xml `

src/SmartVectorDotNet.Test/AssertEx.cs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,52 @@ public static void Equal<T>(T expected, T actual, string message)
2121
Assert.Fail($"{message}\r\n expected: {expected}\r\n acutual: {actual}");
2222
}
2323
}
24+
25+
[DebuggerHidden]
26+
#if NET6_0_OR_GREATER
27+
[StackTraceHidden]
28+
#endif
29+
public static void SameBehavior<T>(Func<T> expected, Func<T> actual)
30+
{
31+
bool expectedIsFailed = false;
32+
bool actualIsFailed = false;
33+
T expectedResult = default!;
34+
T actualResult = default!;
35+
Exception expectedError = default!;
36+
Exception actualError = default!;
37+
try
38+
{
39+
expectedResult = expected();
40+
}
41+
catch(Exception exc)
42+
{
43+
expectedIsFailed = true;
44+
expectedError = exc;
45+
}
46+
try
47+
{
48+
actualResult = actual();
49+
}
50+
catch (Exception exc)
51+
{
52+
actualIsFailed = true;
53+
actualError = exc;
54+
}
55+
56+
switch((expectedIsFailed, actualIsFailed))
57+
{
58+
case (true, false):
59+
Assert.Fail($"Expected to fail but succeeded.\r\nexpected error: {expectedError.GetType()}");
60+
return;
61+
case (false, true):
62+
Assert.Fail($"Expected to succeed but failed.\r\nexpected value: {expectedResult}");
63+
return;
64+
case (true, true):
65+
Assert.Equal(expectedError.GetType(), actualError.GetType());
66+
return;
67+
case (false, false):
68+
Assert.Equal(expectedResult, actualResult);
69+
return;
70+
}
71+
}
2472
}

src/SmartVectorDotNet.Test/SmartVectorDotNet.Test.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
15-
<PackageReference Include="xunit" Version="2.9.2" />
16-
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
15+
<PackageReference Include="xunit" Version="2.9.3" />
16+
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.0">
1717
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1818
<PrivateAssets>all</PrivateAssets>
1919
</PackageReference>
20-
<PackageReference Include="coverlet.collector" Version="6.0.2">
20+
<PackageReference Include="coverlet.collector" Version="6.0.4">
2121
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2222
<PrivateAssets>all</PrivateAssets>
2323
</PackageReference>

0 commit comments

Comments
 (0)