QuickFuzzr 0.1.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package QuickFuzzr --version 0.1.2
                    
NuGet\Install-Package QuickFuzzr -Version 0.1.2
                    
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="QuickFuzzr" Version="0.1.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuickFuzzr" Version="0.1.2" />
                    
Directory.Packages.props
<PackageReference Include="QuickFuzzr" />
                    
Project file
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 QuickFuzzr --version 0.1.2
                    
#r "nuget: QuickFuzzr, 0.1.2"
                    
#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 QuickFuzzr@0.1.2
                    
#: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=QuickFuzzr&version=0.1.2
                    
Install as a Cake Addin
#tool nuget:?package=QuickFuzzr&version=0.1.2
                    
Install as a Cake Tool

<img src='icon.png' width='40' align='top'/> QuickFuzzr

A type-walking cheetah with a hand full of random.

Generate realistic test data and fuzz your domain models using composable LINQ expressions.

Docs NuGet License: MIT

Example

var fuzzr =
    from decimalPrecision in Fuzzr.Decimal().Apply(d => Math.Round(d, 2)).Replace()
    from name in Fuzzr.OneOf("John", "Paul", "George", "Ringo")
    let email = $"{name.ToLower()}@mail.com"
    from customer in Fuzzr.One(() => new Customer(name, email))
    from orders in Fuzzr.One<Order>()
        .Apply(customer.PlaceOrder)
        .Many(1, 4)
    from payment in Fuzzr.One<Payment>()
        .Apply(p => p.Amount = orders.Sum(o => o.Total))
        .Apply(customer.MakePayment)
    select (customer, orders, payment);
fuzzr.Generate();
// Results in =>
// (
//     Customer {
//         Name: "Paul",
//         Email: "paul@mail.com",
//         Orders: [ Order { Total: 67.25 }, Order { Total: 23.41 } ],
//         Payments: [ Payment { Amount: 90.66 } ]
//     },
//     [ Order { Total: 67.25 }, Order { Total: 23.41 } ],
//     Payment {
//         Amount: 90.66
//     }
// )

Highlights

  • Zero-config generation: Fuzzr.One<T>() works out of the box.
  • LINQ-composable: Build complex generators from simple parts.
  • Property-based testing ready: Great for fuzzing and edge case discovery.
  • Configurable defaults: Fine-tune generation with Configr.
  • Recursive object graphs: Automatic depth-controlled nesting.
  • Seed-based reproducibility: Deterministic generation for reliable tests.
  • Real-world domain ready: Handles aggregates, value objects, and complex relationships.

Installation

QuickFuzzr is available on NuGet:

Install-Package QuickFuzzr

Or via the .NET CLI:

dotnet add package QuickFuzzr

Documentation

QuickFuzzr is fully documented, with real, executable examples for each combinator and concept.

You can explore it here:

Note: A full API reference is currently being worked on.
For now all public methods have xml summary comments.

Roadmap

  • Complete API reference documentation.
  • More Elm-style error messages.
  • More Primitives: DateTimeOffset, NInt, NUint, ...
  • QuickFuzzr.Reactor: Cookbook, reusable patterns.
  • QuickFuzzr.Evil: For all your property based testing needs.

License

This project is licensed under the MIT License.

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.  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

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on QuickFuzzr:

Package Downloads
QuickCheckr

CSI: .NET, Property-based testing for the pragmatic.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.9 573 3/21/2026
0.1.8 299 12/28/2025
0.1.7 855 11/18/2025
0.1.6 273 11/16/2025
0.1.5 311 11/13/2025
0.1.4 312 11/12/2025
0.1.3 266 11/6/2025
0.1.2 229 11/5/2025
0.1.1 310 8/6/2025
0.1.0 291 7/19/2025