QuickAcid 0.0.1
dotnet add package QuickAcid --version 0.0.1
NuGet\Install-Package QuickAcid -Version 0.0.1
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="QuickAcid" Version="0.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuickAcid" Version="0.0.1" />
<PackageReference Include="QuickAcid" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add QuickAcid --version 0.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: QuickAcid, 0.0.1"
#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.
#:package QuickAcid@0.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=QuickAcid&version=0.0.1
#tool nuget:?package=QuickAcid&version=0.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
QuickAcid
Drop it in acid. Look for gold. Like alchemy, but reproducible.
QuickAcid is a property-based testing library for C# that combines:
- LINQ-based test scripting
- Shrinkable, structured inputs
- Minimal-case failure reporting
- Customizable shrinking strategies
- Deep state modeling and execution traces
It’s designed for sharp diagnostics, elegant expressiveness, and easy extension.
Example
Given a naive Account
model:
public class Account
{
public int Balance = 0;
public void Deposit(int amount) => Balance += amount;
public void Withdraw(int amount) => Balance -= amount;
}
You can test the overdraft invariant like this:
var script =
from account in "Account".Tracked(() => new Account(), a => a.Balance.ToString())
from _ in "ops".Choose(
from amount in "deposit".Input(Fuzz.Int(0, 10))
from act in "account.Deposit".Act(() => account.Deposit(amount))
select Acid.Test,
from amount in "withdraw".Input(Fuzz.Constant(42))
from act in "account.Withdraw".Act(() => account.Withdraw(amount))
select Acid.Test)
from spec in "No_Overdraft".Spec(() => account.Balance >= 0)
select Acid.Test;
QState.Run(script)
.WithOneRun()
.And(50.ExecutionsPerRun());
Example Failure Output
----------------------------------------
-- Property 'No_Overdraft' was falsified
-- Original failing run: 3 execution(s)
-- Shrunk to minimal case: 1 execution(s) (3 shrinks)
-- Seed: 1254808606
----------------------------------------
RUN START :
=> Account (tracked) : 0
---------------------------
EXECUTE : account.Withdraw
- Input : withdraw = 42
***************************
Spec Failed : No_Overdraft
***************************
Product | Versions 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- QuickFuzzr (>= 0.1.1)
- QuickPulse (>= 0.2.0)
- QuickPulse.Show (>= 0.1.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.0.1 | 63 | 8/9/2025 |