TUnit.Engine 0.1.971

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package TUnit.Engine --version 0.1.971                
NuGet\Install-Package TUnit.Engine -Version 0.1.971                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TUnit.Engine" Version="0.1.971" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TUnit.Engine --version 0.1.971                
#r "nuget: TUnit.Engine, 0.1.971"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TUnit.Engine as a Cake Addin
#addin nuget:?package=TUnit.Engine&version=0.1.971

// Install TUnit.Engine as a Cake Tool
#tool nuget:?package=TUnit.Engine&version=0.1.971                

TUnit

<a href="https://trendshift.io/repositories/11781" target="_blank"><img src="https://trendshift.io/api/badge/repositories/11781" alt="thomhurst%2FTUnit | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

A modern, flexible and fast testing framework for .NET 8 and up. With Native AOT and Trimmed Single File application support included!

TUnit is designed to aid with all testing types:

  • Unit
  • Integration
  • Acceptance
  • and more!

GitHub Repo stars GitHub Sponsors nuget NuGet Downloads GitHub Workflow Status (with event) GitHub last commit (branch) License

Documentation

See here: https://thomhurst.github.io/TUnit/

IDE

TUnit is built on top of the newer Microsoft.Testing.Platform, as opposed to the older VSTest platform. Because the infrastructure behind the scenes is new and different, you may need to enable some settings. This should just be a one time thing.

Visual Studio

Visual Studio is supported on the Preview version currently.

  • Install the latest preview version
  • Open Visual Studio and go to Tools > Manage Preview Features
  • Enable "Use testing platform server mode"

<img src="/docs/static/img/visual-studio.png" height="300px">

Rider

Rider is supported. The Enable Testing Platform support option must be selected in Settings > Build, Execution, Deployment > Unit Testing > VSTest.

<img src="/docs/static/img/rider.png" height="300px">

VS Code

Visual Studio Code is supported.

  • Install the extension Name: C# Dev Kit
  • Go to the C# Dev Kit extension's settings
  • Enable Dotnet > Test Window > Use Testing Platform Protocol

<img src="/docs/static/img/visual-studio-code.png" height="300px">

CLI

dotnet CLI - Fully supported. Tests should be runnable with dotnet test, dotnet run, dotnet exec or executing an executable directly. See the docs for more information!

Features

  • Native AOT / Trimmed Single File application support
  • Source generated tests
  • Property injection
  • Full async support
  • Parallel by default, with mechanisms to:
    • Run specific tests completely on their own
    • Run specific tests not in parallel with other specific tests
    • Limit the parallel limit on a per-test, class or assembly level
  • Tests can depend on other tests to form chains, useful for if one test depends on state from another action. While not recommended for unit tests, this can be useful in integration testing where state matters
  • Easy to read assertions - though you're also free to use whichever assertion library you like
  • Injectable test data via classes, methods, compile-time args, or matrices
  • Hooks before and after:
    • TestDiscover
    • TestSession
    • Assembly
    • Class
    • Test
  • Designed to avoid common pitfalls such as leaky test states
  • Dependency injection support (See here)
  • Ability to view and interrogate metadata and results from various assembly/class/test context objects

Installation

dotnet add package TUnit --prerelease

Example test

    private static readonly TimeOnly Midnight = TimeOnly.FromTimeSpan(TimeSpan.Zero);
    private static readonly TimeOnly Noon = TimeOnly.FromTimeSpan(TimeSpan.FromHours(12));
    
    [Test]
    public async Task IsMorning()
    {
        var time = GetTime();

        await Assert.That(time).IsAfterOrEqualTo(Midnight)
            .And.IsBefore(Noon);
    }

or with more complex test orchestration needs

    [Before(Class)]
    public static async Task ClearDatabase(ClassHookContext context) { ... }

    [After(Class)]
    public static async Task AssertDatabaseIsAsExpected(ClassHookContext context) { ... }

    [Before(Test)]
    public async Task CreatePlaywrightBrowser(TestContext context) { ... }

    [After(Test)]
    public async Task DisposePlaywrightBrowser(TestContext context) { ... }

    [Retry(3)]
    [Test, DisplayName("Register an account")]
    [MethodData(nameof(GetAuthDetails))]
    public async Task Register(string username, string password) { ... }

    [Repeat(5)]
    [Test, DependsOn(nameof(Register))]
    [MethodData(nameof(GetAuthDetails))]
    public async Task Login(string username, string password) { ... }

    [Test, DependsOn(nameof(Login), [typeof(string), typeof(string)])]
    [MethodData(nameof(GetAuthDetails))]
    public async Task DeleteAccount(string username, string password) { ... }

    [Category("Downloads")]
    [Timeout(300_000)]
    [Test, NotInParallel(Order = 1)]
    public async Task DownloadFile1() { ... }

    [Category("Downloads")]
    [Timeout(300_000)]
    [Test, NotInParallel(Order = 2)]
    public async Task DownloadFile2() { ... }

    [Repeat(10)]
    [Test]
    [Arguments(1)]
    [Arguments(2)]
    [Arguments(3)]
    [DisplayName("Go to the page numbered $page")]
    public async Task GoToPage(int page) { ... }

    [Category("Cookies")]
    [Test, Skip("Not yet built!")]
    public async Task CheckCookies() { ... }

    [Test, Explicit, WindowsOnlyTest, RetryHttpServiceUnavailable(5)]
    [Property("Some Key", "Some Value")]
    public async Task Ping() { ... }

    [Test]
    [ParallelLimit<LoadTestParallelLimit>]
    [Repeat(1000)]
    public async Task LoadHomepage() { ... }

    public static IEnumerable<(string Username, string Password)> GetAuthDetails()
    {
        yield return ("user1", "password1");
        yield return ("user2", "password2");
        yield return ("user3", "password3");
    }

    public class WindowsOnlyTestAttribute : SkipAttribute
    {
        public WindowsOnlyTestAttribute() : base("Windows only test")
        {
        }

        public override Task<bool> ShouldSkip(TestContext testContext)
        {
            return Task.FromResult(!OperatingSystem.IsWindows());
        }
    }

    public class RetryHttpServiceUnavailableAttribute : RetryAttribute
    {
        public RetryHttpServiceUnavailableAttribute(int times) : base(times)
        {
        }

        public override Task<bool> ShouldRetry(TestInformation testInformation, Exception exception, int currentRetryCount)
        {
            return Task.FromResult(exception is HttpRequestException { StatusCode: HttpStatusCode.ServiceUnavailable });
        }
    }

    public class LoadTestParallelLimit : IParallelLimit
    {
        public int Limit => 50;
    }

Motivations

TUnit is inspired by NUnit and xUnit - two of the most popular testing frameworks for .NET.

It aims to build upon the useful features of both while trying to address any pain points that they may have.

Read more here

Prerelease

You'll notice that version 1.0 isn't out yet. While this framework is mostly feature complete, I'm waiting for a few things:

  • Full Rider support for all features
  • Full VS support for all features
  • Open to feedback on existing features
  • Open to ideas on new features

As such, the API may change. I'll try to limit this but it's a possibility.

Benchmark

Scenario: Building the test project

macos-latest

BenchmarkDotNet v0.14.0, macOS Sonoma 14.6.1 (23G93) [Darwin 23.6.0]
Apple M1 (Virtual), 1 CPU, 3 logical and 3 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), Arm64 RyuJIT AdvSIMD
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), Arm64 RyuJIT AdvSIMD

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
Build_TUnit 864.1 ms 14.97 ms 22.87 ms
Build_NUnit 783.0 ms 12.44 ms 10.39 ms
Build_xUnit 802.8 ms 12.07 ms 11.29 ms
Build_MSTest 836.6 ms 16.10 ms 14.27 ms
ubuntu-latest

BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
Build_TUnit 1.620 s 0.0231 s 0.0205 s
Build_NUnit 1.470 s 0.0137 s 0.0128 s
Build_xUnit 1.509 s 0.0302 s 0.0310 s
Build_MSTest 1.547 s 0.0136 s 0.0127 s
windows-latest

BenchmarkDotNet v0.14.0, Windows 10 (10.0.20348.2700) (Hyper-V)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
Build_TUnit 1.676 s 0.0331 s 0.0368 s
Build_NUnit 1.541 s 0.0188 s 0.0167 s
Build_xUnit 1.551 s 0.0238 s 0.0223 s
Build_MSTest 1.596 s 0.0221 s 0.0206 s

Scenario: A single test that completes instantly (including spawning a new process and initialising the test framework)

macos-latest

BenchmarkDotNet v0.14.0, macOS Sonoma 14.6.1 (23G93) [Darwin 23.6.0]
Apple M1 (Virtual), 1 CPU, 3 logical and 3 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), Arm64 RyuJIT AdvSIMD
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), Arm64 RyuJIT AdvSIMD

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev Median
TUnit_AOT 72.59 ms 0.760 ms 0.634 ms 72.85 ms
TUnit 477.23 ms 8.892 ms 9.514 ms 477.27 ms
NUnit 730.88 ms 15.161 ms 44.704 ms 711.71 ms
xUnit 692.09 ms 7.143 ms 6.682 ms 691.47 ms
MSTest 642.30 ms 12.468 ms 19.040 ms 636.46 ms
ubuntu-latest

BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
TUnit_AOT 47.14 ms 1.021 ms 3.011 ms
TUnit 812.26 ms 16.226 ms 15.178 ms
NUnit 1,428.24 ms 18.442 ms 16.348 ms
xUnit 1,420.53 ms 23.548 ms 22.027 ms
MSTest 1,290.59 ms 21.490 ms 20.102 ms
windows-latest

BenchmarkDotNet v0.14.0, Windows 10 (10.0.20348.2700) (Hyper-V)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
TUnit_AOT 77.96 ms 0.111 ms 0.092 ms
TUnit 772.48 ms 15.098 ms 24.380 ms
NUnit 1,320.40 ms 12.634 ms 11.200 ms
xUnit 1,294.79 ms 12.911 ms 12.077 ms
MSTest 1,172.54 ms 11.636 ms 10.884 ms

Scenario: A test that takes 50ms to execute, repeated 100 times (including spawning a new process and initialising the test framework)

macos-latest

BenchmarkDotNet v0.14.0, macOS Sonoma 14.6.1 (23G93) [Darwin 23.6.0]
Apple M1 (Virtual), 1 CPU, 3 logical and 3 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), Arm64 RyuJIT AdvSIMD
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), Arm64 RyuJIT AdvSIMD

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
TUnit_AOT 239.3 ms 14.41 ms 42.05 ms
TUnit 664.5 ms 24.11 ms 71.10 ms
NUnit 14,172.9 ms 278.35 ms 501.92 ms
xUnit 14,610.1 ms 291.12 ms 626.67 ms
MSTest 14,515.7 ms 287.35 ms 455.77 ms
ubuntu-latest

BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
TUnit_AOT 99.41 ms 1.961 ms 3.277 ms
TUnit 836.75 ms 13.147 ms 12.298 ms
NUnit 6,333.96 ms 14.837 ms 13.878 ms
xUnit 6,414.05 ms 13.483 ms 12.612 ms
MSTest 6,313.35 ms 18.358 ms 17.172 ms
windows-latest

BenchmarkDotNet v0.14.0, Windows 10 (10.0.20348.2700) (Hyper-V)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 9.0.100-rc.1.24452.12
  [Host]   : .NET 9.0.0 (9.0.24.43107), X64 RyuJIT AVX2
  .NET 8.0 : .NET 8.0.8 (8.0.824.36612), X64 RyuJIT AVX2

Job=.NET 8.0  Runtime=.NET 8.0  

Method Mean Error StdDev
TUnit_AOT 141.1 ms 2.60 ms 2.43 ms
TUnit 844.4 ms 16.71 ms 25.52 ms
NUnit 7,547.9 ms 21.36 ms 19.98 ms
xUnit 7,534.8 ms 30.32 ms 28.36 ms
MSTest 7,492.7 ms 21.61 ms 20.22 ms
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on TUnit.Engine:

Package Downloads
TUnit

A .NET Testing Framework

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.4.1 427 11/24/2024
0.4.0 55 11/24/2024
0.3.43 444 11/22/2024
0.3.34 1,756 11/19/2024
0.3.31 693 11/18/2024
0.3.30 129 11/18/2024
0.3.29 322 11/18/2024
0.3.25 323 11/17/2024
0.3.20 218 11/17/2024
0.3.14 253 11/17/2024
0.3.12 102 11/16/2024
0.3.3 103 11/16/2024
0.3.0 98 11/16/2024
0.2.212 1,904 11/11/2024
0.2.210 120 11/11/2024
0.2.208 122 11/11/2024
0.2.206 102 11/11/2024
0.2.202 813 11/9/2024
0.2.195 1,070 11/6/2024
0.2.193 526 11/5/2024
0.2.191 125 11/5/2024
0.2.187 1,692 11/4/2024
0.2.185 96 11/4/2024
0.2.181 846 11/2/2024
0.2.180 102 11/2/2024
0.2.176 759 11/1/2024
0.2.175 141 11/1/2024
0.2.169 543 10/31/2024
0.2.168 159 10/31/2024
0.2.167 220 10/31/2024
0.2.164 306 10/31/2024
0.2.161 210 10/31/2024
0.2.145 683 10/30/2024
0.2.141 155 10/30/2024
0.2.131 364 10/29/2024
0.2.128 132 10/29/2024
0.2.126 117 10/29/2024
0.2.120 208 10/29/2024
0.2.119 143 10/29/2024
0.2.112 300 10/29/2024
0.2.107 354 10/29/2024
0.2.106 98 10/29/2024
0.2.105 101 10/29/2024
0.2.103 140 10/29/2024
0.2.100 140 10/29/2024
0.2.86 397 10/29/2024
0.2.85 110 10/28/2024
0.2.82 135 10/28/2024
0.2.80 134 10/28/2024
0.2.63 849 10/27/2024
0.2.60 138 10/27/2024
0.2.55 154 10/27/2024
0.2.54 77 10/27/2024
0.2.52 103 10/27/2024
0.2.49 123 10/27/2024
0.2.48 116 10/27/2024
0.2.43 138 10/27/2024
0.2.34 200 10/26/2024
0.2.30 133 10/26/2024
0.2.26 131 10/26/2024
0.2.15 328 10/25/2024
0.2.11 247 10/25/2024
0.2.10 115 10/25/2024
0.2.7 134 10/25/2024
0.2.5 114 10/25/2024
0.2.3 109 10/25/2024
0.2.2 129 10/25/2024
0.2.1 230 10/25/2024
0.1.1099 3,393 10/21/2024
0.1.1097 125 10/21/2024
0.1.1096 295 10/20/2024
0.1.1094 136 10/20/2024
0.1.1090 149 10/20/2024
0.1.1089 121 10/19/2024
0.1.1086 125 10/19/2024
0.1.1085 132 10/19/2024
0.1.1082 188 10/19/2024
0.1.1079 131 10/19/2024
0.1.1076 394 10/19/2024
0.1.1071 212 10/18/2024
0.1.1066 151 10/18/2024
0.1.1065 331 10/17/2024
0.1.1063 108 10/17/2024
0.1.1061 155 10/17/2024
0.1.1056 292 10/16/2024
0.1.1051 913 10/16/2024
0.1.1043 325 10/15/2024
0.1.1039 192 10/15/2024
0.1.1033 538 10/13/2024
0.1.1030 155 10/13/2024
0.1.1022 488 10/12/2024
0.1.1019 105 10/12/2024
0.1.1010 1,502 10/11/2024
0.1.1007 109 10/11/2024
0.1.998 413 10/10/2024
0.1.997 116 10/10/2024
0.1.984 734 10/7/2024
0.1.980 103 10/7/2024
0.1.971 429 10/7/2024
0.1.966 358 10/7/2024
0.1.962 87 10/6/2024
0.1.961 98 10/6/2024
0.1.958 103 10/6/2024
0.1.954 96 10/6/2024
0.1.949 121 10/6/2024
0.1.942 293 10/5/2024
0.1.939 96 10/5/2024
0.1.937 110 10/5/2024
0.1.934 89 10/5/2024
0.1.931 132 10/5/2024
0.1.928 567 10/4/2024
0.1.923 605 10/4/2024
0.1.916 240 10/3/2024
0.1.911 255 10/3/2024
0.1.897 2,594 10/2/2024
0.1.894 105 10/2/2024
0.1.891 218 10/2/2024
0.1.885 370 10/1/2024
0.1.877 572 9/29/2024
0.1.872 95 9/29/2024
0.1.869 119 9/29/2024
0.1.864 446 9/28/2024
0.1.863 103 9/28/2024
0.1.857 202 9/28/2024
0.1.842 387 9/26/2024
0.1.827 551 9/25/2024
0.1.818 661 9/24/2024
0.1.817 660 9/24/2024
0.1.816 90 9/24/2024
0.1.812 503 9/23/2024
0.1.807 349 9/23/2024
0.1.804 627 9/22/2024
0.1.801 116 9/22/2024
0.1.797 100 9/22/2024
0.1.793 507 9/21/2024
0.1.791 85 9/21/2024
0.1.790 155 9/21/2024
0.1.783 574 9/20/2024
0.1.773 669 9/20/2024
0.1.767 292 9/19/2024
0.1.763 216 9/19/2024
0.1.762 104 9/19/2024
0.1.759 112 9/19/2024
0.1.752 534 9/18/2024
0.1.741 383 9/17/2024
0.1.738 296 9/16/2024
0.1.732 388 9/16/2024
0.1.720 313 9/15/2024
0.1.716 135 9/15/2024
0.1.714 124 9/15/2024
0.1.711 109 9/15/2024
0.1.703 294 9/14/2024
0.1.697 184 9/14/2024
0.1.691 282 9/13/2024
0.1.686 146 9/13/2024
0.1.672 364 9/12/2024
0.1.667 181 9/11/2024
0.1.664 132 9/11/2024
0.1.653 185 9/11/2024
0.1.639 263 9/10/2024
0.1.634 121 9/10/2024
0.1.623 255 9/7/2024
0.1.600 519 9/6/2024
0.1.582 276 9/5/2024
0.1.578 68 9/5/2024
0.1.575 71 9/4/2024
0.1.518 297 9/2/2024
0.1.512 1,089 8/30/2024
0.1.508 65 8/29/2024
0.1.506 144 8/28/2024
0.1.505 83 8/28/2024
0.1.504 58 8/28/2024
0.1.503 114 8/27/2024
0.1.502 77 8/27/2024
0.1.497 60 8/27/2024
0.1.495 64 8/27/2024
0.1.492 125 8/16/2024
0.1.491 107 8/15/2024
0.1.486 111 8/9/2024
0.1.481 246 8/8/2024
0.1.479 113 8/8/2024
0.1.476 480 8/7/2024
0.1.474 104 8/7/2024
0.1.472 99 8/7/2024
0.1.471 119 8/7/2024
0.1.470 96 8/7/2024
0.1.469 103 8/7/2024
0.1.467 104 8/7/2024
0.1.465 91 8/7/2024
0.1.460 111 8/6/2024
0.1.459 77 8/6/2024
0.1.458 90 8/5/2024
0.1.457 96 8/1/2024
0.1.456 88 8/1/2024
0.1.455 73 7/31/2024
0.1.454 62 7/30/2024
0.1.442 365 7/13/2024
0.1.441 63 7/13/2024
0.1.440 59 7/13/2024
0.1.439 77 7/13/2024
0.1.438 113 7/12/2024
0.1.434 64 7/12/2024
0.1.433 57 7/12/2024
0.1.430 223 7/11/2024
0.1.428 67 7/10/2024
0.1.424 378 7/9/2024
0.1.423-alpha01 54 7/9/2024
0.1.422-alpha01 52 7/7/2024
0.1.420-alpha01 51 7/7/2024
0.1.419-alpha01 55 7/7/2024
0.1.418-alpha01 47 7/7/2024
0.1.417-alpha01 53 7/7/2024
0.1.416-alpha01 51 7/7/2024
0.1.413-alpha01 46 7/7/2024
0.1.412-alpha01 55 7/7/2024
0.1.411-alpha01 59 7/6/2024
0.1.410-alpha01 56 7/6/2024
0.1.409-alpha01 57 7/5/2024
0.1.407-alpha01 59 7/5/2024
0.1.406-alpha01 65 7/5/2024
0.1.405-alpha01 56 7/5/2024
0.1.404-alpha01 57 7/5/2024
0.1.403-alpha01 48 7/5/2024
0.1.402-alpha01 50 7/5/2024
0.1.401-alpha01 136 7/5/2024
0.1.398-alpha01 51 7/5/2024
0.1.397-alpha01 55 7/4/2024
0.1.395-alpha01 60 7/2/2024
0.1.394-alpha01 54 7/1/2024
0.1.392-alpha01 51 6/30/2024
0.1.391-alpha01 54 6/30/2024
0.1.390-alpha01 49 6/30/2024
0.1.389-alpha01 49 6/30/2024
0.1.386-alpha01 50 6/30/2024
0.1.385-alpha01 48 6/30/2024
0.1.384-alpha01 51 6/30/2024
0.1.383-alpha01 48 6/30/2024
0.1.382-alpha01 59 6/28/2024
0.1.381-alpha01 56 6/26/2024
0.1.380-alpha01 50 6/26/2024
0.1.379-alpha01 166 6/26/2024
0.1.378-alpha01 49 6/26/2024
0.1.377-alpha01 51 6/26/2024
0.1.376-alpha01 55 6/26/2024
0.1.375-alpha01 56 6/25/2024
0.1.374-alpha01 58 6/25/2024
0.1.373-alpha01 59 6/24/2024
0.1.372-alpha01 57 6/24/2024
0.1.371-alpha01 40 6/23/2024
0.1.370-alpha01 56 6/21/2024
0.1.369-alpha01 62 6/21/2024
0.1.368-alpha01 47 6/21/2024
0.1.367-alpha01 61 6/21/2024
0.1.366-alpha01 54 6/21/2024
0.1.365-alpha01 64 6/20/2024
0.1.364-alpha01 49 6/19/2024
0.1.363-alpha01 61 6/19/2024
0.1.362-alpha01 59 6/18/2024
0.1.361-alpha01 56 6/18/2024
0.1.360-alpha01 55 6/18/2024
0.1.359-alpha01 52 6/17/2024
0.1.358-alpha01 50 6/17/2024
0.1.357-alpha01 57 6/16/2024
0.1.356-alpha01 58 6/16/2024
0.1.355-alpha01 52 6/16/2024
0.1.354-alpha01 61 6/16/2024
0.1.353-alpha01 64 6/16/2024
0.1.352-alpha01 68 6/16/2024
0.1.351-alpha01 71 6/14/2024
0.1.350-alpha01 166 6/14/2024
0.1.349-alpha01 67 6/13/2024
0.1.347-alpha01 58 6/12/2024
0.1.346-alpha01 62 6/12/2024
0.1.343-alpha01 64 6/12/2024
0.1.342-alpha01 57 6/12/2024
0.1.341-alpha01 53 6/11/2024
0.1.340-alpha01 59 6/11/2024
0.1.338-alpha01 57 6/11/2024
0.1.336-alpha01 59 6/11/2024
0.1.335-alpha01 55 6/11/2024
0.1.334-alpha01 61 6/11/2024
0.1.333-alpha01 66 6/11/2024
0.1.332-alpha01 65 6/11/2024
0.1.331-alpha01 61 6/11/2024
0.1.330-alpha01 57 6/11/2024
0.1.329-alpha01 64 6/11/2024
0.1.328-alpha01 56 6/11/2024
0.1.327-alpha01 62 6/10/2024
0.1.326-alpha01 51 6/7/2024
0.1.325-alpha01 63 6/7/2024
0.1.324-alpha01 68 6/6/2024
0.1.323-alpha01 87 6/6/2024
0.1.322-alpha01 71 6/3/2024
0.1.321-alpha01 66 6/3/2024
0.1.320-alpha01 73 6/2/2024
0.1.319-alpha01 74 6/2/2024
0.1.318-alpha01 72 6/2/2024
0.1.317-alpha01 80 6/2/2024
0.1.316-alpha01 77 6/2/2024
0.1.315-alpha01 76 5/31/2024
0.1.314-alpha01 73 5/30/2024
0.1.313-alpha01 77 5/30/2024
0.1.312-alpha01 83 5/29/2024
0.1.311-alpha01 73 5/29/2024
0.1.310-alpha01 73 5/29/2024
0.1.309-alpha01 75 5/29/2024
0.1.308-alpha01 80 5/29/2024
0.1.307-alpha01 70 5/29/2024
0.1.306-alpha01 70 5/29/2024
0.1.305-alpha01 91 5/29/2024
0.1.303-alpha01 72 5/29/2024
0.1.302-alpha01 82 5/29/2024
0.1.301-alpha01 75 5/29/2024
0.1.300-alpha01 75 5/28/2024
0.1.299-alpha01 82 5/28/2024
0.1.298-alpha01 86 5/24/2024
0.1.297-alpha01 84 5/24/2024
0.1.296-alpha01 89 5/23/2024
0.1.295-alpha01 77 5/23/2024
0.1.294-alpha01 84 5/23/2024
0.1.293-alpha01 83 5/21/2024
0.1.292-alpha01 79 5/17/2024
0.1.291-alpha01 83 5/17/2024
0.1.290-alpha01 80 5/16/2024
0.1.289-alpha01 87 5/16/2024
0.1.288-alpha01 435 5/16/2024
0.1.287-alpha01 104 5/15/2024
0.1.286-alpha01 81 5/15/2024
0.1.285-alpha01 80 5/15/2024
0.1.284-alpha01 84 5/15/2024
0.1.283-alpha01 70 5/15/2024
0.1.282-alpha01 113 5/15/2024
0.1.281-alpha01 77 5/15/2024
0.1.280-alpha01 76 5/15/2024
0.1.279-alpha01 77 5/15/2024
0.1.278-alpha01 79 5/15/2024
0.1.277-alpha01 76 5/15/2024
0.1.276-alpha01 76 5/15/2024
0.1.275-alpha01 74 5/15/2024
0.1.274-alpha01 71 5/15/2024
0.1.273-alpha01 63 5/15/2024
0.1.272-alpha01 47 5/15/2024
0.1.271-alpha01 98 5/14/2024
0.1.270-alpha01 86 5/14/2024
0.1.269-alpha01 75 5/14/2024
0.1.267-alpha01 77 5/14/2024
0.1.266-alpha01 67 5/14/2024
0.1.265-alpha01 73 5/14/2024
0.1.264-alpha01 76 5/14/2024
0.1.263-alpha01 74 5/14/2024
0.1.262-alpha01 72 5/14/2024
0.1.261-alpha01 79 5/14/2024
0.1.260-alpha01 76 5/14/2024
0.1.259-alpha01 79 5/14/2024
0.1.258-alpha01 115 5/14/2024
0.1.257-alpha01 90 5/14/2024
0.1.256-alpha01 76 5/14/2024
0.1.255-alpha01 73 5/14/2024
0.1.253-pullrequest0116-0276 82 5/14/2024
0.1.253-pullrequest0116-0274 68 5/14/2024
0.1.253-pullrequest0116-0273 69 5/14/2024
0.1.253-alpha01 74 5/14/2024
0.1.252-alpha01 86 5/13/2024
0.1.251-alpha01 75 5/13/2024
0.1.250-alpha01 76 5/13/2024
0.1.249-alpha01 55 5/3/2024
0.1.248-alpha01 114 4/24/2024
0.1.247-alpha01 87 4/16/2024
0.1.246-alpha01 89 4/16/2024
0.1.245-alpha01 88 4/16/2024
0.1.244-alpha01 86 4/16/2024
0.1.243-alpha01 76 4/16/2024
0.1.242-alpha01 81 4/16/2024
0.1.241-alpha01 67 4/16/2024
0.1.240-alpha01 76 4/16/2024
0.1.239-alpha01 88 4/16/2024
0.1.238-alpha01 92 4/16/2024
0.1.237-alpha01 83 4/16/2024
0.1.236-alpha01 82 4/16/2024
0.1.235-alpha01 75 4/16/2024
0.1.234-alpha01 78 4/16/2024
0.1.233-alpha01 91 4/16/2024
0.1.232-pullrequest0073-0043 121 3/25/2024
0.1.232-alpha01 396 3/26/2024
0.1.231-pullrequest0073-0042 83 2/27/2024
0.1.231-pullrequest0073-0041 116 2/27/2024
0.1.231-pullrequest0073-0040 78 2/27/2024
0.1.231-pullrequest0073-0039 76 2/27/2024
0.1.231-pullrequest0073-0038 78 2/27/2024
0.1.231-pullrequest0073-0037 79 2/27/2024
0.1.231-PullRequest0073.3333 83 2/27/2024
0.1.231-alpha01 79 3/8/2024
0.1.230-alpha01 349 2/25/2024
0.1.229-alpha01 86 2/25/2024
0.1.228-alpha01 82 2/25/2024
0.1.227-alpha01 85 2/25/2024
0.1.225-alpha01 68 2/24/2024
0.1.224-alpha01 110 2/24/2024
0.1.223-alpha01 72 2/24/2024
0.1.222-alpha01 90 2/24/2024
0.1.221-alpha01 68 2/24/2024
0.1.219-alpha01 71 2/24/2024
0.1.218-alpha01 73 2/24/2024
0.1.217-alpha01 70 2/24/2024
0.1.216-alpha01 69 2/24/2024
0.1.215-alpha01 78 2/24/2024
0.1.214-alpha01 95 2/24/2024
0.1.213-alpha01 73 2/24/2024
0.1.212-alpha01 84 2/23/2024
0.1.211-alpha01 82 2/22/2024
0.1.210-alpha01 88 2/22/2024
0.1.209-alpha01 67 2/22/2024
0.1.208-alpha01 85 2/21/2024
0.1.207-alpha01 69 2/21/2024
0.1.206-alpha01 83 2/21/2024
0.1.205-alpha01 90 2/21/2024
0.1.204-alpha01 86 2/19/2024
0.1.203-alpha01 67 2/19/2024
0.1.202-alpha01 81 2/19/2024
0.1.201-alpha01 69 2/19/2024
0.1.200-alpha01 86 2/19/2024
0.1.199-alpha01 75 2/19/2024
0.1.198-alpha01 81 2/19/2024
0.1.197-alpha01 67 2/18/2024
0.1.196-alpha01 81 2/18/2024
0.1.194-alpha01 74 2/18/2024
0.1.193-alpha01 76 2/18/2024
0.1.191-alpha01 97 2/18/2024
0.1.190-alpha01 69 2/18/2024
0.1.189-alpha01 78 2/18/2024
0.1.188-alpha01 65 2/18/2024
0.1.187-alpha01 83 2/18/2024
0.1.186-alpha01 98 2/18/2024
0.1.185-alpha01 69 2/18/2024
0.1.184-alpha01 67 2/18/2024
0.1.183-alpha01 69 2/18/2024
0.1.182-alpha01 68 2/18/2024
0.1.181-alpha01 80 2/18/2024
0.1.180-alpha01 73 2/18/2024
0.1.179-alpha01 80 2/18/2024
0.1.178-alpha01 71 2/18/2024
0.1.177-alpha01 70 2/16/2024
0.1.176-alpha01 83 2/16/2024
0.1.175-alpha01 65 2/16/2024
0.1.174-alpha01 73 2/16/2024
0.1.173-alpha01 80 2/16/2024
0.1.172-alpha01 83 2/16/2024
0.1.171-alpha01 64 2/16/2024
0.1.170-alpha01 71 2/16/2024
0.1.169-alpha01 90 2/16/2024
0.1.168-alpha01 70 2/16/2024
0.1.167-alpha01 67 2/16/2024
0.1.166-alpha01 78 2/16/2024
0.1.164-alpha01 65 2/16/2024
0.1.163-alpha01 96 2/16/2024
0.1.162-alpha01 71 2/16/2024
0.1.158-alpha01 76 2/15/2024
0.1.157-alpha01 86 2/15/2024
0.1.155-alpha01 81 2/15/2024
0.1.154-alpha01 77 2/15/2024
0.1.153-alpha01 78 2/15/2024
0.1.152-alpha01 83 2/15/2024
0.1.151-alpha01 75 2/15/2024
0.1.150-alpha01 95 2/15/2024
0.1.149-alpha01 72 2/15/2024
0.1.148-alpha01 72 2/15/2024
0.1.147-alpha01 84 2/15/2024
0.1.146-alpha01 76 2/15/2024
0.1.145-alpha01 80 2/15/2024
0.1.144-alpha01 68 2/15/2024
0.1.143-alpha01 89 2/14/2024
0.1.142-alpha01 80 2/14/2024
0.1.141-alpha01 81 2/14/2024
0.1.140-alpha01 62 2/14/2024
0.1.139-alpha01 70 2/14/2024
0.1.138-alpha01 74 2/14/2024
0.1.137-alpha01 87 2/13/2024
0.1.136-alpha01 85 2/13/2024
0.1.135-alpha01 87 2/13/2024
0.1.134-alpha01 79 2/13/2024
0.1.133-alpha01 69 2/13/2024
0.1.132-alpha01 78 2/13/2024
0.1.131-alpha01 92 2/13/2024
0.1.130-alpha01 83 2/11/2024
0.1.129-alpha01 210 2/11/2024
0.1.128-alpha01 82 2/11/2024
0.1.127-alpha01 95 2/11/2024
0.1.126-alpha01 81 2/11/2024
0.1.125-alpha01 72 2/11/2024
0.1.124-alpha01 83 2/11/2024
0.1.123-alpha01 75 2/11/2024
0.1.122-alpha01 78 2/10/2024
0.1.121-alpha01 87 2/10/2024
0.1.120-alpha01 88 2/10/2024
0.1.119-alpha01 71 2/10/2024
0.1.118-alpha01 83 2/10/2024
0.1.117-alpha01 77 2/9/2024
0.1.116-alpha01 73 2/9/2024
0.1.115-alpha01 93 2/9/2024
0.1.114-alpha01 85 2/9/2024
0.1.113-alpha01 79 2/9/2024
0.1.112-alpha01 70 2/9/2024
0.1.111-alpha01 75 2/9/2024
0.1.110-alpha01 104 2/8/2024
0.1.109-alpha01 96 2/8/2024
0.1.108-alpha01 78 2/8/2024
0.1.107-alpha01 73 2/8/2024
0.1.106-alpha01 91 2/8/2024
0.1.105-alpha01 80 2/8/2024
0.1.104-alpha01 97 2/8/2024
0.1.103-alpha01 75 2/8/2024
0.1.102-alpha01 101 2/8/2024
0.1.101-alpha01 93 2/8/2024
0.1.100-alpha01 74 2/8/2024
0.1.99-alpha01 79 2/8/2024
0.1.98-alpha01 86 2/8/2024
0.1.97-alpha01 91 2/8/2024
0.1.96-alpha01 128 2/7/2024
0.1.95-alpha01 93 2/7/2024
0.1.94-alpha01 127 2/7/2024
0.1.93-alpha01 84 2/7/2024
0.1.92-alpha01 92 2/7/2024
0.1.91-alpha01 106 2/7/2024
0.1.90-alpha01 86 2/7/2024
0.1.89-alpha01 88 2/7/2024
0.1.88-alpha01 80 2/7/2024
0.1.87-alpha01 88 2/7/2024
0.1.86-alpha01 90 2/7/2024
0.1.85-alpha01 92 2/7/2024
0.1.84-alpha01 88 2/7/2024
0.1.83-alpha01 80 2/7/2024
0.1.82-alpha01 90 2/7/2024
0.1.81-alpha01 85 2/7/2024
0.1.80-alpha01 97 2/7/2024
0.1.79-alpha01 81 2/7/2024
0.1.78-alpha01 84 2/7/2024
0.1.77-alpha01 95 2/7/2024
0.1.75-alpha01 80 2/7/2024
0.1.74-alpha01 80 2/7/2024
0.1.72-alpha01 85 2/7/2024
0.1.71-alpha01 91 2/7/2024
0.1.70-alpha01 87 2/7/2024
0.1.69-alpha01 73 2/7/2024
0.1.68-alpha01 109 2/6/2024
0.1.67-alpha01 82 2/6/2024
0.1.66-alpha01 84 2/6/2024
0.1.65-alpha01 94 2/6/2024
0.1.64-alpha01 78 2/6/2024
0.1.63-alpha01 88 2/6/2024
0.1.62-alpha01 78 2/6/2024
0.1.61-alpha01 91 2/6/2024
0.1.60-alpha01 91 2/6/2024
0.1.59-alpha01 90 2/6/2024
0.1.58-alpha01 87 2/6/2024
0.1.57-alpha01 80 2/6/2024
0.1.56-alpha01 81 2/6/2024
0.1.55-alpha01 84 2/6/2024
0.1.54-alpha01 93 2/6/2024
0.1.53-alpha01 75 2/6/2024
0.1.52-alpha01 91 2/6/2024
0.1.51-alpha01 80 2/6/2024
0.1.50-alpha01 85 2/6/2024
0.1.49-alpha01 96 2/5/2024
0.1.48-alpha01 87 2/5/2024
0.1.47-alpha01 91 2/5/2024
0.1.45-alpha01 87 2/5/2024
0.1.44-alpha01 90 2/5/2024
0.1.43-alpha01 92 2/5/2024
0.1.42-alpha01 80 2/5/2024
0.1.41-alpha01 86 2/5/2024
0.1.40-alpha01 93 2/5/2024
0.1.39-alpha01 75 2/5/2024
0.1.38-alpha01 93 2/5/2024
0.1.37-alpha01 83 2/5/2024
0.1.36-alpha01 97 2/5/2024
0.1.35-alpha01 98 2/5/2024
0.1.34-alpha01 98 2/5/2024
0.1.33-alpha01 79 2/5/2024
0.1.32-alpha01 97 2/5/2024
0.1.31-alpha01 80 2/5/2024
0.1.30-alpha01 92 2/5/2024
0.1.29-alpha01 100 2/5/2024
0.1.27-alpha01 102 2/5/2024
0.1.26-alpha01 99 2/5/2024
0.1.25-alpha01 85 2/5/2024
0.1.24-alpha01 86 2/4/2024
0.1.23-alpha01 84 2/4/2024
0.1.22-alpha01 94 2/4/2024
0.1.21-alpha01 103 2/4/2024
0.1.20-alpha01 96 2/4/2024
0.1.19-alpha01 81 2/4/2024
0.1.18-alpha01 93 2/4/2024
0.1.17-alpha01 89 2/4/2024
0.1.14-alpha01 95 2/4/2024
0.1.13-alpha01 87 2/4/2024
0.1.12-alpha01 88 2/4/2024
0.1.11-alpha01 88 2/4/2024
0.1.10-alpha01 79 2/4/2024
0.1.9-alpha01 77 2/4/2024
0.1.0-alpha01 105 2/4/2024