From e9c1556ed1bd7dd0dae12cc9c2a51a1206a673c1 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 26 Jul 2026 14:32:52 +0000 Subject: [PATCH] refactor(justdummies): rename the Dummies library to JustDummies Rename the standalone arbitrary-test-value library from Dummies to JustDummies across the whole repository: projects and folders, the public root namespace, NuGet package ids (JustDummies, JustDummies.Xunit), the packaged-asset check tool (tools/justdummies-check), the CI workflow (justdummies.yml), the Conventional Commits scope (dummies -> justdummies), and the English and French documentation. The common-noun pattern term "dummy"/"dummies" (the generated values) is kept everywhere it names the concept rather than the library. Point the package homepage at the new showcase site (justdummies.io) while keeping RepositoryUrl on the GitHub repository. Existing ADRs are updated in place terminologically: the decisions they record are unchanged, only the library's name is refreshed. The release train code (dum / dum-v*) and the accepted-ADR filename slugs are left untouched to avoid churning release plumbing and cross-references. Co-Authored-By: Claude Opus 4.8 --- .claude/commands/tidy-history.md | 2 +- .github/dependabot-autofix-prompt.md | 2 +- .github/workflows/changelog.yml | 2 +- .github/workflows/ci.yml | 8 +- .github/workflows/dependabot-autofix.yml | 2 +- .../{dummies.yml => justdummies.yml} | 34 +- .github/workflows/release.yml | 4 +- .gitignore | 10 +- CLAUDE.md | 2 +- CONTRIBUTING.md | 10 +- .../netstandard2.0/PublicAPI.Unshipped.txt | 7 - .../PublicAPI/net8.0/PublicAPI.Unshipped.txt | 499 ------------------ .../netstandard2.0/PublicAPI.Unshipped.txt | 426 --------------- ...ClassErrors.RequestBinder.UnitTests.csproj | 6 +- .../ClockUseAnyTests.cs | 6 +- .../FirstClassErrors.Testing.UnitTests.csproj | 2 +- .../InstanceIdsUseAnyTests.cs | 6 +- .../MeaningfulEnumFactoryTests.cs | 2 +- FirstClassErrors.Testing/Clock.cs | 6 +- .../DetailedMessageFactory.cs | 4 +- .../DiagnosticMessageFactory.cs | 4 +- FirstClassErrors.Testing/ErrorCodeFactory.cs | 8 +- .../ErrorOriginFactory.cs | 4 +- .../FirstClassErrors.Testing.csproj | 18 +- FirstClassErrors.Testing/InstanceIds.cs | 6 +- .../InteractionDirectionFactory.cs | 4 +- FirstClassErrors.Testing/README.nuget.md | 4 +- .../ShortMessageFactory.cs | 4 +- FirstClassErrors.Testing/TransienceFactory.cs | 4 +- .../ErrorContextImmutabilityTests.cs | 2 +- .../FirstClassErrors.UnitTests.csproj | 6 +- .../OutcomeAssertionsTests.cs | 2 +- .../OutcomeGenericAdditionalTests.cs | 10 +- ...tcomeTaskExtensionsEagerValidationTests.cs | 8 +- FirstClassErrors.UnitTests/OutcomeTests.cs | 4 +- FirstClassErrors.sln | 8 +- .../AmbientSeedScopeTests.cs | 2 +- .../AnyCollectionTests.cs | 2 +- .../AnyContinuousTests.cs | 2 +- .../AnyDateTimeOffsetOffsetTests.cs | 2 +- .../AnyInt32Tests.cs | 2 +- .../AnyLatticeConstraintTests.cs | 2 +- .../AnyModernTypeTests.cs | 2 +- .../AnyNullableTests.cs | 2 +- .../AnyOneOfTests.cs | 2 +- .../AnyPatternTests.cs | 12 +- .../AnySetTypeTests.cs | 2 +- .../AnySignedIntegerTests.cs | 2 +- .../AnyStringOneOfTests.cs | 2 +- .../AnyStringTests.cs | 2 +- .../AnyTimeTests.cs | 2 +- .../AnyUnsignedIntegerTests.cs | 2 +- .../AnyUriTests.cs | 2 +- .../ArchitectureTests.cs | 12 +- .../CompositionTests.cs | 2 +- .../ContinuousExclusionNudgeTests.cs | 2 +- .../CrossEngineReachabilityTests.cs | 4 +- .../FactoryNamingConventionTests.cs | 2 +- .../JustDummies.UnitTests.csproj | 6 +- .../MaterializationTests.cs | 2 +- .../SeedReproducibilityTests.cs | 2 +- .../SurfaceParityTests.cs | 2 +- .../TestValueObjects.cs | 2 +- .../ArchitectureTests.cs | 18 +- .../JustDummies.Xunit.UnitTests.csproj | 6 +- .../ReproducibleAttributeTests.cs | 2 +- .../JustDummies.Xunit.csproj | 20 +- .../netstandard2.0/PublicAPI.Shipped.txt | 0 .../netstandard2.0/PublicAPI.Unshipped.txt | 7 + .../README.nuget.md | 12 +- .../ReproducibleAttribute.cs | 4 +- {Dummies => JustDummies}/Any.cs | 4 +- {Dummies => JustDummies}/AnyArray.cs | 2 +- {Dummies => JustDummies}/AnyBoolean.cs | 2 +- {Dummies => JustDummies}/AnyByte.cs | 2 +- {Dummies => JustDummies}/AnyChar.cs | 2 +- {Dummies => JustDummies}/AnyCollection.cs | 2 +- {Dummies => JustDummies}/AnyContext.cs | 2 +- {Dummies => JustDummies}/AnyDateOnly.cs | 2 +- {Dummies => JustDummies}/AnyDateTime.cs | 2 +- {Dummies => JustDummies}/AnyDateTimeOffset.cs | 2 +- {Dummies => JustDummies}/AnyDecimal.cs | 2 +- {Dummies => JustDummies}/AnyDerivation.cs | 2 +- {Dummies => JustDummies}/AnyDictionary.cs | 2 +- {Dummies => JustDummies}/AnyDouble.cs | 2 +- {Dummies => JustDummies}/AnyEnum.cs | 2 +- {Dummies => JustDummies}/AnyException.cs | 4 +- {Dummies => JustDummies}/AnyExtensions.cs | 2 +- {Dummies => JustDummies}/AnyFtpUri.cs | 2 +- .../AnyGenerationException.cs | 2 +- {Dummies => JustDummies}/AnyGuid.cs | 2 +- {Dummies => JustDummies}/AnyHalf.cs | 2 +- {Dummies => JustDummies}/AnyInt128.cs | 2 +- {Dummies => JustDummies}/AnyInt16.cs | 2 +- {Dummies => JustDummies}/AnyInt32.cs | 2 +- {Dummies => JustDummies}/AnyInt64.cs | 2 +- {Dummies => JustDummies}/AnyList.cs | 2 +- {Dummies => JustDummies}/AnyMailtoUri.cs | 2 +- {Dummies => JustDummies}/AnyOneOf.cs | 2 +- {Dummies => JustDummies}/AnyPattern.cs | 2 +- {Dummies => JustDummies}/AnyRelativeUri.cs | 2 +- {Dummies => JustDummies}/AnySByte.cs | 2 +- {Dummies => JustDummies}/AnySequence.cs | 2 +- {Dummies => JustDummies}/AnySet.cs | 2 +- {Dummies => JustDummies}/AnySingle.cs | 2 +- {Dummies => JustDummies}/AnyString.cs | 2 +- {Dummies => JustDummies}/AnyStringOneOf.cs | 2 +- {Dummies => JustDummies}/AnyTimeOnly.cs | 2 +- {Dummies => JustDummies}/AnyTimeSpan.cs | 2 +- {Dummies => JustDummies}/AnyUInt128.cs | 2 +- {Dummies => JustDummies}/AnyUInt16.cs | 2 +- {Dummies => JustDummies}/AnyUInt32.cs | 2 +- {Dummies => JustDummies}/AnyUInt64.cs | 2 +- {Dummies => JustDummies}/AnyUri.cs | 2 +- {Dummies => JustDummies}/AnyWebSocketUri.cs | 2 +- {Dummies => JustDummies}/AnyWebUri.cs | 2 +- {Dummies => JustDummies}/CHANGELOG.md | 2 +- {Dummies => JustDummies}/CharacterPools.cs | 2 +- {Dummies => JustDummies}/CollectionState.cs | 2 +- .../ConflictingAnyConstraintException.cs | 2 +- .../ContinuousIntervalSpec.cs | 2 +- {Dummies => JustDummies}/CountConstraints.cs | 2 +- {Dummies => JustDummies}/CountSpec.cs | 2 +- .../DecimalIntervalSpec.cs | 2 +- {Dummies => JustDummies}/IAny.cs | 2 +- {Dummies => JustDummies}/ICardinalityHint.cs | 2 +- .../JustDummies.csproj | 8 +- .../NullableExtensions.cs | 2 +- .../OrdinalIntervalSpec.cs | 2 +- .../PublicAPI/net8.0/PublicAPI.Shipped.txt | 0 .../PublicAPI/net8.0/PublicAPI.Unshipped.txt | 499 ++++++++++++++++++ .../netstandard2.0/PublicAPI.Shipped.txt | 0 .../netstandard2.0/PublicAPI.Unshipped.txt | 426 +++++++++++++++ {Dummies => JustDummies}/README.nuget.md | 8 +- {Dummies => JustDummies}/RandomSource.cs | 2 +- {Dummies => JustDummies}/RegexAlphabet.cs | 2 +- {Dummies => JustDummies}/RegexNode.cs | 2 +- {Dummies => JustDummies}/RegexParser.cs | 14 +- {Dummies => JustDummies}/StringSpec.cs | 2 +- .../UnsupportedRegexException.cs | 2 +- {Dummies => JustDummies}/UriSpec.cs | 2 +- {Dummies => JustDummies}/WideIntervalSpec.cs | 2 +- build/PublicApiBaseline.props | 6 +- .../for-maintainers/AddingAReleaseTrain.en.md | 2 +- .../for-maintainers/AddingAReleaseTrain.fr.md | 2 +- ...host-dummies-as-a-standalone-package.fr.md | 14 +- ...11-host-dummies-as-a-standalone-package.md | 14 +- ...ons-by-cardinality-else-bounded-draw.fr.md | 12 +- ...ctions-by-cardinality-else-bounded-draw.md | 12 +- .../0015-cap-any-combine-at-arity-eight.fr.md | 8 +- .../0015-cap-any-combine-at-arity-eight.md | 8 +- ...ialize-dummies-only-through-generate.fr.md | 10 +- ...terialize-dummies-only-through-generate.md | 10 +- ...ngs-from-a-home-grown-regular-subset.fr.md | 6 +- ...trings-from-a-home-grown-regular-subset.md | 6 +- ...-testing-arbitrary-values-on-dummies.fr.md | 84 +-- ...ase-testing-arbitrary-values-on-dummies.md | 84 +-- ...trings-from-an-explicit-terminal-set.fr.md | 10 +- ...y-strings-from-an-explicit-terminal-set.md | 10 +- ...e-any-factories-after-their-clr-type.fr.md | 12 +- ...name-any-factories-after-their-clr-type.md | 12 +- ...lues-from-an-explicit-top-level-pool.fr.md | 10 +- ...-values-from-an-explicit-top-level-pool.md | 10 +- ...ing-exclusions-with-a-bounded-redraw.fr.md | 10 +- ...string-exclusions-with-a-bounded-redraw.md | 10 +- ...ctural-any-conflicts-at-compile-time.fr.md | 6 +- ...tructural-any-conflicts-at-compile-time.md | 6 +- ...tice-constrained-scalars-on-the-grid.fr.md | 8 +- ...lattice-constrained-scalars-on-the-grid.md | 8 +- ...-the-datetimeoffset-offset-dimension.fr.md | 10 +- ...ary-the-datetimeoffset-offset-dimension.md | 10 +- ...n-the-ambient-seed-scope-to-adapters.fr.md | 26 +- ...open-the-ambient-seed-scope-to-adapters.md | 26 +- ...xunit-v3-through-a-companion-package.fr.md | 28 +- ...to-xunit-v3-through-a-companion-package.md | 28 +- doc/handwritten/for-maintainers/adr/README.md | 6 +- ...ummies-architecture-and-design-audit.fr.md | 96 ++-- ...0-dummies-architecture-and-design-audit.md | 94 ++-- ...errors-architecture-and-design-audit.fr.md | 82 +-- ...asserrors-architecture-and-design-audit.md | 82 +-- .../adr-implementation-reference.fr.md | 4 +- .../adr-implementation-reference.md | 4 +- .../for-maintainers/workflows/changelog.en.md | 2 +- .../for-maintainers/workflows/changelog.fr.md | 2 +- .../workflows/dependabot-autofix.en.md | 2 +- .../workflows/dependabot-autofix.fr.md | 2 +- .../for-maintainers/workflows/release.en.md | 2 +- .../for-maintainers/workflows/release.fr.md | 2 +- .../for-users/ArbitraryTestValues.en.md | 46 +- .../for-users/ArbitraryTestValues.fr.md | 46 +- doc/handwritten/for-users/CONTRIBUTING.fr.md | 10 +- .../for-users/DeterministicTesting.en.md | 2 +- .../for-users/DeterministicTesting.fr.md | 2 +- tools/changelog/collect-prs.sh | 2 +- tools/commit-lint/lint-commit-message.sh | 4 +- .../JustDummiesCheck.csproj} | 22 +- .../Program.cs | 12 +- .../nuget.config | 12 +- tools/packaging/pack.sh | 16 +- tools/packaging/release-notes.sh | 2 +- tools/trains.sh | 2 +- 201 files changed, 1725 insertions(+), 1723 deletions(-) rename .github/workflows/{dummies.yml => justdummies.yml} (76%) delete mode 100644 Dummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt delete mode 100644 Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt delete mode 100644 Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt rename {Dummies.UnitTests => JustDummies.UnitTests}/AmbientSeedScopeTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyCollectionTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyContinuousTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyDateTimeOffsetOffsetTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyInt32Tests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyLatticeConstraintTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyModernTypeTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyNullableTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyOneOfTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyPatternTests.cs (98%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnySetTypeTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnySignedIntegerTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyStringOneOfTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyStringTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyTimeTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyUnsignedIntegerTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/AnyUriTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/ArchitectureTests.cs (73%) rename {Dummies.UnitTests => JustDummies.UnitTests}/CompositionTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/ContinuousExclusionNudgeTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/CrossEngineReachabilityTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/FactoryNamingConventionTests.cs (98%) rename Dummies.UnitTests/Dummies.UnitTests.csproj => JustDummies.UnitTests/JustDummies.UnitTests.csproj (91%) rename {Dummies.UnitTests => JustDummies.UnitTests}/MaterializationTests.cs (98%) rename {Dummies.UnitTests => JustDummies.UnitTests}/SeedReproducibilityTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/SurfaceParityTests.cs (99%) rename {Dummies.UnitTests => JustDummies.UnitTests}/TestValueObjects.cs (98%) rename {Dummies.Xunit.UnitTests => JustDummies.Xunit.UnitTests}/ArchitectureTests.cs (65%) rename Dummies.Xunit.UnitTests/Dummies.Xunit.UnitTests.csproj => JustDummies.Xunit.UnitTests/JustDummies.Xunit.UnitTests.csproj (86%) rename {Dummies.Xunit.UnitTests => JustDummies.Xunit.UnitTests}/ReproducibleAttributeTests.cs (99%) rename Dummies.Xunit/Dummies.Xunit.csproj => JustDummies.Xunit/JustDummies.Xunit.csproj (76%) rename {Dummies.Xunit => JustDummies.Xunit}/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt (100%) create mode 100644 JustDummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt rename {Dummies.Xunit => JustDummies.Xunit}/README.nuget.md (85%) rename {Dummies.Xunit => JustDummies.Xunit}/ReproducibleAttribute.cs (97%) rename {Dummies => JustDummies}/Any.cs (99%) rename {Dummies => JustDummies}/AnyArray.cs (98%) rename {Dummies => JustDummies}/AnyBoolean.cs (99%) rename {Dummies => JustDummies}/AnyByte.cs (99%) rename {Dummies => JustDummies}/AnyChar.cs (99%) rename {Dummies => JustDummies}/AnyCollection.cs (99%) rename {Dummies => JustDummies}/AnyContext.cs (99%) rename {Dummies => JustDummies}/AnyDateOnly.cs (99%) rename {Dummies => JustDummies}/AnyDateTime.cs (99%) rename {Dummies => JustDummies}/AnyDateTimeOffset.cs (99%) rename {Dummies => JustDummies}/AnyDecimal.cs (99%) rename {Dummies => JustDummies}/AnyDerivation.cs (99%) rename {Dummies => JustDummies}/AnyDictionary.cs (99%) rename {Dummies => JustDummies}/AnyDouble.cs (99%) rename {Dummies => JustDummies}/AnyEnum.cs (99%) rename {Dummies => JustDummies}/AnyException.cs (93%) rename {Dummies => JustDummies}/AnyExtensions.cs (99%) rename {Dummies => JustDummies}/AnyFtpUri.cs (99%) rename {Dummies => JustDummies}/AnyGenerationException.cs (99%) rename {Dummies => JustDummies}/AnyGuid.cs (99%) rename {Dummies => JustDummies}/AnyHalf.cs (99%) rename {Dummies => JustDummies}/AnyInt128.cs (99%) rename {Dummies => JustDummies}/AnyInt16.cs (99%) rename {Dummies => JustDummies}/AnyInt32.cs (99%) rename {Dummies => JustDummies}/AnyInt64.cs (99%) rename {Dummies => JustDummies}/AnyList.cs (98%) rename {Dummies => JustDummies}/AnyMailtoUri.cs (98%) rename {Dummies => JustDummies}/AnyOneOf.cs (99%) rename {Dummies => JustDummies}/AnyPattern.cs (99%) rename {Dummies => JustDummies}/AnyRelativeUri.cs (98%) rename {Dummies => JustDummies}/AnySByte.cs (99%) rename {Dummies => JustDummies}/AnySequence.cs (99%) rename {Dummies => JustDummies}/AnySet.cs (98%) rename {Dummies => JustDummies}/AnySingle.cs (99%) rename {Dummies => JustDummies}/AnyString.cs (99%) rename {Dummies => JustDummies}/AnyStringOneOf.cs (99%) rename {Dummies => JustDummies}/AnyTimeOnly.cs (99%) rename {Dummies => JustDummies}/AnyTimeSpan.cs (99%) rename {Dummies => JustDummies}/AnyUInt128.cs (99%) rename {Dummies => JustDummies}/AnyUInt16.cs (99%) rename {Dummies => JustDummies}/AnyUInt32.cs (99%) rename {Dummies => JustDummies}/AnyUInt64.cs (99%) rename {Dummies => JustDummies}/AnyUri.cs (99%) rename {Dummies => JustDummies}/AnyWebSocketUri.cs (99%) rename {Dummies => JustDummies}/AnyWebUri.cs (99%) rename {Dummies => JustDummies}/CHANGELOG.md (86%) rename {Dummies => JustDummies}/CharacterPools.cs (97%) rename {Dummies => JustDummies}/CollectionState.cs (99%) rename {Dummies => JustDummies}/ConflictingAnyConstraintException.cs (97%) rename {Dummies => JustDummies}/ContinuousIntervalSpec.cs (99%) rename {Dummies => JustDummies}/CountConstraints.cs (99%) rename {Dummies => JustDummies}/CountSpec.cs (99%) rename {Dummies => JustDummies}/DecimalIntervalSpec.cs (99%) rename {Dummies => JustDummies}/IAny.cs (99%) rename {Dummies => JustDummies}/ICardinalityHint.cs (99%) rename Dummies/Dummies.csproj => JustDummies/JustDummies.csproj (92%) rename {Dummies => JustDummies}/NullableExtensions.cs (99%) rename {Dummies => JustDummies}/OrdinalIntervalSpec.cs (99%) rename {Dummies => JustDummies}/PublicAPI/net8.0/PublicAPI.Shipped.txt (100%) create mode 100644 JustDummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt rename {Dummies => JustDummies}/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt (100%) create mode 100644 JustDummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt rename {Dummies => JustDummies}/README.nuget.md (97%) rename {Dummies => JustDummies}/RandomSource.cs (99%) rename {Dummies => JustDummies}/RegexAlphabet.cs (99%) rename {Dummies => JustDummies}/RegexNode.cs (99%) rename {Dummies => JustDummies}/RegexParser.cs (96%) rename {Dummies => JustDummies}/StringSpec.cs (99%) rename {Dummies => JustDummies}/UnsupportedRegexException.cs (97%) rename {Dummies => JustDummies}/UriSpec.cs (99%) rename {Dummies => JustDummies}/WideIntervalSpec.cs (99%) rename tools/{dummies-check/DummiesCheck.csproj => justdummies-check/JustDummiesCheck.csproj} (81%) rename tools/{dummies-check => justdummies-check}/Program.cs (97%) rename tools/{dummies-check => justdummies-check}/nuget.config (67%) diff --git a/.claude/commands/tidy-history.md b/.claude/commands/tidy-history.md index f9521323..bd242c10 100644 --- a/.claude/commands/tidy-history.md +++ b/.claude/commands/tidy-history.md @@ -50,7 +50,7 @@ If something is flagged, show me a plan as a table — for each commit: keep / squash-into / reword-to / drop / reorder — plus the resulting `git log --oneline`, every rewritten header conforming to CONTRIBUTING.md (`[(scope)][!]: `, -scope from `core, analyzers, binder, cli, dummies, gendoc, testing`). Then **ask +scope from `core, analyzers, binder, cli, justdummies, gendoc, testing`). Then **ask me to approve.** Run no history-rewriting command before I say go. ## 4 — Rewrite (only after I approve, only while the branch is yours alone) diff --git a/.github/dependabot-autofix-prompt.md b/.github/dependabot-autofix-prompt.md index e1cabb40..fb9bf71c 100644 --- a/.github/dependabot-autofix-prompt.md +++ b/.github/dependabot-autofix-prompt.md @@ -65,7 +65,7 @@ The header must match `[([,...])][!]: CHANGELOG.md (FirstClassErrors + FirstClassErrors.Testing + FirstClassErrors.RequestBinder) # cli -> FirstClassErrors.Cli/CHANGELOG.md (the fce .NET tool) -# dum -> Dummies/CHANGELOG.md (the standalone Dummies library) +# dum -> JustDummies/CHANGELOG.md (the standalone JustDummies library) on: workflow_dispatch: inputs: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0603da7b..fa99ad2b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,9 +98,9 @@ jobs: # Only these library test projects carry the net472 leg (EnableNet472Floor adds it): the tooling test # projects (Roslyn / GenDoc / Cli) stay net10-only by design, and RequestBinder.UnitTests stays net10-only # because its fixtures bind DateOnly, a .NET 6+ type absent from net472. RequestBinder is still floored here - # through its property tests, and Dummies through its own contract suite (Dummies.UnitTests), running on the + # through its property tests, and JustDummies through its own contract suite (JustDummies.UnitTests), running on the # netstandard2.0 asset .NET Framework consumers load — its net8-only tests are conditioned out (issue #215). - # Dummies.Xunit is floored the same way: it ships netstandard2.0, so a .NET Framework consumer loads that + # JustDummies.Xunit is floored the same way: it ships netstandard2.0, so a .NET Framework consumer loads that # asset, and its adapter suite must prove it works there and not only on net10. # A per-project loop (not a solution-wide -f net472, which would force the TFM onto the net10-only projects # and fail) keeps the net472 scope exactly these five. @@ -112,8 +112,8 @@ jobs: FirstClassErrors.UnitTests \ FirstClassErrors.PropertyTests \ FirstClassErrors.RequestBinder.PropertyTests \ - Dummies.UnitTests \ - Dummies.Xunit.UnitTests ; do + JustDummies.UnitTests \ + JustDummies.Xunit.UnitTests ; do echo "::group::$proj (net472)" dotnet test "$proj/$proj.csproj" -c Release -f net472 -p:EnableNet472Floor=true \ --logger "console;verbosity=normal" diff --git a/.github/workflows/dependabot-autofix.yml b/.github/workflows/dependabot-autofix.yml index 90c1e0e5..6fabe4b6 100644 --- a/.github/workflows/dependabot-autofix.yml +++ b/.github/workflows/dependabot-autofix.yml @@ -38,7 +38,7 @@ on: - sonar - analyzers - commit-lint - - dummies + - justdummies - dependency-review - codeql types: diff --git a/.github/workflows/dummies.yml b/.github/workflows/justdummies.yml similarity index 76% rename from .github/workflows/dummies.yml rename to .github/workflows/justdummies.yml index be02d3f2..fba16e0d 100644 --- a/.github/workflows/dummies.yml +++ b/.github/workflows/justdummies.yml @@ -1,4 +1,4 @@ -name: dummies +name: justdummies on: push: @@ -11,7 +11,7 @@ on: # Cancel superseded runs on the same branch / PR. concurrency: - group: dummies-${{ github.workflow }}-${{ github.ref }} + group: justdummies-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true # Least privilege: this workflow only checks out, packs and runs, so the token @@ -25,24 +25,24 @@ env: DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true' jobs: - # The ci workflow builds Dummies for both TFMs and runs Dummies.UnitTests on net10.0 — which resolves the + # The ci workflow builds JustDummies for both TFMs and runs JustDummies.UnitTests on net10.0 — which resolves the # NEAREST compatible asset (net8.0). So the netstandard2.0 asset that ships in the package is compiled but # never EXECUTED by a test. This job closes that gap: it packs the real .nupkg and consumes it from an - # isolated project (tools/dummies-check) once per consumer TFM, each forcing a different packaged asset, + # isolated project (tools/justdummies-check) once per consumer TFM, each forcing a different packaged asset, # then proves by reflection which asset loaded and exercises the common smoke surface on it. packaged-assets: - name: Dummies packaged-asset compatibility + name: JustDummies packaged-asset compatibility runs-on: ubuntu-latest # Pack (~10s) plus two short consumer runs; cap a hung run like the other workflows. timeout-minutes: 15 env: # Single source of truth for the throwaway package version, passed to the pack (-p:Version) and BOTH - # consume (-p:DummiesCheckVersion) steps. The run-number.attempt suffix makes every run produce a version + # consume (-p:JustDummiesCheckVersion) steps. The run-number.attempt suffix makes every run produce a version # NuGet has never cached, so the consume steps always restore the freshly packed .nupkg instead of a # stale copy; run_attempt (which changes on a re-run) closes the door should a ~/.nuget cache ever be - # added. DummiesCheck.csproj pins this EXACT version, and nuget.config maps the id to the local feed only, - # so it can never resolve a future stable Dummies from nuget.org. - DUMMIESCHECK_VERSION: 1.0.0-dummiescheck.${{ github.run_number }}.${{ github.run_attempt }} + # added. JustDummiesCheck.csproj pins this EXACT version, and nuget.config maps the id to the local feed only, + # so it can never resolve a future stable JustDummies from nuget.org. + JUSTDUMMIESCHECK_VERSION: 1.0.0-justdummiescheck.${{ github.run_number }}.${{ github.run_attempt }} steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -59,23 +59,23 @@ jobs: 8.0.x 10.0.x - - name: Pack Dummies under the release SDK + - name: Pack JustDummies under the release SDK # Pack from the repo root so the root global.json selects the .NET 10 SDK — the one release.yml packs # with — producing the exact multi-asset artifact a consumer restores (lib/netstandard2.0 + lib/net8.0). # GenerateSBOM is off here: the SBOM is a release-pipeline concern (release.yml), and this job only needs # the lib/ assets. The feed and the project-local package cache are wiped first so the consume steps can # only see this run's package — a no-op on a fresh runner, but it keeps a reused workspace idempotent. run: | - rm -rf tools/dummies-check/local-feed tools/dummies-check/packages - dotnet pack Dummies/Dummies.csproj -c Release -p:Version="$DUMMIESCHECK_VERSION" -p:GenerateSBOM=false -o tools/dummies-check/local-feed + rm -rf tools/justdummies-check/local-feed tools/justdummies-check/packages + dotnet pack JustDummies/JustDummies.csproj -c Release -p:Version="$JUSTDUMMIESCHECK_VERSION" -p:GenerateSBOM=false -o tools/justdummies-check/local-feed - name: Validate the net8.0 asset (net8.0 consumer) # A net8.0 consumer resolves lib/net8.0: the modern generators (DateOnly/Int128/Half/...) must be # PRESENT. The program self-checks and exits non-zero on any mismatch; the greps are positive proof that # it ran AND loaded the intended asset (a program that silently no-oped would exit 0 with no banner). - working-directory: tools/dummies-check + working-directory: tools/justdummies-check run: | - dotnet run -c Release --framework net8.0 -p:DummiesCheckVersion="$DUMMIESCHECK_VERSION" > net8.log 2>&1 || { cat net8.log; exit 1; } + dotnet run -c Release --framework net8.0 -p:JustDummiesCheckVersion="$JUSTDUMMIESCHECK_VERSION" > net8.log 2>&1 || { cat net8.log; exit 1; } cat net8.log grep -q 'ASSET=.NETCoreApp,Version=v8.0' net8.log grep -q 'RESULT=PASS' net8.log @@ -84,9 +84,9 @@ jobs: # A net6.0 consumer resolves lib/netstandard2.0: the modern generators must be ABSENT, while the common # surface (scalars, constraints, composition, collections, seeded reproducibility) still works. This is # the leg the net10.0 test project can never exercise — the whole reason this workflow exists. - working-directory: tools/dummies-check + working-directory: tools/justdummies-check run: | - dotnet run -c Release --framework net6.0 -p:DummiesCheckVersion="$DUMMIESCHECK_VERSION" > netstandard.log 2>&1 || { cat netstandard.log; exit 1; } + dotnet run -c Release --framework net6.0 -p:JustDummiesCheckVersion="$JUSTDUMMIESCHECK_VERSION" > netstandard.log 2>&1 || { cat netstandard.log; exit 1; } cat netstandard.log grep -q 'ASSET=.NETStandard,Version=v2.0' netstandard.log grep -q 'RESULT=PASS' netstandard.log @@ -97,7 +97,7 @@ jobs: # seeded sequence — new Random(seed) keeps the legacy algorithm on modern .NET so they SHOULD agree, but # nothing else asserts it and Random reserves the right to differ across framework versions (issue #215). # Compare byte-for-byte; the empty-guard fails closed so a missing/renamed banner can never pass silently. - working-directory: tools/dummies-check + working-directory: tools/justdummies-check run: | set -euo pipefail net8_seq="$(sed -n 's/^SEEDBATCH=//p' net8.log)" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 85a6ae96..502cb4e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,7 +5,7 @@ on: # Publish on a train-prefixed semantic-version tag. The trains version independently: # lib-v1.2.3 -> FirstClassErrors + FirstClassErrors.Testing + FirstClassErrors.RequestBinder # cli-v1.2.3 -> FirstClassErrors.Cli (the fce .NET tool) - # dum-v1.2.3 -> Dummies (the standalone arbitrary-test-value library) + # dum-v1.2.3 -> JustDummies (the standalone arbitrary-test-value library) tags: - 'lib-v*.*.*' - 'cli-v*.*.*' @@ -190,7 +190,7 @@ jobs: echo "ok: GenDoc's error catalog has a breaking change since $PREVIOUS_TAG, matched by the major version bump ($PREVIOUS_MAJOR -> $NEW_MAJOR)." # Pack only the train this release targets (lib -> FirstClassErrors + .Testing + .RequestBinder; - # cli -> the fce tool; dum -> Dummies), so a lib release never republishes the CLI and vice versa. + # cli -> the fce tool; dum -> JustDummies), so a lib release never republishes the CLI and vice versa. # The analyzer is bundled inside the main package and the GenDoc worker inside the CLI tool; the # samples are not published. # GenerateSBOM activates Microsoft.Sbom.Targets in each packable project: each package embeds its SPDX diff --git a/.gitignore b/.gitignore index eb9a84fe..018e3e99 100644 --- a/.gitignore +++ b/.gitignore @@ -293,9 +293,9 @@ __pycache__/ tools/floor-check/local-feed/ tools/floor-check/packages/ tools/floor-check/build.log -# Dummies packaged-asset compatibility check (tools/dummies-check): CI-generated artifacts, never committed. -# local-feed holds the packed .nupkg the dummies job produces; packages/ is the project-local NuGet +# JustDummies packaged-asset compatibility check (tools/justdummies-check): CI-generated artifacts, never committed. +# local-feed holds the packed .nupkg the justdummies job produces; packages/ is the project-local NuGet # extraction folder (RestorePackagesPath); *.log are the job's per-asset run outputs. -tools/dummies-check/local-feed/ -tools/dummies-check/packages/ -tools/dummies-check/*.log +tools/justdummies-check/local-feed/ +tools/justdummies-check/packages/ +tools/justdummies-check/*.log diff --git a/CLAUDE.md b/CLAUDE.md index e34b8569..f1e3d729 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -94,7 +94,7 @@ The essentials, inlined so they hold even if `AGENTS.md` is not read: * Follow `.github/pull_request_template.md` for every pull request. * Do not open a pull request unless I explicitly ask for one. * PR titles, descriptions, commits, and branch names must be written in English. -* Write every commit message per [`CONTRIBUTING.md`](CONTRIBUTING.md): Conventional Commits, a closed type list, the scopes `core, analyzers, binder, cli, dummies, gendoc, testing`, an imperative header within 72 characters, and `Refs: #NN` in a footer when a GitHub issue exists (issue-closing keywords belong in the PR description, not the commit). +* Write every commit message per [`CONTRIBUTING.md`](CONTRIBUTING.md): Conventional Commits, a closed type list, the scopes `core, analyzers, binder, cli, justdummies, gendoc, testing`, an imperative header within 72 characters, and `Refs: #NN` in a footer when a GitHub issue exists (issue-closing keywords belong in the PR description, not the commit). * Write every pull request title per [`CONTRIBUTING.md`](CONTRIBUTING.md): name the whole change in English; a single-intention PR mirrors its commit header (`type(scope): description`), a multi-intention PR uses a short descriptive title, and issue references stay in the description, not the title. * Enable the local commit-message hook once per clone with `git config core.hooksPath .githooks`; the same check runs in CI on every pull request. * Before opening a pull request — and after pushing more commits to an open one — read the branch against a fresh `origin/main` and, if the history is messy (pending `fixup!`/`squash!`, wip/typo/"address review" commits, headers the lint rejects, one change split across non-standalone commits or two folded into one), **propose** a cleanup and rewrite only after I approve — while the branch is yours alone, with `git push --force-with-lease`, leaving the diff against `origin/main` unchanged. This repository merges with a merge commit, so a messy branch reaches `main`. Full rule in [`AGENTS.md`](AGENTS.md) ("Tidying history before a pull request"); the `/tidy-history` command runs it. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 897e8939..ec5aac98 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ guidelines. ## Public API baseline The shipping libraries — `FirstClassErrors`, `FirstClassErrors.Testing`, -`FirstClassErrors.RequestBinder` (the `lib` train) and `Dummies` (the `dum` +`FirstClassErrors.RequestBinder` (the `lib` train) and `JustDummies` (the `dum` train) — carry a committed public-API baseline, so every change to their public surface is a reviewed diff and an accidental breaking change (a removed overload, a narrowed return type, a renamed member) cannot ship silently under a version @@ -35,7 +35,7 @@ number that promises compatibility. Two guards, wired once in surface change fails the build until the same change updates the baseline. * **Package validation** (`EnablePackageValidation`) runs ApiCompat during `dotnet pack`. With no baseline version set it performs the same-package - cross-target-framework check (it proves `Dummies`' net8.0 surface never drops + cross-target-framework check (it proves `JustDummies`' net8.0 surface never drops API a netstandard2.0 consumer sees). To additionally gate against a published version, set `PackageValidationBaselineVersion`; `0.1.0-preview.1` is the first such baseline available for the `lib` train. @@ -47,7 +47,7 @@ number that promises compatibility. Two guards, wired once in * **From the CLI**: `dotnet format analyzers --diagnostics RS0016` appends the new entries to `PublicAPI.Unshipped.txt`; for a **removal**, delete the matching line by hand. -* **Multi-target (`Dummies`)**: each framework has its own baseline under +* **Multi-target (`JustDummies`)**: each framework has its own baseline under `PublicAPI//`, and `dotnet format` rewrites only one framework's file per run — update `net8.0` and `netstandard2.0` separately when a change touches both. * **At release**: promote the accumulated `PublicAPI.Unshipped.txt` entries into @@ -299,7 +299,7 @@ When present it MUST be lowercase and MUST be one of: | `analyzers` | `FirstClassErrors.Analyzers` — the Roslyn analyzers and their `FCExxx` diagnostics | | `binder` | `FirstClassErrors.RequestBinder` — the request binder for the primary-adapter boundary | | `cli` | `FirstClassErrors.Cli` — the command-line tool | -| `dummies` | `Dummies` — the standalone arbitrary-test-value generator | +| `justdummies` | `JustDummies` — the standalone arbitrary-test-value generator | | `gendoc` | `FirstClassErrors.GenDoc` and its worker — the documentation generator | | `testing` | `FirstClassErrors.Testing` — the test-support package | @@ -312,7 +312,7 @@ into **release trains** by scope — `tools/trains.sh` is the single source of truth — and each train publishes independently: `lib` (scopes `core`, `analyzers`, `testing`, `binder` → `FirstClassErrors`, `FirstClassErrors.Testing` and `FirstClassErrors.RequestBinder`), `cli` (scopes `cli`, `gendoc` → the `fce` tool) -and `dum` (scope `dummies` → `Dummies`). A commit's scope decides which train's +and `dum` (scope `justdummies` → `JustDummies`). A commit's scope decides which train's release notes and changelog it lands in; see [Adding a release train](doc/handwritten/for-maintainers/AddingAReleaseTrain.en.md). diff --git a/Dummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/Dummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt deleted file mode 100644 index 22f58aee..00000000 --- a/Dummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt +++ /dev/null @@ -1,7 +0,0 @@ -#nullable enable -Dummies.Xunit.ReproducibleAttribute -Dummies.Xunit.ReproducibleAttribute.ReproducibleAttribute() -> void -Dummies.Xunit.ReproducibleAttribute.Seed.get -> int -Dummies.Xunit.ReproducibleAttribute.Seed.set -> void -override Dummies.Xunit.ReproducibleAttribute.After(System.Reflection.MethodInfo! methodUnderTest, Xunit.v3.IXunitTest! test) -> void -override Dummies.Xunit.ReproducibleAttribute.Before(System.Reflection.MethodInfo! methodUnderTest, Xunit.v3.IXunitTest! test) -> void diff --git a/Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt b/Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt deleted file mode 100644 index e10931c3..00000000 --- a/Dummies/PublicAPI/net8.0/PublicAPI.Unshipped.txt +++ /dev/null @@ -1,499 +0,0 @@ -#nullable enable -Dummies.Any -Dummies.AnyArray -Dummies.AnyArray.Distinct() -> Dummies.AnyArray! -Dummies.AnyArray.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyArray! -Dummies.AnyBoolean -Dummies.AnyBoolean.DifferentFrom(bool value) -> Dummies.AnyBoolean! -Dummies.AnyBoolean.False() -> Dummies.AnyBoolean! -Dummies.AnyBoolean.Generate() -> bool -Dummies.AnyBoolean.True() -> Dummies.AnyBoolean! -Dummies.AnyByte -Dummies.AnyByte.Between(byte minimum, byte maximum) -> Dummies.AnyByte! -Dummies.AnyByte.DifferentFrom(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.Except(params byte[]! values) -> Dummies.AnyByte! -Dummies.AnyByte.Generate() -> byte -Dummies.AnyByte.GreaterThan(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.GreaterThanOrEqualTo(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.LessThan(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.LessThanOrEqualTo(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.MultipleOf(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.NonZero() -> Dummies.AnyByte! -Dummies.AnyByte.OneOf(params byte[]! values) -> Dummies.AnyByte! -Dummies.AnyByte.Zero() -> Dummies.AnyByte! -Dummies.AnyChar -Dummies.AnyChar.Alpha() -> Dummies.AnyChar! -Dummies.AnyChar.AlphaNumeric() -> Dummies.AnyChar! -Dummies.AnyChar.DifferentFrom(char value) -> Dummies.AnyChar! -Dummies.AnyChar.Except(params char[]! values) -> Dummies.AnyChar! -Dummies.AnyChar.Generate() -> char -Dummies.AnyChar.LowerCase() -> Dummies.AnyChar! -Dummies.AnyChar.Numeric() -> Dummies.AnyChar! -Dummies.AnyChar.OneOf(params char[]! values) -> Dummies.AnyChar! -Dummies.AnyChar.UpperCase() -> Dummies.AnyChar! -Dummies.AnyCollection -Dummies.AnyCollection.Containing(TItem value) -> TSelf! -Dummies.AnyCollection.ContainingAny(Dummies.IAny! generator) -> TSelf! -Dummies.AnyCollection.Empty() -> TSelf! -Dummies.AnyCollection.Generate() -> TResult -Dummies.AnyCollection.NonEmpty() -> TSelf! -Dummies.AnyCollection.WithCount(int count) -> TSelf! -Dummies.AnyCollection.WithCountBetween(int minimum, int maximum) -> TSelf! -Dummies.AnyCollection.WithMaxCount(int count) -> TSelf! -Dummies.AnyCollection.WithMinCount(int count) -> TSelf! -Dummies.AnyContext -Dummies.AnyContext.Boolean() -> Dummies.AnyBoolean! -Dummies.AnyContext.Byte() -> Dummies.AnyByte! -Dummies.AnyContext.Char() -> Dummies.AnyChar! -Dummies.AnyContext.DateOnly() -> Dummies.AnyDateOnly! -Dummies.AnyContext.DateTime() -> Dummies.AnyDateTime! -Dummies.AnyContext.DateTimeOffset() -> Dummies.AnyDateTimeOffset! -Dummies.AnyContext.Decimal() -> Dummies.AnyDecimal! -Dummies.AnyContext.Double() -> Dummies.AnyDouble! -Dummies.AnyContext.ElementOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyOneOf! -Dummies.AnyContext.ElementOf(System.Collections.Generic.IReadOnlyList! values) -> Dummies.AnyOneOf! -Dummies.AnyContext.Enum() -> Dummies.AnyEnum! -Dummies.AnyContext.Guid() -> Dummies.AnyGuid! -Dummies.AnyContext.Half() -> Dummies.AnyHalf! -Dummies.AnyContext.Int128() -> Dummies.AnyInt128! -Dummies.AnyContext.Int16() -> Dummies.AnyInt16! -Dummies.AnyContext.Int32() -> Dummies.AnyInt32! -Dummies.AnyContext.Int64() -> Dummies.AnyInt64! -Dummies.AnyContext.OneOf(params T[]! values) -> Dummies.AnyOneOf! -Dummies.AnyContext.SByte() -> Dummies.AnySByte! -Dummies.AnyContext.Seed.get -> int -Dummies.AnyContext.Single() -> Dummies.AnySingle! -Dummies.AnyContext.String() -> Dummies.AnyString! -Dummies.AnyContext.StringMatching(string! pattern) -> Dummies.AnyPattern! -Dummies.AnyContext.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! -Dummies.AnyContext.TimeOnly() -> Dummies.AnyTimeOnly! -Dummies.AnyContext.TimeSpan() -> Dummies.AnyTimeSpan! -Dummies.AnyContext.UInt128() -> Dummies.AnyUInt128! -Dummies.AnyContext.UInt16() -> Dummies.AnyUInt16! -Dummies.AnyContext.UInt32() -> Dummies.AnyUInt32! -Dummies.AnyContext.UInt64() -> Dummies.AnyUInt64! -Dummies.AnyContext.Uri() -> Dummies.AnyUri! -Dummies.AnyDateOnly -Dummies.AnyDateOnly.After(System.DateOnly date) -> Dummies.AnyDateOnly! -Dummies.AnyDateOnly.AfterOrEqualTo(System.DateOnly date) -> Dummies.AnyDateOnly! -Dummies.AnyDateOnly.Before(System.DateOnly date) -> Dummies.AnyDateOnly! -Dummies.AnyDateOnly.BeforeOrEqualTo(System.DateOnly date) -> Dummies.AnyDateOnly! -Dummies.AnyDateOnly.Between(System.DateOnly start, System.DateOnly end) -> Dummies.AnyDateOnly! -Dummies.AnyDateOnly.DifferentFrom(System.DateOnly value) -> Dummies.AnyDateOnly! -Dummies.AnyDateOnly.Except(params System.DateOnly[]! values) -> Dummies.AnyDateOnly! -Dummies.AnyDateOnly.Generate() -> System.DateOnly -Dummies.AnyDateOnly.OneOf(params System.DateOnly[]! values) -> Dummies.AnyDateOnly! -Dummies.AnyDateTime -Dummies.AnyDateTime.After(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.AfterOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Before(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.BeforeOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Between(System.DateTime start, System.DateTime end) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.DifferentFrom(System.DateTime value) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Except(params System.DateTime[]! values) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Generate() -> System.DateTime -Dummies.AnyDateTime.OneOf(params System.DateTime[]! values) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.WithGranularity(System.TimeSpan granularity) -> Dummies.AnyDateTime! -Dummies.AnyDateTimeOffset -Dummies.AnyDateTimeOffset.After(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.AfterOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Before(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.BeforeOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Between(System.DateTimeOffset start, System.DateTimeOffset end) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.DifferentFrom(System.DateTimeOffset value) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Except(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Generate() -> System.DateTimeOffset -Dummies.AnyDateTimeOffset.OneOf(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.WithGranularity(System.TimeSpan granularity) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.WithOffset(System.TimeSpan offset) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.WithOffsetBetween(System.TimeSpan minimum, System.TimeSpan maximum) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDecimal -Dummies.AnyDecimal.Between(decimal minimum, decimal maximum) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.DifferentFrom(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Except(params decimal[]! values) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Generate() -> decimal -Dummies.AnyDecimal.GreaterThan(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.GreaterThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.LessThan(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.LessThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Negative() -> Dummies.AnyDecimal! -Dummies.AnyDecimal.NonZero() -> Dummies.AnyDecimal! -Dummies.AnyDecimal.OneOf(params decimal[]! values) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Positive() -> Dummies.AnyDecimal! -Dummies.AnyDecimal.WithScale(int scale) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Zero() -> Dummies.AnyDecimal! -Dummies.AnyDictionary -Dummies.AnyDictionary.ContainingAnyKey(Dummies.IAny! generator) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.ContainingEntry(TKey key, TValue value) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.ContainingKey(TKey key) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.Empty() -> Dummies.AnyDictionary! -Dummies.AnyDictionary.Generate() -> System.Collections.Generic.Dictionary! -Dummies.AnyDictionary.NonEmpty() -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithCount(int count) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithCountBetween(int minimum, int maximum) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithMaxCount(int count) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithMinCount(int count) -> Dummies.AnyDictionary! -Dummies.AnyDouble -Dummies.AnyDouble.Between(double minimum, double maximum) -> Dummies.AnyDouble! -Dummies.AnyDouble.DifferentFrom(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.Except(params double[]! values) -> Dummies.AnyDouble! -Dummies.AnyDouble.Generate() -> double -Dummies.AnyDouble.GreaterThan(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.GreaterThanOrEqualTo(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.LessThan(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.LessThanOrEqualTo(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.Negative() -> Dummies.AnyDouble! -Dummies.AnyDouble.NonZero() -> Dummies.AnyDouble! -Dummies.AnyDouble.OneOf(params double[]! values) -> Dummies.AnyDouble! -Dummies.AnyDouble.Positive() -> Dummies.AnyDouble! -Dummies.AnyDouble.Zero() -> Dummies.AnyDouble! -Dummies.AnyEnum -Dummies.AnyEnum.DifferentFrom(TEnum value) -> Dummies.AnyEnum! -Dummies.AnyEnum.Except(params TEnum[]! values) -> Dummies.AnyEnum! -Dummies.AnyEnum.Generate() -> TEnum -Dummies.AnyEnum.OneOf(params TEnum[]! values) -> Dummies.AnyEnum! -Dummies.AnyException -Dummies.AnyException.AnyException(string! message) -> void -Dummies.AnyException.AnyException(string! message, System.Exception! innerException) -> void -Dummies.AnyExtensions -Dummies.AnyFtpUri -Dummies.AnyFtpUri.Generate() -> System.Uri! -Dummies.AnyFtpUri.WithHost(string! host) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithoutPath() -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithPathSegments(int count) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithPort() -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithPort(int port) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithUserInfo() -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithUserInfo(string! user) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithUserInfo(string! user, string! password) -> Dummies.AnyFtpUri! -Dummies.AnyGenerationException -Dummies.AnyGenerationException.AnyGenerationException(string! message) -> void -Dummies.AnyGenerationException.AnyGenerationException(string! message, System.Exception! innerException) -> void -Dummies.AnyGenerationException.Seed.get -> int? -Dummies.AnyGuid -Dummies.AnyGuid.DifferentFrom(System.Guid value) -> Dummies.AnyGuid! -Dummies.AnyGuid.Empty() -> Dummies.AnyGuid! -Dummies.AnyGuid.Except(params System.Guid[]! values) -> Dummies.AnyGuid! -Dummies.AnyGuid.Generate() -> System.Guid -Dummies.AnyGuid.NonEmpty() -> Dummies.AnyGuid! -Dummies.AnyGuid.OneOf(params System.Guid[]! values) -> Dummies.AnyGuid! -Dummies.AnyHalf -Dummies.AnyHalf.Between(System.Half minimum, System.Half maximum) -> Dummies.AnyHalf! -Dummies.AnyHalf.DifferentFrom(System.Half value) -> Dummies.AnyHalf! -Dummies.AnyHalf.Except(params System.Half[]! values) -> Dummies.AnyHalf! -Dummies.AnyHalf.Generate() -> System.Half -Dummies.AnyHalf.GreaterThan(System.Half value) -> Dummies.AnyHalf! -Dummies.AnyHalf.GreaterThanOrEqualTo(System.Half value) -> Dummies.AnyHalf! -Dummies.AnyHalf.LessThan(System.Half value) -> Dummies.AnyHalf! -Dummies.AnyHalf.LessThanOrEqualTo(System.Half value) -> Dummies.AnyHalf! -Dummies.AnyHalf.Negative() -> Dummies.AnyHalf! -Dummies.AnyHalf.NonZero() -> Dummies.AnyHalf! -Dummies.AnyHalf.OneOf(params System.Half[]! values) -> Dummies.AnyHalf! -Dummies.AnyHalf.Positive() -> Dummies.AnyHalf! -Dummies.AnyHalf.Zero() -> Dummies.AnyHalf! -Dummies.AnyInt128 -Dummies.AnyInt128.Between(System.Int128 minimum, System.Int128 maximum) -> Dummies.AnyInt128! -Dummies.AnyInt128.DifferentFrom(System.Int128 value) -> Dummies.AnyInt128! -Dummies.AnyInt128.Except(params System.Int128[]! values) -> Dummies.AnyInt128! -Dummies.AnyInt128.Generate() -> System.Int128 -Dummies.AnyInt128.GreaterThan(System.Int128 value) -> Dummies.AnyInt128! -Dummies.AnyInt128.GreaterThanOrEqualTo(System.Int128 value) -> Dummies.AnyInt128! -Dummies.AnyInt128.LessThan(System.Int128 value) -> Dummies.AnyInt128! -Dummies.AnyInt128.LessThanOrEqualTo(System.Int128 value) -> Dummies.AnyInt128! -Dummies.AnyInt128.MultipleOf(System.Int128 value) -> Dummies.AnyInt128! -Dummies.AnyInt128.Negative() -> Dummies.AnyInt128! -Dummies.AnyInt128.NonZero() -> Dummies.AnyInt128! -Dummies.AnyInt128.OneOf(params System.Int128[]! values) -> Dummies.AnyInt128! -Dummies.AnyInt128.Positive() -> Dummies.AnyInt128! -Dummies.AnyInt128.Zero() -> Dummies.AnyInt128! -Dummies.AnyInt16 -Dummies.AnyInt16.Between(short minimum, short maximum) -> Dummies.AnyInt16! -Dummies.AnyInt16.DifferentFrom(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.Except(params short[]! values) -> Dummies.AnyInt16! -Dummies.AnyInt16.Generate() -> short -Dummies.AnyInt16.GreaterThan(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.GreaterThanOrEqualTo(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.LessThan(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.LessThanOrEqualTo(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.MultipleOf(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.Negative() -> Dummies.AnyInt16! -Dummies.AnyInt16.NonZero() -> Dummies.AnyInt16! -Dummies.AnyInt16.OneOf(params short[]! values) -> Dummies.AnyInt16! -Dummies.AnyInt16.Positive() -> Dummies.AnyInt16! -Dummies.AnyInt16.Zero() -> Dummies.AnyInt16! -Dummies.AnyInt32 -Dummies.AnyInt32.Between(int minimum, int maximum) -> Dummies.AnyInt32! -Dummies.AnyInt32.DifferentFrom(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.Except(params int[]! values) -> Dummies.AnyInt32! -Dummies.AnyInt32.Generate() -> int -Dummies.AnyInt32.GreaterThan(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.GreaterThanOrEqualTo(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.LessThan(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.LessThanOrEqualTo(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.MultipleOf(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.Negative() -> Dummies.AnyInt32! -Dummies.AnyInt32.NonZero() -> Dummies.AnyInt32! -Dummies.AnyInt32.OneOf(params int[]! values) -> Dummies.AnyInt32! -Dummies.AnyInt32.Positive() -> Dummies.AnyInt32! -Dummies.AnyInt32.Zero() -> Dummies.AnyInt32! -Dummies.AnyInt64 -Dummies.AnyInt64.Between(long minimum, long maximum) -> Dummies.AnyInt64! -Dummies.AnyInt64.DifferentFrom(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.Except(params long[]! values) -> Dummies.AnyInt64! -Dummies.AnyInt64.Generate() -> long -Dummies.AnyInt64.GreaterThan(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.GreaterThanOrEqualTo(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.LessThan(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.LessThanOrEqualTo(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.MultipleOf(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.Negative() -> Dummies.AnyInt64! -Dummies.AnyInt64.NonZero() -> Dummies.AnyInt64! -Dummies.AnyInt64.OneOf(params long[]! values) -> Dummies.AnyInt64! -Dummies.AnyInt64.Positive() -> Dummies.AnyInt64! -Dummies.AnyInt64.Zero() -> Dummies.AnyInt64! -Dummies.AnyList -Dummies.AnyList.Distinct() -> Dummies.AnyList! -Dummies.AnyList.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyList! -Dummies.AnyMailtoUri -Dummies.AnyMailtoUri.Generate() -> System.Uri! -Dummies.AnyMailtoUri.WithDomain(string! domain) -> Dummies.AnyMailtoUri! -Dummies.AnyMailtoUri.WithHeaders() -> Dummies.AnyMailtoUri! -Dummies.AnyMailtoUri.WithLocalPart(string! localPart) -> Dummies.AnyMailtoUri! -Dummies.AnyOneOf -Dummies.AnyOneOf.Generate() -> T -Dummies.AnyPattern -Dummies.AnyPattern.Generate() -> string! -Dummies.AnyRelativeUri -Dummies.AnyRelativeUri.Generate() -> System.Uri! -Dummies.AnyRelativeUri.Rooted() -> Dummies.AnyRelativeUri! -Dummies.AnyRelativeUri.WithFragment() -> Dummies.AnyRelativeUri! -Dummies.AnyRelativeUri.WithPathSegments(int count) -> Dummies.AnyRelativeUri! -Dummies.AnyRelativeUri.WithQuery() -> Dummies.AnyRelativeUri! -Dummies.AnySByte -Dummies.AnySByte.Between(sbyte minimum, sbyte maximum) -> Dummies.AnySByte! -Dummies.AnySByte.DifferentFrom(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.Except(params sbyte[]! values) -> Dummies.AnySByte! -Dummies.AnySByte.Generate() -> sbyte -Dummies.AnySByte.GreaterThan(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.GreaterThanOrEqualTo(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.LessThan(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.LessThanOrEqualTo(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.MultipleOf(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.Negative() -> Dummies.AnySByte! -Dummies.AnySByte.NonZero() -> Dummies.AnySByte! -Dummies.AnySByte.OneOf(params sbyte[]! values) -> Dummies.AnySByte! -Dummies.AnySByte.Positive() -> Dummies.AnySByte! -Dummies.AnySByte.Zero() -> Dummies.AnySByte! -Dummies.AnySequence -Dummies.AnySequence.Distinct() -> Dummies.AnySequence! -Dummies.AnySequence.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySequence! -Dummies.AnySet -Dummies.AnySingle -Dummies.AnySingle.Between(float minimum, float maximum) -> Dummies.AnySingle! -Dummies.AnySingle.DifferentFrom(float value) -> Dummies.AnySingle! -Dummies.AnySingle.Except(params float[]! values) -> Dummies.AnySingle! -Dummies.AnySingle.Generate() -> float -Dummies.AnySingle.GreaterThan(float value) -> Dummies.AnySingle! -Dummies.AnySingle.GreaterThanOrEqualTo(float value) -> Dummies.AnySingle! -Dummies.AnySingle.LessThan(float value) -> Dummies.AnySingle! -Dummies.AnySingle.LessThanOrEqualTo(float value) -> Dummies.AnySingle! -Dummies.AnySingle.Negative() -> Dummies.AnySingle! -Dummies.AnySingle.NonZero() -> Dummies.AnySingle! -Dummies.AnySingle.OneOf(params float[]! values) -> Dummies.AnySingle! -Dummies.AnySingle.Positive() -> Dummies.AnySingle! -Dummies.AnySingle.Zero() -> Dummies.AnySingle! -Dummies.AnyString -Dummies.AnyString.Alpha() -> Dummies.AnyString! -Dummies.AnyString.AlphaNumeric() -> Dummies.AnyString! -Dummies.AnyString.Containing(string! value) -> Dummies.AnyString! -Dummies.AnyString.DifferentFrom(string! value) -> Dummies.AnyString! -Dummies.AnyString.EndingWith(string! suffix) -> Dummies.AnyString! -Dummies.AnyString.Except(params string![]! values) -> Dummies.AnyString! -Dummies.AnyString.Generate() -> string! -Dummies.AnyString.LowerCase() -> Dummies.AnyString! -Dummies.AnyString.NonEmpty() -> Dummies.AnyString! -Dummies.AnyString.Numeric() -> Dummies.AnyString! -Dummies.AnyString.OneOf(params string![]! values) -> Dummies.AnyStringOneOf! -Dummies.AnyString.OneOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyStringOneOf! -Dummies.AnyString.StartingWith(string! prefix) -> Dummies.AnyString! -Dummies.AnyString.UpperCase() -> Dummies.AnyString! -Dummies.AnyString.WithChars(string! pool) -> Dummies.AnyString! -Dummies.AnyString.WithLength(int length) -> Dummies.AnyString! -Dummies.AnyString.WithLengthBetween(int minimum, int maximum) -> Dummies.AnyString! -Dummies.AnyString.WithMaxLength(int length) -> Dummies.AnyString! -Dummies.AnyString.WithMinLength(int length) -> Dummies.AnyString! -Dummies.AnyStringOneOf -Dummies.AnyStringOneOf.Generate() -> string! -Dummies.AnyTimeOnly -Dummies.AnyTimeOnly.After(System.TimeOnly time) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.AfterOrEqualTo(System.TimeOnly time) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.Before(System.TimeOnly time) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.BeforeOrEqualTo(System.TimeOnly time) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.Between(System.TimeOnly start, System.TimeOnly end) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.DifferentFrom(System.TimeOnly value) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.Except(params System.TimeOnly[]! values) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.Generate() -> System.TimeOnly -Dummies.AnyTimeOnly.OneOf(params System.TimeOnly[]! values) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeOnly.WithGranularity(System.TimeSpan granularity) -> Dummies.AnyTimeOnly! -Dummies.AnyTimeSpan -Dummies.AnyTimeSpan.Between(System.TimeSpan minimum, System.TimeSpan maximum) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.DifferentFrom(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Except(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Generate() -> System.TimeSpan -Dummies.AnyTimeSpan.GreaterThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.GreaterThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.LessThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.LessThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Negative() -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.NonZero() -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.OneOf(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Positive() -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.WithGranularity(System.TimeSpan granularity) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Zero() -> Dummies.AnyTimeSpan! -Dummies.AnyUInt128 -Dummies.AnyUInt128.Between(System.UInt128 minimum, System.UInt128 maximum) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.DifferentFrom(System.UInt128 value) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.Except(params System.UInt128[]! values) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.Generate() -> System.UInt128 -Dummies.AnyUInt128.GreaterThan(System.UInt128 value) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.GreaterThanOrEqualTo(System.UInt128 value) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.LessThan(System.UInt128 value) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.LessThanOrEqualTo(System.UInt128 value) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.MultipleOf(System.UInt128 value) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.NonZero() -> Dummies.AnyUInt128! -Dummies.AnyUInt128.OneOf(params System.UInt128[]! values) -> Dummies.AnyUInt128! -Dummies.AnyUInt128.Zero() -> Dummies.AnyUInt128! -Dummies.AnyUInt16 -Dummies.AnyUInt16.Between(ushort minimum, ushort maximum) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.DifferentFrom(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.Except(params ushort[]! values) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.Generate() -> ushort -Dummies.AnyUInt16.GreaterThan(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.GreaterThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.LessThan(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.LessThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.MultipleOf(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.NonZero() -> Dummies.AnyUInt16! -Dummies.AnyUInt16.OneOf(params ushort[]! values) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.Zero() -> Dummies.AnyUInt16! -Dummies.AnyUInt32 -Dummies.AnyUInt32.Between(uint minimum, uint maximum) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.DifferentFrom(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.Except(params uint[]! values) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.Generate() -> uint -Dummies.AnyUInt32.GreaterThan(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.GreaterThanOrEqualTo(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.LessThan(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.LessThanOrEqualTo(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.MultipleOf(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.NonZero() -> Dummies.AnyUInt32! -Dummies.AnyUInt32.OneOf(params uint[]! values) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.Zero() -> Dummies.AnyUInt32! -Dummies.AnyUInt64 -Dummies.AnyUInt64.Between(ulong minimum, ulong maximum) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.DifferentFrom(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.Except(params ulong[]! values) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.Generate() -> ulong -Dummies.AnyUInt64.GreaterThan(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.GreaterThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.LessThan(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.LessThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.MultipleOf(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.NonZero() -> Dummies.AnyUInt64! -Dummies.AnyUInt64.OneOf(params ulong[]! values) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.Zero() -> Dummies.AnyUInt64! -Dummies.AnyUri -Dummies.AnyUri.Ftp() -> Dummies.AnyFtpUri! -Dummies.AnyUri.Generate() -> System.Uri! -Dummies.AnyUri.Mailto() -> Dummies.AnyMailtoUri! -Dummies.AnyUri.Relative() -> Dummies.AnyRelativeUri! -Dummies.AnyUri.Web() -> Dummies.AnyWebUri! -Dummies.AnyUri.WebSocket() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri -Dummies.AnyWebSocketUri.Generate() -> System.Uri! -Dummies.AnyWebSocketUri.UsingWs() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.UsingWss() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithHost(string! host) -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithoutPath() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithPathSegments(int count) -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithPort() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithPort(int port) -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithQuery() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebUri -Dummies.AnyWebUri.Generate() -> System.Uri! -Dummies.AnyWebUri.UsingHttp() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.UsingHttps() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithFragment() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithHost(string! host) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithoutPath() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithPathSegments(int count) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithPort() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithPort(int port) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithQuery() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithUserInfo() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithUserInfo(string! user) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithUserInfo(string! user, string! password) -> Dummies.AnyWebUri! -Dummies.ConflictingAnyConstraintException -Dummies.ConflictingAnyConstraintException.ConflictingAnyConstraintException(string! message) -> void -Dummies.IAny -Dummies.IAny.Generate() -> T -Dummies.NullableExtensions -Dummies.NullableReferenceExtensions -Dummies.UnsupportedRegexException -Dummies.UnsupportedRegexException.UnsupportedRegexException(string! message) -> void -static Dummies.Any.ArrayOf(Dummies.IAny! item) -> Dummies.AnyArray! -static Dummies.Any.Boolean() -> Dummies.AnyBoolean! -static Dummies.Any.Byte() -> Dummies.AnyByte! -static Dummies.Any.Char() -> Dummies.AnyChar! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, Dummies.IAny! eighth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.DateOnly() -> Dummies.AnyDateOnly! -static Dummies.Any.DateTime() -> Dummies.AnyDateTime! -static Dummies.Any.DateTimeOffset() -> Dummies.AnyDateTimeOffset! -static Dummies.Any.Decimal() -> Dummies.AnyDecimal! -static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values) -> Dummies.AnyDictionary! -static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values, System.Collections.Generic.IEqualityComparer! keyComparer) -> Dummies.AnyDictionary! -static Dummies.Any.Double() -> Dummies.AnyDouble! -static Dummies.Any.ElementOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyOneOf! -static Dummies.Any.ElementOf(System.Collections.Generic.IReadOnlyList! values) -> Dummies.AnyOneOf! -static Dummies.Any.Enum() -> Dummies.AnyEnum! -static Dummies.Any.Guid() -> Dummies.AnyGuid! -static Dummies.Any.Half() -> Dummies.AnyHalf! -static Dummies.Any.Int128() -> Dummies.AnyInt128! -static Dummies.Any.Int16() -> Dummies.AnyInt16! -static Dummies.Any.Int32() -> Dummies.AnyInt32! -static Dummies.Any.Int64() -> Dummies.AnyInt64! -static Dummies.Any.ListOf(Dummies.IAny! item) -> Dummies.AnyList! -static Dummies.Any.OneOf(params T[]! values) -> Dummies.AnyOneOf! -static Dummies.Any.PairOf(Dummies.IAny! first, Dummies.IAny! second) -> Dummies.IAny<(T1, T2)>! -static Dummies.Any.Reproducibly(int seed, System.Action! body, System.Action? report = null) -> void -static Dummies.Any.Reproducibly(int seed, System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! -static Dummies.Any.Reproducibly(System.Action! body, System.Action? report = null) -> void -static Dummies.Any.Reproducibly(System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! -static Dummies.Any.SByte() -> Dummies.AnySByte! -static Dummies.Any.SequenceOf(Dummies.IAny! item) -> Dummies.AnySequence! -static Dummies.Any.SetOf(Dummies.IAny! item) -> Dummies.AnySet! -static Dummies.Any.SetOf(Dummies.IAny! item, System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySet! -static Dummies.Any.Single() -> Dummies.AnySingle! -static Dummies.Any.String() -> Dummies.AnyString! -static Dummies.Any.StringMatching(string! pattern) -> Dummies.AnyPattern! -static Dummies.Any.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! -static Dummies.Any.TimeOnly() -> Dummies.AnyTimeOnly! -static Dummies.Any.TimeSpan() -> Dummies.AnyTimeSpan! -static Dummies.Any.TripleOf(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third) -> Dummies.IAny<(T1, T2, T3)>! -static Dummies.Any.UInt128() -> Dummies.AnyUInt128! -static Dummies.Any.UInt16() -> Dummies.AnyUInt16! -static Dummies.Any.UInt32() -> Dummies.AnyUInt32! -static Dummies.Any.UInt64() -> Dummies.AnyUInt64! -static Dummies.Any.Uri() -> Dummies.AnyUri! -static Dummies.Any.UseSeed(int seed) -> System.IDisposable! -static Dummies.Any.UseSeed(int seed, string! replaySnippet) -> System.IDisposable! -static Dummies.Any.WithSeed(int seed) -> Dummies.AnyContext! -static Dummies.AnyExtensions.As(this Dummies.IAny! generator, System.Func! factory) -> Dummies.IAny! -static Dummies.NullableExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! -static Dummies.NullableReferenceExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! diff --git a/Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt deleted file mode 100644 index e5a598cf..00000000 --- a/Dummies/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt +++ /dev/null @@ -1,426 +0,0 @@ -#nullable enable -Dummies.Any -Dummies.AnyArray -Dummies.AnyArray.Distinct() -> Dummies.AnyArray! -Dummies.AnyArray.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyArray! -Dummies.AnyBoolean -Dummies.AnyBoolean.DifferentFrom(bool value) -> Dummies.AnyBoolean! -Dummies.AnyBoolean.False() -> Dummies.AnyBoolean! -Dummies.AnyBoolean.Generate() -> bool -Dummies.AnyBoolean.True() -> Dummies.AnyBoolean! -Dummies.AnyByte -Dummies.AnyByte.Between(byte minimum, byte maximum) -> Dummies.AnyByte! -Dummies.AnyByte.DifferentFrom(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.Except(params byte[]! values) -> Dummies.AnyByte! -Dummies.AnyByte.Generate() -> byte -Dummies.AnyByte.GreaterThan(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.GreaterThanOrEqualTo(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.LessThan(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.LessThanOrEqualTo(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.MultipleOf(byte value) -> Dummies.AnyByte! -Dummies.AnyByte.NonZero() -> Dummies.AnyByte! -Dummies.AnyByte.OneOf(params byte[]! values) -> Dummies.AnyByte! -Dummies.AnyByte.Zero() -> Dummies.AnyByte! -Dummies.AnyChar -Dummies.AnyChar.Alpha() -> Dummies.AnyChar! -Dummies.AnyChar.AlphaNumeric() -> Dummies.AnyChar! -Dummies.AnyChar.DifferentFrom(char value) -> Dummies.AnyChar! -Dummies.AnyChar.Except(params char[]! values) -> Dummies.AnyChar! -Dummies.AnyChar.Generate() -> char -Dummies.AnyChar.LowerCase() -> Dummies.AnyChar! -Dummies.AnyChar.Numeric() -> Dummies.AnyChar! -Dummies.AnyChar.OneOf(params char[]! values) -> Dummies.AnyChar! -Dummies.AnyChar.UpperCase() -> Dummies.AnyChar! -Dummies.AnyCollection -Dummies.AnyCollection.Containing(TItem value) -> TSelf! -Dummies.AnyCollection.ContainingAny(Dummies.IAny! generator) -> TSelf! -Dummies.AnyCollection.Empty() -> TSelf! -Dummies.AnyCollection.Generate() -> TResult -Dummies.AnyCollection.NonEmpty() -> TSelf! -Dummies.AnyCollection.WithCount(int count) -> TSelf! -Dummies.AnyCollection.WithCountBetween(int minimum, int maximum) -> TSelf! -Dummies.AnyCollection.WithMaxCount(int count) -> TSelf! -Dummies.AnyCollection.WithMinCount(int count) -> TSelf! -Dummies.AnyContext -Dummies.AnyContext.Boolean() -> Dummies.AnyBoolean! -Dummies.AnyContext.Byte() -> Dummies.AnyByte! -Dummies.AnyContext.Char() -> Dummies.AnyChar! -Dummies.AnyContext.DateTime() -> Dummies.AnyDateTime! -Dummies.AnyContext.DateTimeOffset() -> Dummies.AnyDateTimeOffset! -Dummies.AnyContext.Decimal() -> Dummies.AnyDecimal! -Dummies.AnyContext.Double() -> Dummies.AnyDouble! -Dummies.AnyContext.ElementOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyOneOf! -Dummies.AnyContext.ElementOf(System.Collections.Generic.IReadOnlyList! values) -> Dummies.AnyOneOf! -Dummies.AnyContext.Enum() -> Dummies.AnyEnum! -Dummies.AnyContext.Guid() -> Dummies.AnyGuid! -Dummies.AnyContext.Int16() -> Dummies.AnyInt16! -Dummies.AnyContext.Int32() -> Dummies.AnyInt32! -Dummies.AnyContext.Int64() -> Dummies.AnyInt64! -Dummies.AnyContext.OneOf(params T[]! values) -> Dummies.AnyOneOf! -Dummies.AnyContext.SByte() -> Dummies.AnySByte! -Dummies.AnyContext.Seed.get -> int -Dummies.AnyContext.Single() -> Dummies.AnySingle! -Dummies.AnyContext.String() -> Dummies.AnyString! -Dummies.AnyContext.StringMatching(string! pattern) -> Dummies.AnyPattern! -Dummies.AnyContext.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! -Dummies.AnyContext.TimeSpan() -> Dummies.AnyTimeSpan! -Dummies.AnyContext.UInt16() -> Dummies.AnyUInt16! -Dummies.AnyContext.UInt32() -> Dummies.AnyUInt32! -Dummies.AnyContext.UInt64() -> Dummies.AnyUInt64! -Dummies.AnyContext.Uri() -> Dummies.AnyUri! -Dummies.AnyDateTime -Dummies.AnyDateTime.After(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.AfterOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Before(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.BeforeOrEqualTo(System.DateTime instant) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Between(System.DateTime start, System.DateTime end) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.DifferentFrom(System.DateTime value) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Except(params System.DateTime[]! values) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.Generate() -> System.DateTime -Dummies.AnyDateTime.OneOf(params System.DateTime[]! values) -> Dummies.AnyDateTime! -Dummies.AnyDateTime.WithGranularity(System.TimeSpan granularity) -> Dummies.AnyDateTime! -Dummies.AnyDateTimeOffset -Dummies.AnyDateTimeOffset.After(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.AfterOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Before(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.BeforeOrEqualTo(System.DateTimeOffset instant) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Between(System.DateTimeOffset start, System.DateTimeOffset end) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.DifferentFrom(System.DateTimeOffset value) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Except(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.Generate() -> System.DateTimeOffset -Dummies.AnyDateTimeOffset.OneOf(params System.DateTimeOffset[]! values) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.WithGranularity(System.TimeSpan granularity) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.WithOffset(System.TimeSpan offset) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDateTimeOffset.WithOffsetBetween(System.TimeSpan minimum, System.TimeSpan maximum) -> Dummies.AnyDateTimeOffset! -Dummies.AnyDecimal -Dummies.AnyDecimal.Between(decimal minimum, decimal maximum) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.DifferentFrom(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Except(params decimal[]! values) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Generate() -> decimal -Dummies.AnyDecimal.GreaterThan(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.GreaterThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.LessThan(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.LessThanOrEqualTo(decimal value) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Negative() -> Dummies.AnyDecimal! -Dummies.AnyDecimal.NonZero() -> Dummies.AnyDecimal! -Dummies.AnyDecimal.OneOf(params decimal[]! values) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Positive() -> Dummies.AnyDecimal! -Dummies.AnyDecimal.WithScale(int scale) -> Dummies.AnyDecimal! -Dummies.AnyDecimal.Zero() -> Dummies.AnyDecimal! -Dummies.AnyDictionary -Dummies.AnyDictionary.ContainingAnyKey(Dummies.IAny! generator) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.ContainingEntry(TKey key, TValue value) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.ContainingKey(TKey key) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.Empty() -> Dummies.AnyDictionary! -Dummies.AnyDictionary.Generate() -> System.Collections.Generic.Dictionary! -Dummies.AnyDictionary.NonEmpty() -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithCount(int count) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithCountBetween(int minimum, int maximum) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithMaxCount(int count) -> Dummies.AnyDictionary! -Dummies.AnyDictionary.WithMinCount(int count) -> Dummies.AnyDictionary! -Dummies.AnyDouble -Dummies.AnyDouble.Between(double minimum, double maximum) -> Dummies.AnyDouble! -Dummies.AnyDouble.DifferentFrom(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.Except(params double[]! values) -> Dummies.AnyDouble! -Dummies.AnyDouble.Generate() -> double -Dummies.AnyDouble.GreaterThan(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.GreaterThanOrEqualTo(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.LessThan(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.LessThanOrEqualTo(double value) -> Dummies.AnyDouble! -Dummies.AnyDouble.Negative() -> Dummies.AnyDouble! -Dummies.AnyDouble.NonZero() -> Dummies.AnyDouble! -Dummies.AnyDouble.OneOf(params double[]! values) -> Dummies.AnyDouble! -Dummies.AnyDouble.Positive() -> Dummies.AnyDouble! -Dummies.AnyDouble.Zero() -> Dummies.AnyDouble! -Dummies.AnyEnum -Dummies.AnyEnum.DifferentFrom(TEnum value) -> Dummies.AnyEnum! -Dummies.AnyEnum.Except(params TEnum[]! values) -> Dummies.AnyEnum! -Dummies.AnyEnum.Generate() -> TEnum -Dummies.AnyEnum.OneOf(params TEnum[]! values) -> Dummies.AnyEnum! -Dummies.AnyException -Dummies.AnyException.AnyException(string! message) -> void -Dummies.AnyException.AnyException(string! message, System.Exception! innerException) -> void -Dummies.AnyExtensions -Dummies.AnyFtpUri -Dummies.AnyFtpUri.Generate() -> System.Uri! -Dummies.AnyFtpUri.WithHost(string! host) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithoutPath() -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithPathSegments(int count) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithPort() -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithPort(int port) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithUserInfo() -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithUserInfo(string! user) -> Dummies.AnyFtpUri! -Dummies.AnyFtpUri.WithUserInfo(string! user, string! password) -> Dummies.AnyFtpUri! -Dummies.AnyGenerationException -Dummies.AnyGenerationException.AnyGenerationException(string! message) -> void -Dummies.AnyGenerationException.AnyGenerationException(string! message, System.Exception! innerException) -> void -Dummies.AnyGenerationException.Seed.get -> int? -Dummies.AnyGuid -Dummies.AnyGuid.DifferentFrom(System.Guid value) -> Dummies.AnyGuid! -Dummies.AnyGuid.Empty() -> Dummies.AnyGuid! -Dummies.AnyGuid.Except(params System.Guid[]! values) -> Dummies.AnyGuid! -Dummies.AnyGuid.Generate() -> System.Guid -Dummies.AnyGuid.NonEmpty() -> Dummies.AnyGuid! -Dummies.AnyGuid.OneOf(params System.Guid[]! values) -> Dummies.AnyGuid! -Dummies.AnyInt16 -Dummies.AnyInt16.Between(short minimum, short maximum) -> Dummies.AnyInt16! -Dummies.AnyInt16.DifferentFrom(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.Except(params short[]! values) -> Dummies.AnyInt16! -Dummies.AnyInt16.Generate() -> short -Dummies.AnyInt16.GreaterThan(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.GreaterThanOrEqualTo(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.LessThan(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.LessThanOrEqualTo(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.MultipleOf(short value) -> Dummies.AnyInt16! -Dummies.AnyInt16.Negative() -> Dummies.AnyInt16! -Dummies.AnyInt16.NonZero() -> Dummies.AnyInt16! -Dummies.AnyInt16.OneOf(params short[]! values) -> Dummies.AnyInt16! -Dummies.AnyInt16.Positive() -> Dummies.AnyInt16! -Dummies.AnyInt16.Zero() -> Dummies.AnyInt16! -Dummies.AnyInt32 -Dummies.AnyInt32.Between(int minimum, int maximum) -> Dummies.AnyInt32! -Dummies.AnyInt32.DifferentFrom(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.Except(params int[]! values) -> Dummies.AnyInt32! -Dummies.AnyInt32.Generate() -> int -Dummies.AnyInt32.GreaterThan(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.GreaterThanOrEqualTo(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.LessThan(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.LessThanOrEqualTo(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.MultipleOf(int value) -> Dummies.AnyInt32! -Dummies.AnyInt32.Negative() -> Dummies.AnyInt32! -Dummies.AnyInt32.NonZero() -> Dummies.AnyInt32! -Dummies.AnyInt32.OneOf(params int[]! values) -> Dummies.AnyInt32! -Dummies.AnyInt32.Positive() -> Dummies.AnyInt32! -Dummies.AnyInt32.Zero() -> Dummies.AnyInt32! -Dummies.AnyInt64 -Dummies.AnyInt64.Between(long minimum, long maximum) -> Dummies.AnyInt64! -Dummies.AnyInt64.DifferentFrom(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.Except(params long[]! values) -> Dummies.AnyInt64! -Dummies.AnyInt64.Generate() -> long -Dummies.AnyInt64.GreaterThan(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.GreaterThanOrEqualTo(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.LessThan(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.LessThanOrEqualTo(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.MultipleOf(long value) -> Dummies.AnyInt64! -Dummies.AnyInt64.Negative() -> Dummies.AnyInt64! -Dummies.AnyInt64.NonZero() -> Dummies.AnyInt64! -Dummies.AnyInt64.OneOf(params long[]! values) -> Dummies.AnyInt64! -Dummies.AnyInt64.Positive() -> Dummies.AnyInt64! -Dummies.AnyInt64.Zero() -> Dummies.AnyInt64! -Dummies.AnyList -Dummies.AnyList.Distinct() -> Dummies.AnyList! -Dummies.AnyList.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnyList! -Dummies.AnyMailtoUri -Dummies.AnyMailtoUri.Generate() -> System.Uri! -Dummies.AnyMailtoUri.WithDomain(string! domain) -> Dummies.AnyMailtoUri! -Dummies.AnyMailtoUri.WithHeaders() -> Dummies.AnyMailtoUri! -Dummies.AnyMailtoUri.WithLocalPart(string! localPart) -> Dummies.AnyMailtoUri! -Dummies.AnyOneOf -Dummies.AnyOneOf.Generate() -> T -Dummies.AnyPattern -Dummies.AnyPattern.Generate() -> string! -Dummies.AnyRelativeUri -Dummies.AnyRelativeUri.Generate() -> System.Uri! -Dummies.AnyRelativeUri.Rooted() -> Dummies.AnyRelativeUri! -Dummies.AnyRelativeUri.WithFragment() -> Dummies.AnyRelativeUri! -Dummies.AnyRelativeUri.WithPathSegments(int count) -> Dummies.AnyRelativeUri! -Dummies.AnyRelativeUri.WithQuery() -> Dummies.AnyRelativeUri! -Dummies.AnySByte -Dummies.AnySByte.Between(sbyte minimum, sbyte maximum) -> Dummies.AnySByte! -Dummies.AnySByte.DifferentFrom(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.Except(params sbyte[]! values) -> Dummies.AnySByte! -Dummies.AnySByte.Generate() -> sbyte -Dummies.AnySByte.GreaterThan(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.GreaterThanOrEqualTo(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.LessThan(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.LessThanOrEqualTo(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.MultipleOf(sbyte value) -> Dummies.AnySByte! -Dummies.AnySByte.Negative() -> Dummies.AnySByte! -Dummies.AnySByte.NonZero() -> Dummies.AnySByte! -Dummies.AnySByte.OneOf(params sbyte[]! values) -> Dummies.AnySByte! -Dummies.AnySByte.Positive() -> Dummies.AnySByte! -Dummies.AnySByte.Zero() -> Dummies.AnySByte! -Dummies.AnySequence -Dummies.AnySequence.Distinct() -> Dummies.AnySequence! -Dummies.AnySequence.Distinct(System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySequence! -Dummies.AnySet -Dummies.AnySingle -Dummies.AnySingle.Between(float minimum, float maximum) -> Dummies.AnySingle! -Dummies.AnySingle.DifferentFrom(float value) -> Dummies.AnySingle! -Dummies.AnySingle.Except(params float[]! values) -> Dummies.AnySingle! -Dummies.AnySingle.Generate() -> float -Dummies.AnySingle.GreaterThan(float value) -> Dummies.AnySingle! -Dummies.AnySingle.GreaterThanOrEqualTo(float value) -> Dummies.AnySingle! -Dummies.AnySingle.LessThan(float value) -> Dummies.AnySingle! -Dummies.AnySingle.LessThanOrEqualTo(float value) -> Dummies.AnySingle! -Dummies.AnySingle.Negative() -> Dummies.AnySingle! -Dummies.AnySingle.NonZero() -> Dummies.AnySingle! -Dummies.AnySingle.OneOf(params float[]! values) -> Dummies.AnySingle! -Dummies.AnySingle.Positive() -> Dummies.AnySingle! -Dummies.AnySingle.Zero() -> Dummies.AnySingle! -Dummies.AnyString -Dummies.AnyString.Alpha() -> Dummies.AnyString! -Dummies.AnyString.AlphaNumeric() -> Dummies.AnyString! -Dummies.AnyString.Containing(string! value) -> Dummies.AnyString! -Dummies.AnyString.DifferentFrom(string! value) -> Dummies.AnyString! -Dummies.AnyString.EndingWith(string! suffix) -> Dummies.AnyString! -Dummies.AnyString.Except(params string![]! values) -> Dummies.AnyString! -Dummies.AnyString.Generate() -> string! -Dummies.AnyString.LowerCase() -> Dummies.AnyString! -Dummies.AnyString.NonEmpty() -> Dummies.AnyString! -Dummies.AnyString.Numeric() -> Dummies.AnyString! -Dummies.AnyString.OneOf(params string![]! values) -> Dummies.AnyStringOneOf! -Dummies.AnyString.OneOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyStringOneOf! -Dummies.AnyString.StartingWith(string! prefix) -> Dummies.AnyString! -Dummies.AnyString.UpperCase() -> Dummies.AnyString! -Dummies.AnyString.WithChars(string! pool) -> Dummies.AnyString! -Dummies.AnyString.WithLength(int length) -> Dummies.AnyString! -Dummies.AnyString.WithLengthBetween(int minimum, int maximum) -> Dummies.AnyString! -Dummies.AnyString.WithMaxLength(int length) -> Dummies.AnyString! -Dummies.AnyString.WithMinLength(int length) -> Dummies.AnyString! -Dummies.AnyStringOneOf -Dummies.AnyStringOneOf.Generate() -> string! -Dummies.AnyTimeSpan -Dummies.AnyTimeSpan.Between(System.TimeSpan minimum, System.TimeSpan maximum) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.DifferentFrom(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Except(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Generate() -> System.TimeSpan -Dummies.AnyTimeSpan.GreaterThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.GreaterThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.LessThan(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.LessThanOrEqualTo(System.TimeSpan value) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Negative() -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.NonZero() -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.OneOf(params System.TimeSpan[]! values) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Positive() -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.WithGranularity(System.TimeSpan granularity) -> Dummies.AnyTimeSpan! -Dummies.AnyTimeSpan.Zero() -> Dummies.AnyTimeSpan! -Dummies.AnyUInt16 -Dummies.AnyUInt16.Between(ushort minimum, ushort maximum) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.DifferentFrom(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.Except(params ushort[]! values) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.Generate() -> ushort -Dummies.AnyUInt16.GreaterThan(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.GreaterThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.LessThan(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.LessThanOrEqualTo(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.MultipleOf(ushort value) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.NonZero() -> Dummies.AnyUInt16! -Dummies.AnyUInt16.OneOf(params ushort[]! values) -> Dummies.AnyUInt16! -Dummies.AnyUInt16.Zero() -> Dummies.AnyUInt16! -Dummies.AnyUInt32 -Dummies.AnyUInt32.Between(uint minimum, uint maximum) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.DifferentFrom(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.Except(params uint[]! values) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.Generate() -> uint -Dummies.AnyUInt32.GreaterThan(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.GreaterThanOrEqualTo(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.LessThan(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.LessThanOrEqualTo(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.MultipleOf(uint value) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.NonZero() -> Dummies.AnyUInt32! -Dummies.AnyUInt32.OneOf(params uint[]! values) -> Dummies.AnyUInt32! -Dummies.AnyUInt32.Zero() -> Dummies.AnyUInt32! -Dummies.AnyUInt64 -Dummies.AnyUInt64.Between(ulong minimum, ulong maximum) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.DifferentFrom(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.Except(params ulong[]! values) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.Generate() -> ulong -Dummies.AnyUInt64.GreaterThan(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.GreaterThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.LessThan(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.LessThanOrEqualTo(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.MultipleOf(ulong value) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.NonZero() -> Dummies.AnyUInt64! -Dummies.AnyUInt64.OneOf(params ulong[]! values) -> Dummies.AnyUInt64! -Dummies.AnyUInt64.Zero() -> Dummies.AnyUInt64! -Dummies.AnyUri -Dummies.AnyUri.Ftp() -> Dummies.AnyFtpUri! -Dummies.AnyUri.Generate() -> System.Uri! -Dummies.AnyUri.Mailto() -> Dummies.AnyMailtoUri! -Dummies.AnyUri.Relative() -> Dummies.AnyRelativeUri! -Dummies.AnyUri.Web() -> Dummies.AnyWebUri! -Dummies.AnyUri.WebSocket() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri -Dummies.AnyWebSocketUri.Generate() -> System.Uri! -Dummies.AnyWebSocketUri.UsingWs() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.UsingWss() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithHost(string! host) -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithoutPath() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithPathSegments(int count) -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithPort() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithPort(int port) -> Dummies.AnyWebSocketUri! -Dummies.AnyWebSocketUri.WithQuery() -> Dummies.AnyWebSocketUri! -Dummies.AnyWebUri -Dummies.AnyWebUri.Generate() -> System.Uri! -Dummies.AnyWebUri.UsingHttp() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.UsingHttps() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithFragment() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithHost(string! host) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithoutPath() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithPathSegments(int count) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithPort() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithPort(int port) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithQuery() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithUserInfo() -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithUserInfo(string! user) -> Dummies.AnyWebUri! -Dummies.AnyWebUri.WithUserInfo(string! user, string! password) -> Dummies.AnyWebUri! -Dummies.ConflictingAnyConstraintException -Dummies.ConflictingAnyConstraintException.ConflictingAnyConstraintException(string! message) -> void -Dummies.IAny -Dummies.IAny.Generate() -> T -Dummies.NullableExtensions -Dummies.NullableReferenceExtensions -Dummies.UnsupportedRegexException -Dummies.UnsupportedRegexException.UnsupportedRegexException(string! message) -> void -static Dummies.Any.ArrayOf(Dummies.IAny! item) -> Dummies.AnyArray! -static Dummies.Any.Boolean() -> Dummies.AnyBoolean! -static Dummies.Any.Byte() -> Dummies.AnyByte! -static Dummies.Any.Char() -> Dummies.AnyChar! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, Dummies.IAny! eighth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, Dummies.IAny! seventh, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, Dummies.IAny! sixth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, Dummies.IAny! fifth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, Dummies.IAny! fourth, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.Combine(Dummies.IAny! first, Dummies.IAny! second, System.Func! compose) -> Dummies.IAny! -static Dummies.Any.DateTime() -> Dummies.AnyDateTime! -static Dummies.Any.DateTimeOffset() -> Dummies.AnyDateTimeOffset! -static Dummies.Any.Decimal() -> Dummies.AnyDecimal! -static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values) -> Dummies.AnyDictionary! -static Dummies.Any.DictionaryOf(Dummies.IAny! keys, Dummies.IAny! values, System.Collections.Generic.IEqualityComparer! keyComparer) -> Dummies.AnyDictionary! -static Dummies.Any.Double() -> Dummies.AnyDouble! -static Dummies.Any.ElementOf(System.Collections.Generic.IEnumerable! values) -> Dummies.AnyOneOf! -static Dummies.Any.ElementOf(System.Collections.Generic.IReadOnlyList! values) -> Dummies.AnyOneOf! -static Dummies.Any.Enum() -> Dummies.AnyEnum! -static Dummies.Any.Guid() -> Dummies.AnyGuid! -static Dummies.Any.Int16() -> Dummies.AnyInt16! -static Dummies.Any.Int32() -> Dummies.AnyInt32! -static Dummies.Any.Int64() -> Dummies.AnyInt64! -static Dummies.Any.ListOf(Dummies.IAny! item) -> Dummies.AnyList! -static Dummies.Any.OneOf(params T[]! values) -> Dummies.AnyOneOf! -static Dummies.Any.PairOf(Dummies.IAny! first, Dummies.IAny! second) -> Dummies.IAny<(T1, T2)>! -static Dummies.Any.Reproducibly(int seed, System.Action! body, System.Action? report = null) -> void -static Dummies.Any.Reproducibly(int seed, System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! -static Dummies.Any.Reproducibly(System.Action! body, System.Action? report = null) -> void -static Dummies.Any.Reproducibly(System.Func! body, System.Action? report = null) -> System.Threading.Tasks.Task! -static Dummies.Any.SByte() -> Dummies.AnySByte! -static Dummies.Any.SequenceOf(Dummies.IAny! item) -> Dummies.AnySequence! -static Dummies.Any.SetOf(Dummies.IAny! item) -> Dummies.AnySet! -static Dummies.Any.SetOf(Dummies.IAny! item, System.Collections.Generic.IEqualityComparer! comparer) -> Dummies.AnySet! -static Dummies.Any.Single() -> Dummies.AnySingle! -static Dummies.Any.String() -> Dummies.AnyString! -static Dummies.Any.StringMatching(string! pattern) -> Dummies.AnyPattern! -static Dummies.Any.StringMatching(System.Text.RegularExpressions.Regex! pattern) -> Dummies.AnyPattern! -static Dummies.Any.TimeSpan() -> Dummies.AnyTimeSpan! -static Dummies.Any.TripleOf(Dummies.IAny! first, Dummies.IAny! second, Dummies.IAny! third) -> Dummies.IAny<(T1, T2, T3)>! -static Dummies.Any.UInt16() -> Dummies.AnyUInt16! -static Dummies.Any.UInt32() -> Dummies.AnyUInt32! -static Dummies.Any.UInt64() -> Dummies.AnyUInt64! -static Dummies.Any.Uri() -> Dummies.AnyUri! -static Dummies.Any.UseSeed(int seed) -> System.IDisposable! -static Dummies.Any.UseSeed(int seed, string! replaySnippet) -> System.IDisposable! -static Dummies.Any.WithSeed(int seed) -> Dummies.AnyContext! -static Dummies.AnyExtensions.As(this Dummies.IAny! generator, System.Func! factory) -> Dummies.IAny! -static Dummies.NullableExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! -static Dummies.NullableReferenceExtensions.OrNull(this Dummies.IAny! generator) -> Dummies.IAny! diff --git a/FirstClassErrors.RequestBinder.UnitTests/FirstClassErrors.RequestBinder.UnitTests.csproj b/FirstClassErrors.RequestBinder.UnitTests/FirstClassErrors.RequestBinder.UnitTests.csproj index ec5f4f29..7d84bdb4 100644 --- a/FirstClassErrors.RequestBinder.UnitTests/FirstClassErrors.RequestBinder.UnitTests.csproj +++ b/FirstClassErrors.RequestBinder.UnitTests/FirstClassErrors.RequestBinder.UnitTests.csproj @@ -26,9 +26,9 @@ - - + + diff --git a/FirstClassErrors.Testing.UnitTests/ClockUseAnyTests.cs b/FirstClassErrors.Testing.UnitTests/ClockUseAnyTests.cs index b68342a5..6e6367bb 100644 --- a/FirstClassErrors.Testing.UnitTests/ClockUseAnyTests.cs +++ b/FirstClassErrors.Testing.UnitTests/ClockUseAnyTests.cs @@ -31,15 +31,15 @@ public void UseAnyFreezesASingleInstant() { } } - [Fact(DisplayName = "Inside Dummies.Any.Reproducibly, Clock.UseAny picks the same instant for a given seed.")] + [Fact(DisplayName = "Inside JustDummies.Any.Reproducibly, Clock.UseAny picks the same instant for a given seed.")] public void UseAnyIsReproducibleUnderAReproduciblyScope() { DateTimeOffset first = default; DateTimeOffset second = default; - Dummies.Any.Reproducibly(42, () => { + JustDummies.Any.Reproducibly(42, () => { using (Clock.UseAny()) { first = AnError().OccurredAt; } }); - Dummies.Any.Reproducibly(42, () => { + JustDummies.Any.Reproducibly(42, () => { using (Clock.UseAny()) { second = AnError().OccurredAt; } }); diff --git a/FirstClassErrors.Testing.UnitTests/FirstClassErrors.Testing.UnitTests.csproj b/FirstClassErrors.Testing.UnitTests/FirstClassErrors.Testing.UnitTests.csproj index b847a7b3..df15035a 100644 --- a/FirstClassErrors.Testing.UnitTests/FirstClassErrors.Testing.UnitTests.csproj +++ b/FirstClassErrors.Testing.UnitTests/FirstClassErrors.Testing.UnitTests.csproj @@ -25,7 +25,7 @@ - + diff --git a/FirstClassErrors.Testing.UnitTests/InstanceIdsUseAnyTests.cs b/FirstClassErrors.Testing.UnitTests/InstanceIdsUseAnyTests.cs index 666f0330..c921e295 100644 --- a/FirstClassErrors.Testing.UnitTests/InstanceIdsUseAnyTests.cs +++ b/FirstClassErrors.Testing.UnitTests/InstanceIdsUseAnyTests.cs @@ -31,20 +31,20 @@ public void UseAnyAssignsDistinctIds() { } } - [Fact(DisplayName = "Inside Dummies.Any.Reproducibly, InstanceIds.UseAny reproduces the same id sequence for a given seed.")] + [Fact(DisplayName = "Inside JustDummies.Any.Reproducibly, InstanceIds.UseAny reproduces the same id sequence for a given seed.")] public void UseAnyIsReproducibleUnderAReproduciblyScope() { Guid firstRunA = Guid.Empty; Guid firstRunB = Guid.Empty; Guid secondRunA = Guid.Empty; Guid secondRunB = Guid.Empty; - Dummies.Any.Reproducibly(7, () => { + JustDummies.Any.Reproducibly(7, () => { using (InstanceIds.UseAny()) { firstRunA = AnError().InstanceId; firstRunB = AnError().InstanceId; } }); - Dummies.Any.Reproducibly(7, () => { + JustDummies.Any.Reproducibly(7, () => { using (InstanceIds.UseAny()) { secondRunA = AnError().InstanceId; secondRunB = AnError().InstanceId; diff --git a/FirstClassErrors.Testing.UnitTests/MeaningfulEnumFactoryTests.cs b/FirstClassErrors.Testing.UnitTests/MeaningfulEnumFactoryTests.cs index 7eee9b26..a94a00e5 100644 --- a/FirstClassErrors.Testing.UnitTests/MeaningfulEnumFactoryTests.cs +++ b/FirstClassErrors.Testing.UnitTests/MeaningfulEnumFactoryTests.cs @@ -10,7 +10,7 @@ namespace FirstClassErrors.Testing.UnitTests; /// /// Contract tests for the meaningful-enum factories: they must never yield the Unknown sentinel, which is -/// the whole reason they exist next to a plain Dummies.Any.Enum<T>() draw. +/// the whole reason they exist next to a plain JustDummies.Any.Enum<T>() draw. /// public sealed class MeaningfulEnumFactoryTests { diff --git a/FirstClassErrors.Testing/Clock.cs b/FirstClassErrors.Testing/Clock.cs index 38efe447..14abd3d4 100644 --- a/FirstClassErrors.Testing/Clock.cs +++ b/FirstClassErrors.Testing/Clock.cs @@ -55,13 +55,13 @@ public static IDisposable UseFixed(DateTimeOffset instant) { /// /// /// The instant is drawn once, when this method is called, and stays fixed for every error created within the - /// scope — the same freezing behavior as . The value is drawn from Dummies' ambient - /// random context; run the test inside Dummies.Any.Reproducibly(...) to make the chosen instant + /// scope — the same freezing behavior as . The value is drawn from JustDummies' ambient + /// random context; run the test inside JustDummies.Any.Reproducibly(...) to make the chosen instant /// reproducible and reported on failure. /// /// A scope that restores the real system clock when disposed. public static IDisposable UseAny() { - return UseFixed(Dummies.Any.DateTimeOffset().Generate()); + return UseFixed(JustDummies.Any.DateTimeOffset().Generate()); } } diff --git a/FirstClassErrors.Testing/DetailedMessageFactory.cs b/FirstClassErrors.Testing/DetailedMessageFactory.cs index 137a38d9..0443a346 100644 --- a/FirstClassErrors.Testing/DetailedMessageFactory.cs +++ b/FirstClassErrors.Testing/DetailedMessageFactory.cs @@ -3,14 +3,14 @@ namespace FirstClassErrors.Testing; /// /// Supplies an arbitrary, non-blank public detailed message for tests that need some detailed text but do /// not assert on it. The value reads as arbitrary (for example Any detailed message 7F3A9C.) and is drawn -/// from Dummies' ambient random context, so a test wrapped in Dummies.Any.Reproducibly(...) replays it. +/// from JustDummies' ambient random context, so a test wrapped in JustDummies.Any.Reproducibly(...) replays it. /// public static class DetailedMessageFactory { /// Returns an arbitrary, non-blank detailed message. /// An arbitrary detailed message. public static string Any() { - return "Any detailed message " + Dummies.Any.String().WithLength(6).Generate() + "."; + return "Any detailed message " + JustDummies.Any.String().WithLength(6).Generate() + "."; } } diff --git a/FirstClassErrors.Testing/DiagnosticMessageFactory.cs b/FirstClassErrors.Testing/DiagnosticMessageFactory.cs index 91ec652f..b6b3744c 100644 --- a/FirstClassErrors.Testing/DiagnosticMessageFactory.cs +++ b/FirstClassErrors.Testing/DiagnosticMessageFactory.cs @@ -3,14 +3,14 @@ namespace FirstClassErrors.Testing; /// /// Supplies an arbitrary, non-blank internal diagnostic message for tests that need some diagnostic text but /// do not assert on it. The value reads as arbitrary (for example Any diagnostic message 7F3A9C.) and is -/// drawn from Dummies' ambient random context, so a test wrapped in Dummies.Any.Reproducibly(...) replays it. +/// drawn from JustDummies' ambient random context, so a test wrapped in JustDummies.Any.Reproducibly(...) replays it. /// public static class DiagnosticMessageFactory { /// Returns an arbitrary, non-blank diagnostic message. /// An arbitrary diagnostic message. public static string Any() { - return "Any diagnostic message " + Dummies.Any.String().WithLength(6).Generate() + "."; + return "Any diagnostic message " + JustDummies.Any.String().WithLength(6).Generate() + "."; } } diff --git a/FirstClassErrors.Testing/ErrorCodeFactory.cs b/FirstClassErrors.Testing/ErrorCodeFactory.cs index 7fe92299..6a6b9a8d 100644 --- a/FirstClassErrors.Testing/ErrorCodeFactory.cs +++ b/FirstClassErrors.Testing/ErrorCodeFactory.cs @@ -1,6 +1,6 @@ #region Usings declarations -using Dummies; +using JustDummies; #endregion @@ -10,8 +10,8 @@ namespace FirstClassErrors.Testing; /// Supplies an arbitrary, valid for the parts of a test that need some code but /// never assert on it — an explicit ErrorCodeFactory.Any() call reads as "this code is arbitrary" where a hand-picked /// literal reads as "this matters". The value is shaped like ANY_CODE_7F3A9C so it is recognizable as -/// arbitrary in a failure message, and it is drawn from Dummies' ambient random context: wrap the test in -/// Dummies.Any.Reproducibly(...) to make the chosen code reproducible and reported on failure. +/// arbitrary in a failure message, and it is drawn from JustDummies' ambient random context: wrap the test in +/// JustDummies.Any.Reproducibly(...) to make the chosen code reproducible and reported on failure. /// public static class ErrorCodeFactory { @@ -21,7 +21,7 @@ public static class ErrorCodeFactory { /// /// An arbitrary error code. public static ErrorCode Any() { - return Dummies.Any.StringMatching("ANY_CODE_[A-Z0-9]{6}").As(ErrorCode.Create).Generate(); + return JustDummies.Any.StringMatching("ANY_CODE_[A-Z0-9]{6}").As(ErrorCode.Create).Generate(); } } diff --git a/FirstClassErrors.Testing/ErrorOriginFactory.cs b/FirstClassErrors.Testing/ErrorOriginFactory.cs index c0b8ac4a..242c960a 100644 --- a/FirstClassErrors.Testing/ErrorOriginFactory.cs +++ b/FirstClassErrors.Testing/ErrorOriginFactory.cs @@ -2,14 +2,14 @@ namespace FirstClassErrors.Testing; /// /// Supplies an arbitrary , uniformly across all of its members, for tests that need -/// some origin but do not assert on it. Drawn from Dummies' ambient random context. +/// some origin but do not assert on it. Drawn from JustDummies' ambient random context. /// public static class ErrorOriginFactory { /// Returns an arbitrary . /// An arbitrary error origin. public static ErrorOrigin Any() { - return Dummies.Any.Enum().Generate(); + return JustDummies.Any.Enum().Generate(); } } diff --git a/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj b/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj index 4d5f5c0f..6ab9ddf7 100644 --- a/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj +++ b/FirstClassErrors.Testing/FirstClassErrors.Testing.csproj @@ -56,21 +56,21 @@ - - + switch to a NuGet PackageReference once JustDummies is published. --> + - + - $(TargetsForTfmSpecificBuildOutput);IncludeDummiesInPackage + $(TargetsForTfmSpecificBuildOutput);IncludeJustDummiesInPackage - + - + diff --git a/FirstClassErrors.Testing/InstanceIds.cs b/FirstClassErrors.Testing/InstanceIds.cs index 8162ea01..37f71236 100644 --- a/FirstClassErrors.Testing/InstanceIds.cs +++ b/FirstClassErrors.Testing/InstanceIds.cs @@ -61,13 +61,13 @@ public static IDisposable UseSequential() { /// /// /// Each error created within the scope gets its own fresh arbitrary id (as in production, several errors do not - /// collide), drawn from Dummies' ambient random context rather than . Run the - /// test inside Dummies.Any.Reproducibly(...) to make the sequence reproducible and reported on failure. To + /// collide), drawn from JustDummies' ambient random context rather than . Run the + /// test inside JustDummies.Any.Reproducibly(...) to make the sequence reproducible and reported on failure. To /// pin a single fixed id instead, use . /// /// A scope that restores the default (random) identifier when disposed. public static IDisposable UseAny() { - return Use(() => Dummies.Any.Guid().Generate()); + return Use(() => JustDummies.Any.Guid().Generate()); } } diff --git a/FirstClassErrors.Testing/InteractionDirectionFactory.cs b/FirstClassErrors.Testing/InteractionDirectionFactory.cs index 8200b686..df3e1340 100644 --- a/FirstClassErrors.Testing/InteractionDirectionFactory.cs +++ b/FirstClassErrors.Testing/InteractionDirectionFactory.cs @@ -4,7 +4,7 @@ namespace FirstClassErrors.Testing; /// Supplies an arbitrary meaningful — /// or , never the /// sentinel — for tests that need some direction but do not -/// assert on it. Drawn from Dummies' ambient random context. +/// assert on it. Drawn from JustDummies' ambient random context. /// public static class InteractionDirectionFactory { @@ -13,7 +13,7 @@ public static class InteractionDirectionFactory { /// /// An arbitrary meaningful interaction direction. public static InteractionDirection Any() { - return Dummies.Any.Enum().Except(InteractionDirection.Unknown).Generate(); + return JustDummies.Any.Enum().Except(InteractionDirection.Unknown).Generate(); } } diff --git a/FirstClassErrors.Testing/README.nuget.md b/FirstClassErrors.Testing/README.nuget.md index 1926d055..5a8867e7 100644 --- a/FirstClassErrors.Testing/README.nuget.md +++ b/FirstClassErrors.Testing/README.nuget.md @@ -15,8 +15,8 @@ Testing helpers for **FirstClassErrors** — so your tests about errors and outc for snapshot and equality assertions. - **Arbitrary-value factories** (`ErrorCodeFactory.Any()`, `DiagnosticMessageFactory.Any()`, ...) for the error inputs a test needs but never asserts on, built on the companion - **Dummies** generator library (use `Dummies.Any.*` for arbitrary primitives). Wrap a - value-sensitive test in `Dummies.Any.Reproducibly(...)` and a failing run reports the seed + **JustDummies** generator library (use `JustDummies.Any.*` for arbitrary primitives). Wrap a + value-sensitive test in `JustDummies.Any.Reproducibly(...)` and a failing run reports the seed to replay; `Clock.UseAny()` / `InstanceIds.UseAny()` draw from the same source. Overrides are scoped (`using`), context-local (safe under parallel tests), and never diff --git a/FirstClassErrors.Testing/ShortMessageFactory.cs b/FirstClassErrors.Testing/ShortMessageFactory.cs index 09410d5a..b1eae129 100644 --- a/FirstClassErrors.Testing/ShortMessageFactory.cs +++ b/FirstClassErrors.Testing/ShortMessageFactory.cs @@ -3,14 +3,14 @@ namespace FirstClassErrors.Testing; /// /// Supplies an arbitrary, non-blank public short message for tests that need some short text but do not /// assert on it. The value reads as arbitrary (for example Any short message 7F3A9C.) and is drawn from -/// Dummies' ambient random context, so a test wrapped in Dummies.Any.Reproducibly(...) replays it. +/// JustDummies' ambient random context, so a test wrapped in JustDummies.Any.Reproducibly(...) replays it. /// public static class ShortMessageFactory { /// Returns an arbitrary, non-blank short message. /// An arbitrary short message. public static string Any() { - return "Any short message " + Dummies.Any.String().WithLength(6).Generate() + "."; + return "Any short message " + JustDummies.Any.String().WithLength(6).Generate() + "."; } } diff --git a/FirstClassErrors.Testing/TransienceFactory.cs b/FirstClassErrors.Testing/TransienceFactory.cs index 65834f6c..a919245f 100644 --- a/FirstClassErrors.Testing/TransienceFactory.cs +++ b/FirstClassErrors.Testing/TransienceFactory.cs @@ -3,7 +3,7 @@ namespace FirstClassErrors.Testing; /// /// Supplies an arbitrary meaningful or /// , never the sentinel — for tests that -/// need some classification but do not assert on it. Drawn from Dummies' ambient random context. +/// need some classification but do not assert on it. Drawn from JustDummies' ambient random context. /// public static class TransienceFactory { @@ -12,7 +12,7 @@ public static class TransienceFactory { /// /// An arbitrary meaningful transience. public static Transience Any() { - return Dummies.Any.Enum().Except(Transience.Unknown).Generate(); + return JustDummies.Any.Enum().Except(Transience.Unknown).Generate(); } } diff --git a/FirstClassErrors.UnitTests/ErrorContextImmutabilityTests.cs b/FirstClassErrors.UnitTests/ErrorContextImmutabilityTests.cs index aecce2f0..4f66259d 100644 --- a/FirstClassErrors.UnitTests/ErrorContextImmutabilityTests.cs +++ b/FirstClassErrors.UnitTests/ErrorContextImmutabilityTests.cs @@ -34,7 +34,7 @@ public void TheContextValuesAreReadOnlyAndCannotBeMutated() { // Setup ErrorContextKey key = ErrorContextKey.Create("K"); ErrorContext context = DomainError.Create(ErrorCodeFactory.Any(), DiagnosticMessageFactory.Any(), - ctx => ctx.Add(key, Dummies.Any.String().NonEmpty().Generate())).WithPublicMessage(ShortMessageFactory.Any()).Context; + ctx => ctx.Add(key, JustDummies.Any.String().NonEmpty().Generate())).WithPublicMessage(ShortMessageFactory.Any()).Context; // Exercise & verify Check.ThatCode(() => ((IDictionary)context.Values).Clear()) diff --git a/FirstClassErrors.UnitTests/FirstClassErrors.UnitTests.csproj b/FirstClassErrors.UnitTests/FirstClassErrors.UnitTests.csproj index ddc5d9aa..932d49bc 100644 --- a/FirstClassErrors.UnitTests/FirstClassErrors.UnitTests.csproj +++ b/FirstClassErrors.UnitTests/FirstClassErrors.UnitTests.csproj @@ -29,9 +29,9 @@ - - + + diff --git a/FirstClassErrors.UnitTests/OutcomeAssertionsTests.cs b/FirstClassErrors.UnitTests/OutcomeAssertionsTests.cs index 0b9969ac..a020f11d 100644 --- a/FirstClassErrors.UnitTests/OutcomeAssertionsTests.cs +++ b/FirstClassErrors.UnitTests/OutcomeAssertionsTests.cs @@ -68,7 +68,7 @@ public void ShouldFailWithMismatchingCodeThrows() { [Fact(DisplayName = "ShouldFail on a successful outcome throws.")] public void ShouldFailOnSuccessThrows() { - Outcome outcome = Outcome.Success(Dummies.Any.Int32().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.Int32().Generate()); Assert.Throws(() => outcome.ShouldFail()); } diff --git a/FirstClassErrors.UnitTests/OutcomeGenericAdditionalTests.cs b/FirstClassErrors.UnitTests/OutcomeGenericAdditionalTests.cs index c6a859f7..eea31d43 100644 --- a/FirstClassErrors.UnitTests/OutcomeGenericAdditionalTests.cs +++ b/FirstClassErrors.UnitTests/OutcomeGenericAdditionalTests.cs @@ -16,7 +16,7 @@ public sealed class OutcomeGenericAdditionalTests { [Fact(DisplayName = "Then discarding the value chains to a non-generic Outcome on success.")] public void ThenDiscardingTheValueChainsToANonGenericOutcomeOnSuccess() { // Setup - Outcome outcome = Outcome.Success(Dummies.Any.Int32().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.Int32().Generate()); // Exercise Outcome result = outcome.Then(_ => Outcome.Success); @@ -82,7 +82,7 @@ public async Task AwaitingTheAsyncInstanceRecoverValueOverloadRecoversAFailure() [Fact(DisplayName = "Then throws an ArgumentNullException when the continuation is null.")] public void ThenThrowsAnArgumentNullExceptionWhenTheContinuationIsNull() { // Setup - Outcome outcome = Outcome.Success(Dummies.Any.Int32().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.Int32().Generate()); // Exercise & verify Check.ThatCode(() => outcome.Then((Func)null!)) @@ -92,7 +92,7 @@ public void ThenThrowsAnArgumentNullExceptionWhenTheContinuationIsNull() { [Fact(DisplayName = "Then (value mapping) throws an ArgumentNullException when the converter is null.")] public void ToThrowsAnArgumentNullExceptionWhenTheConverterIsNull() { // Setup - Outcome outcome = Outcome.Success(Dummies.Any.Int32().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.Int32().Generate()); // Exercise & verify Check.ThatCode(() => outcome.Then((Func)null!)) @@ -102,7 +102,7 @@ public void ToThrowsAnArgumentNullExceptionWhenTheConverterIsNull() { [Fact(DisplayName = "Recover throws an ArgumentNullException when the fallback is null.")] public void RecoverThrowsAnArgumentNullExceptionWhenTheFallbackIsNull() { // Setup - Outcome outcome = Outcome.Success(Dummies.Any.Int32().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.Int32().Generate()); // Exercise & verify Check.ThatCode(() => outcome.Recover((Func>)null!)) @@ -112,7 +112,7 @@ public void RecoverThrowsAnArgumentNullExceptionWhenTheFallbackIsNull() { [Fact(DisplayName = "Finally throws an ArgumentNullException when the success handler is null.")] public void FinallyThrowsAnArgumentNullExceptionWhenTheSuccessHandlerIsNull() { // Setup - Outcome outcome = Outcome.Success(Dummies.Any.Int32().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.Int32().Generate()); // Exercise & verify Check.ThatCode(() => outcome.Finally((Func)null!, _ => "ko")) diff --git a/FirstClassErrors.UnitTests/OutcomeTaskExtensionsEagerValidationTests.cs b/FirstClassErrors.UnitTests/OutcomeTaskExtensionsEagerValidationTests.cs index 01679e8f..8d711c97 100644 --- a/FirstClassErrors.UnitTests/OutcomeTaskExtensionsEagerValidationTests.cs +++ b/FirstClassErrors.UnitTests/OutcomeTaskExtensionsEagerValidationTests.cs @@ -70,7 +70,7 @@ public void ToOverANullGenericTaskOutcomeThrowsSynchronously() { [Fact(DisplayName = "Recover over a null Task> throws synchronously, before the task is awaited.")] public void RecoverOverANullGenericTaskOutcomeThrowsSynchronously() { // Exercise & verify - Check.ThatCode(() => { _ = ((Task>)null!).Recover(_ => Outcome.Success(Dummies.Any.Int32().Generate())); }) + Check.ThatCode(() => { _ = ((Task>)null!).Recover(_ => Outcome.Success(JustDummies.Any.Int32().Generate())); }) .Throws(); } @@ -139,7 +139,7 @@ public void FinallyWithANullFailureBranchThrowsSynchronously() { [Fact(DisplayName = "Then (value mapping) over a Task> with a null conversion throws synchronously.")] public void ToWithANullConversionThrowsSynchronously() { // Setup - Task> task = Task.FromResult(Outcome.Success(Dummies.Any.Int32().Generate())); + Task> task = Task.FromResult(Outcome.Success(JustDummies.Any.Int32().Generate())); // Exercise & verify Check.ThatCode(() => { _ = task.Then((Func)null!); }) @@ -149,7 +149,7 @@ public void ToWithANullConversionThrowsSynchronously() { [Fact(DisplayName = "Recover over a Task> with a null fallback throws synchronously.")] public void GenericRecoverWithANullFallbackThrowsSynchronously() { // Setup - Task> task = Task.FromResult(Outcome.Success(Dummies.Any.Int32().Generate())); + Task> task = Task.FromResult(Outcome.Success(JustDummies.Any.Int32().Generate())); // Exercise & verify Check.ThatCode(() => { _ = task.Recover((Func>)null!); }) @@ -159,7 +159,7 @@ public void GenericRecoverWithANullFallbackThrowsSynchronously() { [Fact(DisplayName = "Finally over a Task> with a null failure branch throws synchronously.")] public void GenericFinallyWithANullFailureBranchThrowsSynchronously() { // Setup - Task> task = Task.FromResult(Outcome.Success(Dummies.Any.Int32().Generate())); + Task> task = Task.FromResult(Outcome.Success(JustDummies.Any.Int32().Generate())); // Exercise & verify Check.ThatCode(() => { _ = task.Finally(value => $"ok:{value}", (Func)null!); }) diff --git a/FirstClassErrors.UnitTests/OutcomeTests.cs b/FirstClassErrors.UnitTests/OutcomeTests.cs index cfa48dc7..9808a899 100644 --- a/FirstClassErrors.UnitTests/OutcomeTests.cs +++ b/FirstClassErrors.UnitTests/OutcomeTests.cs @@ -16,7 +16,7 @@ public sealed class OutcomeTests { [Fact(DisplayName = "A successful outcome is marked as success.")] public void SuccessfulOutcomeIsMarkedAsSuccess() { // Exercise - Outcome outcome = Outcome.Success(Dummies.Any.String().NonEmpty().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.String().NonEmpty().Generate()); // Verify Check.That(outcome.IsSuccess).IsTrue(); @@ -131,7 +131,7 @@ public void ThrowIfFailureThrowsTheAssociatedExceptionWhenTheOutcomeIsAFailure() [Fact(DisplayName = "ThrowIfFailure does nothing when the outcome is a success.")] public void ThrowIfFailureDoesNothingWhenTheOutcomeIsASuccess() { // Setup - Outcome outcome = Outcome.Success(Dummies.Any.String().NonEmpty().Generate()); + Outcome outcome = Outcome.Success(JustDummies.Any.String().NonEmpty().Generate()); // Exercise & verify Check.ThatCode(() => outcome.ThrowIfFailure()).DoesNotThrow(); diff --git a/FirstClassErrors.sln b/FirstClassErrors.sln index a72f33a5..3131b88b 100644 --- a/FirstClassErrors.sln +++ b/FirstClassErrors.sln @@ -45,9 +45,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirstClassErrors.RequestBin EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirstClassErrors.RequestBinder.UnitTests", "FirstClassErrors.RequestBinder.UnitTests\FirstClassErrors.RequestBinder.UnitTests.csproj", "{75EA57DD-0128-4EB9-ADBE-567BFF602A93}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dummies", "Dummies\Dummies.csproj", "{F2C739E7-6F2E-4256-9C87-9D6F1168DF4A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JustDummies", "JustDummies\JustDummies.csproj", "{F2C739E7-6F2E-4256-9C87-9D6F1168DF4A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dummies.UnitTests", "Dummies.UnitTests\Dummies.UnitTests.csproj", "{BC4F2BE8-55C9-4AA4-90FA-699EC83A8985}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JustDummies.UnitTests", "JustDummies.UnitTests\JustDummies.UnitTests.csproj", "{BC4F2BE8-55C9-4AA4-90FA-699EC83A8985}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirstClassErrors.RequestBinder.PropertyTests", "FirstClassErrors.RequestBinder.PropertyTests\FirstClassErrors.RequestBinder.PropertyTests.csproj", "{1FC2C501-8842-4ABE-845E-000ED6575DD6}" EndProject @@ -59,9 +59,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirstClassErrors.RequestBin EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirstClassErrors.Testing.UnitTests", "FirstClassErrors.Testing.UnitTests\FirstClassErrors.Testing.UnitTests.csproj", "{74E68697-7C00-401C-84A9-7BF8DAFD9D34}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dummies.Xunit", "Dummies.Xunit\Dummies.Xunit.csproj", "{BF67DBAE-EBE1-45CE-86E5-B2E9E3D4EF6B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JustDummies.Xunit", "JustDummies.Xunit\JustDummies.Xunit.csproj", "{BF67DBAE-EBE1-45CE-86E5-B2E9E3D4EF6B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dummies.Xunit.UnitTests", "Dummies.Xunit.UnitTests\Dummies.Xunit.UnitTests.csproj", "{75FD5E2C-A871-4659-8A01-13461FED84EB}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JustDummies.Xunit.UnitTests", "JustDummies.Xunit.UnitTests\JustDummies.Xunit.UnitTests.csproj", "{75FD5E2C-A871-4659-8A01-13461FED84EB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Dummies.UnitTests/AmbientSeedScopeTests.cs b/JustDummies.UnitTests/AmbientSeedScopeTests.cs similarity index 99% rename from Dummies.UnitTests/AmbientSeedScopeTests.cs rename to JustDummies.UnitTests/AmbientSeedScopeTests.cs index b14af111..da8b45a0 100644 --- a/Dummies.UnitTests/AmbientSeedScopeTests.cs +++ b/JustDummies.UnitTests/AmbientSeedScopeTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// The scope form of reproducibility: a handle a caller opens and disposes itself, for a test-framework adapter diff --git a/Dummies.UnitTests/AnyCollectionTests.cs b/JustDummies.UnitTests/AnyCollectionTests.cs similarity index 99% rename from Dummies.UnitTests/AnyCollectionTests.cs rename to JustDummies.UnitTests/AnyCollectionTests.cs index ffdf0473..574de4f0 100644 --- a/Dummies.UnitTests/AnyCollectionTests.cs +++ b/JustDummies.UnitTests/AnyCollectionTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnyCollectionTests { diff --git a/Dummies.UnitTests/AnyContinuousTests.cs b/JustDummies.UnitTests/AnyContinuousTests.cs similarity index 99% rename from Dummies.UnitTests/AnyContinuousTests.cs rename to JustDummies.UnitTests/AnyContinuousTests.cs index ed9e0fb3..2efe4118 100644 --- a/Dummies.UnitTests/AnyContinuousTests.cs +++ b/JustDummies.UnitTests/AnyContinuousTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnyContinuousTests { diff --git a/Dummies.UnitTests/AnyDateTimeOffsetOffsetTests.cs b/JustDummies.UnitTests/AnyDateTimeOffsetOffsetTests.cs similarity index 99% rename from Dummies.UnitTests/AnyDateTimeOffsetOffsetTests.cs rename to JustDummies.UnitTests/AnyDateTimeOffsetOffsetTests.cs index 8d995fef..91de606b 100644 --- a/Dummies.UnitTests/AnyDateTimeOffsetOffsetTests.cs +++ b/JustDummies.UnitTests/AnyDateTimeOffsetOffsetTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// Behaviour of the offset dimension — WithOffset pins it, diff --git a/Dummies.UnitTests/AnyInt32Tests.cs b/JustDummies.UnitTests/AnyInt32Tests.cs similarity index 99% rename from Dummies.UnitTests/AnyInt32Tests.cs rename to JustDummies.UnitTests/AnyInt32Tests.cs index 17bc42b3..bf21eeb4 100644 --- a/Dummies.UnitTests/AnyInt32Tests.cs +++ b/JustDummies.UnitTests/AnyInt32Tests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(AnyInt32))] public sealed class AnyInt32Tests { diff --git a/Dummies.UnitTests/AnyLatticeConstraintTests.cs b/JustDummies.UnitTests/AnyLatticeConstraintTests.cs similarity index 99% rename from Dummies.UnitTests/AnyLatticeConstraintTests.cs rename to JustDummies.UnitTests/AnyLatticeConstraintTests.cs index 51edb8cc..b978c208 100644 --- a/Dummies.UnitTests/AnyLatticeConstraintTests.cs +++ b/JustDummies.UnitTests/AnyLatticeConstraintTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// Behaviour of the lattice constraints — MultipleOf on the integers, WithScale on diff --git a/Dummies.UnitTests/AnyModernTypeTests.cs b/JustDummies.UnitTests/AnyModernTypeTests.cs similarity index 99% rename from Dummies.UnitTests/AnyModernTypeTests.cs rename to JustDummies.UnitTests/AnyModernTypeTests.cs index 9353b23f..e94b0915 100644 --- a/Dummies.UnitTests/AnyModernTypeTests.cs +++ b/JustDummies.UnitTests/AnyModernTypeTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnyModernTypeTests { diff --git a/Dummies.UnitTests/AnyNullableTests.cs b/JustDummies.UnitTests/AnyNullableTests.cs similarity index 99% rename from Dummies.UnitTests/AnyNullableTests.cs rename to JustDummies.UnitTests/AnyNullableTests.cs index 625c3bec..8c2470ad 100644 --- a/Dummies.UnitTests/AnyNullableTests.cs +++ b/JustDummies.UnitTests/AnyNullableTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnyNullableTests { diff --git a/Dummies.UnitTests/AnyOneOfTests.cs b/JustDummies.UnitTests/AnyOneOfTests.cs similarity index 99% rename from Dummies.UnitTests/AnyOneOfTests.cs rename to JustDummies.UnitTests/AnyOneOfTests.cs index 65ea6d33..0ca9cead 100644 --- a/Dummies.UnitTests/AnyOneOfTests.cs +++ b/JustDummies.UnitTests/AnyOneOfTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(AnyOneOf<>))] public sealed class AnyOneOfTests { diff --git a/Dummies.UnitTests/AnyPatternTests.cs b/JustDummies.UnitTests/AnyPatternTests.cs similarity index 98% rename from Dummies.UnitTests/AnyPatternTests.cs rename to JustDummies.UnitTests/AnyPatternTests.cs index 44541716..ea217ba0 100644 --- a/Dummies.UnitTests/AnyPatternTests.cs +++ b/JustDummies.UnitTests/AnyPatternTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnyPatternTests { @@ -204,8 +204,8 @@ public void OverLimitPatternFailsWithoutAFalseCause() { [Fact(DisplayName = "A negated class that excludes the whole printable universe is refused as unsupported, not malformed.")] public void NegatedClassExcludingTheUniverseIsUnsupported() { // Well-formed and regular — the real engine accepts both — but no printable-ASCII character survives the - // negation, so Dummies cannot draw a value. That is a universe limit (unsupported), not a caller mistake - // (malformed): the pattern is not broken, Dummies simply does not reach outside printable ASCII. + // negation, so JustDummies cannot draw a value. That is a universe limit (unsupported), not a caller mistake + // (malformed): the pattern is not broken, JustDummies simply does not reach outside printable ASCII. Check.ThatCode(() => Any.StringMatching(@"[^\x20-\x7E]")).Throws(); Check.ThatCode(() => Any.StringMatching(@"[^\s\S]")).Throws(); @@ -229,16 +229,16 @@ public void NegatedClassExcludingTheUniverseIsUnsupported() { public void PatternsAcceptedByTheRealEngineAreNeverMalformed(string pattern) { // The advertised taxonomy (see RegexParser's summary): ArgumentException == "the real engine rejects this // pattern as malformed". So a pattern the real engine COMPILES must never surface here as ArgumentException — - // Dummies must either generate a matching value, or refuse it as UnsupportedRegexException, or fail the + // JustDummies must either generate a matching value, or refuse it as UnsupportedRegexException, or fail the // generation itself. This guards the whole channel, not just the individual edges #210 corrected. Assert.True(IsCompiledByTheRealEngine(pattern), $"test precondition: /{pattern}/ must be accepted by .NET"); try { Any.WithSeed(1).StringMatching(pattern).Generate(); } catch (ArgumentException e) { - Assert.Fail($"/{pattern}/ is accepted by the real engine but Dummies rejected it as malformed: {e.Message}"); + Assert.Fail($"/{pattern}/ is accepted by the real engine but JustDummies rejected it as malformed: {e.Message}"); } catch (UnsupportedRegexException) { - // acceptable: refused as unsupported (a construct or universe Dummies declines), not as malformed + // acceptable: refused as unsupported (a construct or universe JustDummies declines), not as malformed } catch (AnyGenerationException) { // acceptable: a resource-limit overrun, not a verdict that the pattern is malformed } diff --git a/Dummies.UnitTests/AnySetTypeTests.cs b/JustDummies.UnitTests/AnySetTypeTests.cs similarity index 99% rename from Dummies.UnitTests/AnySetTypeTests.cs rename to JustDummies.UnitTests/AnySetTypeTests.cs index 5d067352..bf580c2b 100644 --- a/Dummies.UnitTests/AnySetTypeTests.cs +++ b/JustDummies.UnitTests/AnySetTypeTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnySetTypeTests { diff --git a/Dummies.UnitTests/AnySignedIntegerTests.cs b/JustDummies.UnitTests/AnySignedIntegerTests.cs similarity index 99% rename from Dummies.UnitTests/AnySignedIntegerTests.cs rename to JustDummies.UnitTests/AnySignedIntegerTests.cs index 5b31c3f4..bc164062 100644 --- a/Dummies.UnitTests/AnySignedIntegerTests.cs +++ b/JustDummies.UnitTests/AnySignedIntegerTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnySignedIntegerTests { diff --git a/Dummies.UnitTests/AnyStringOneOfTests.cs b/JustDummies.UnitTests/AnyStringOneOfTests.cs similarity index 99% rename from Dummies.UnitTests/AnyStringOneOfTests.cs rename to JustDummies.UnitTests/AnyStringOneOfTests.cs index e2d3aa37..e7468f7c 100644 --- a/Dummies.UnitTests/AnyStringOneOfTests.cs +++ b/JustDummies.UnitTests/AnyStringOneOfTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(AnyStringOneOf))] public sealed class AnyStringOneOfTests { diff --git a/Dummies.UnitTests/AnyStringTests.cs b/JustDummies.UnitTests/AnyStringTests.cs similarity index 99% rename from Dummies.UnitTests/AnyStringTests.cs rename to JustDummies.UnitTests/AnyStringTests.cs index 59ad6d0d..9210ecb1 100644 --- a/Dummies.UnitTests/AnyStringTests.cs +++ b/JustDummies.UnitTests/AnyStringTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(AnyString))] public sealed class AnyStringTests { diff --git a/Dummies.UnitTests/AnyTimeTests.cs b/JustDummies.UnitTests/AnyTimeTests.cs similarity index 99% rename from Dummies.UnitTests/AnyTimeTests.cs rename to JustDummies.UnitTests/AnyTimeTests.cs index 0d1e84ac..423d3aee 100644 --- a/Dummies.UnitTests/AnyTimeTests.cs +++ b/JustDummies.UnitTests/AnyTimeTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnyTimeTests { diff --git a/Dummies.UnitTests/AnyUnsignedIntegerTests.cs b/JustDummies.UnitTests/AnyUnsignedIntegerTests.cs similarity index 99% rename from Dummies.UnitTests/AnyUnsignedIntegerTests.cs rename to JustDummies.UnitTests/AnyUnsignedIntegerTests.cs index c3cbe2a4..045c6f05 100644 --- a/Dummies.UnitTests/AnyUnsignedIntegerTests.cs +++ b/JustDummies.UnitTests/AnyUnsignedIntegerTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; public sealed class AnyUnsignedIntegerTests { diff --git a/Dummies.UnitTests/AnyUriTests.cs b/JustDummies.UnitTests/AnyUriTests.cs similarity index 99% rename from Dummies.UnitTests/AnyUriTests.cs rename to JustDummies.UnitTests/AnyUriTests.cs index 707764d1..cb8e1e60 100644 --- a/Dummies.UnitTests/AnyUriTests.cs +++ b/JustDummies.UnitTests/AnyUriTests.cs @@ -11,7 +11,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(AnyUri))] public sealed class AnyUriTests { diff --git a/Dummies.UnitTests/ArchitectureTests.cs b/JustDummies.UnitTests/ArchitectureTests.cs similarity index 73% rename from Dummies.UnitTests/ArchitectureTests.cs rename to JustDummies.UnitTests/ArchitectureTests.cs index 2296c85b..5b9cf42d 100644 --- a/Dummies.UnitTests/ArchitectureTests.cs +++ b/JustDummies.UnitTests/ArchitectureTests.cs @@ -6,17 +6,17 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// -/// Guards the standalone boundary of the library: Dummies is error-agnostic and must never gain a dependency on +/// Guards the standalone boundary of the library: JustDummies is error-agnostic and must never gain a dependency on /// FirstClassErrors (or any other project of this repository). If this test fails, the boundary was crossed — /// see the ADR that records the decision before touching it. /// public sealed class ArchitectureTests { - [Fact(DisplayName = "Dummies references no FirstClassErrors assembly.")] - public void DummiesReferencesNoFirstClassErrorsAssembly() { + [Fact(DisplayName = "JustDummies references no FirstClassErrors assembly.")] + public void JustDummiesReferencesNoFirstClassErrorsAssembly() { AssemblyName[] references = typeof(Any).Assembly.GetReferencedAssemblies(); foreach (AssemblyName reference in references) { @@ -24,8 +24,8 @@ public void DummiesReferencesNoFirstClassErrorsAssembly() { } } - [Fact(DisplayName = "Dummies depends on nothing beyond the standard library.")] - public void DummiesDependsOnNothingBeyondTheStandardLibrary() { + [Fact(DisplayName = "JustDummies depends on nothing beyond the standard library.")] + public void JustDummiesDependsOnNothingBeyondTheStandardLibrary() { AssemblyName[] references = typeof(Any).Assembly.GetReferencedAssemblies(); foreach (AssemblyName reference in references) { diff --git a/Dummies.UnitTests/CompositionTests.cs b/JustDummies.UnitTests/CompositionTests.cs similarity index 99% rename from Dummies.UnitTests/CompositionTests.cs rename to JustDummies.UnitTests/CompositionTests.cs index c14c3bfc..b6e00108 100644 --- a/Dummies.UnitTests/CompositionTests.cs +++ b/JustDummies.UnitTests/CompositionTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(AnyExtensions))] public sealed class CompositionTests { diff --git a/Dummies.UnitTests/ContinuousExclusionNudgeTests.cs b/JustDummies.UnitTests/ContinuousExclusionNudgeTests.cs similarity index 99% rename from Dummies.UnitTests/ContinuousExclusionNudgeTests.cs rename to JustDummies.UnitTests/ContinuousExclusionNudgeTests.cs index bab7ba54..bd745cdd 100644 --- a/Dummies.UnitTests/ContinuousExclusionNudgeTests.cs +++ b/JustDummies.UnitTests/ContinuousExclusionNudgeTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// Regression coverage for issue #207. On the narrow (quantized) floating-point types an exclusion inside a tight diff --git a/Dummies.UnitTests/CrossEngineReachabilityTests.cs b/JustDummies.UnitTests/CrossEngineReachabilityTests.cs similarity index 99% rename from Dummies.UnitTests/CrossEngineReachabilityTests.cs rename to JustDummies.UnitTests/CrossEngineReachabilityTests.cs index ac2fc58b..c549e37c 100644 --- a/Dummies.UnitTests/CrossEngineReachabilityTests.cs +++ b/JustDummies.UnitTests/CrossEngineReachabilityTests.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// A single scenario battery run against every interval-backed builder through a small per-type adapter, @@ -13,7 +13,7 @@ namespace Dummies.UnitTests; /// /// /// -/// The suite closes the reachability blind spot the 2026-07-20 Dummies architecture audit named (§9.2/§9.3, +/// The suite closes the reachability blind spot the 2026-07-20 JustDummies architecture audit named (§9.2/§9.3, /// issue #213): the existing tests assert membership (a generated value satisfies its constraints) but /// never reachability (the whole declared domain is actually generable). Two shipped defects survived /// that gap — never reaching the upper half of a range (#206) and the diff --git a/Dummies.UnitTests/FactoryNamingConventionTests.cs b/JustDummies.UnitTests/FactoryNamingConventionTests.cs similarity index 98% rename from Dummies.UnitTests/FactoryNamingConventionTests.cs rename to JustDummies.UnitTests/FactoryNamingConventionTests.cs index e8bd3ace..61c1b241 100644 --- a/Dummies.UnitTests/FactoryNamingConventionTests.cs +++ b/JustDummies.UnitTests/FactoryNamingConventionTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// Locks the factory-naming rule recorded in ADR-0031: every parameterless, type-named scalar factory diff --git a/Dummies.UnitTests/Dummies.UnitTests.csproj b/JustDummies.UnitTests/JustDummies.UnitTests.csproj similarity index 91% rename from Dummies.UnitTests/Dummies.UnitTests.csproj rename to JustDummies.UnitTests/JustDummies.UnitTests.csproj index b5f65bc9..51ba6fe0 100644 --- a/Dummies.UnitTests/Dummies.UnitTests.csproj +++ b/JustDummies.UnitTests/JustDummies.UnitTests.csproj @@ -1,7 +1,7 @@ @@ -28,9 +28,9 @@ - - + diff --git a/Dummies.UnitTests/MaterializationTests.cs b/JustDummies.UnitTests/MaterializationTests.cs similarity index 98% rename from Dummies.UnitTests/MaterializationTests.cs rename to JustDummies.UnitTests/MaterializationTests.cs index 955a9d50..7e7b171b 100644 --- a/Dummies.UnitTests/MaterializationTests.cs +++ b/JustDummies.UnitTests/MaterializationTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(Any))] public sealed class MaterializationTests { diff --git a/Dummies.UnitTests/SeedReproducibilityTests.cs b/JustDummies.UnitTests/SeedReproducibilityTests.cs similarity index 99% rename from Dummies.UnitTests/SeedReproducibilityTests.cs rename to JustDummies.UnitTests/SeedReproducibilityTests.cs index 189dafa7..a5358328 100644 --- a/Dummies.UnitTests/SeedReproducibilityTests.cs +++ b/JustDummies.UnitTests/SeedReproducibilityTests.cs @@ -6,7 +6,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; [TestSubject(typeof(Any))] public sealed class SeedReproducibilityTests { diff --git a/Dummies.UnitTests/SurfaceParityTests.cs b/JustDummies.UnitTests/SurfaceParityTests.cs similarity index 99% rename from Dummies.UnitTests/SurfaceParityTests.cs rename to JustDummies.UnitTests/SurfaceParityTests.cs index 89861550..76f96f1d 100644 --- a/Dummies.UnitTests/SurfaceParityTests.cs +++ b/JustDummies.UnitTests/SurfaceParityTests.cs @@ -7,7 +7,7 @@ #endregion -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// Structural guards over the library's two hand-mirrored surfaces. Both are pure reflection, so they add no diff --git a/Dummies.UnitTests/TestValueObjects.cs b/JustDummies.UnitTests/TestValueObjects.cs similarity index 98% rename from Dummies.UnitTests/TestValueObjects.cs rename to JustDummies.UnitTests/TestValueObjects.cs index 613e8bd3..4377bdb9 100644 --- a/Dummies.UnitTests/TestValueObjects.cs +++ b/JustDummies.UnitTests/TestValueObjects.cs @@ -1,4 +1,4 @@ -namespace Dummies.UnitTests; +namespace JustDummies.UnitTests; /// /// A DDD-style value object with a format invariant, used to exercise the primitive-to-value-object bridge diff --git a/Dummies.Xunit.UnitTests/ArchitectureTests.cs b/JustDummies.Xunit.UnitTests/ArchitectureTests.cs similarity index 65% rename from Dummies.Xunit.UnitTests/ArchitectureTests.cs rename to JustDummies.Xunit.UnitTests/ArchitectureTests.cs index 6188de40..57895b35 100644 --- a/Dummies.Xunit.UnitTests/ArchitectureTests.cs +++ b/JustDummies.Xunit.UnitTests/ArchitectureTests.cs @@ -6,18 +6,18 @@ #endregion -namespace Dummies.Xunit.UnitTests; +namespace JustDummies.Xunit.UnitTests; /// -/// Guards the boundary of the companion package. Dummies itself may depend on nothing beyond the standard +/// Guards the boundary of the companion package. JustDummies itself may depend on nothing beyond the standard /// library (ADR-0011), which is precisely why the xUnit adapter is a separate package (ADR-0036): it exists to -/// carry the one dependency Dummies cannot. What it must never carry is a FirstClassErrors dependency — the -/// error-agnostic promise applies to the whole Dummies line, not just its core assembly. +/// carry the one dependency JustDummies cannot. What it must never carry is a FirstClassErrors dependency — the +/// error-agnostic promise applies to the whole JustDummies line, not just its core assembly. /// public sealed class ArchitectureTests { - [Fact(DisplayName = "Dummies.Xunit references no FirstClassErrors assembly.")] - public void DummiesXunitReferencesNoFirstClassErrorsAssembly() { + [Fact(DisplayName = "JustDummies.Xunit references no FirstClassErrors assembly.")] + public void JustDummiesXunitReferencesNoFirstClassErrorsAssembly() { AssemblyName[] references = typeof(ReproducibleAttribute).Assembly.GetReferencedAssemblies(); foreach (AssemblyName reference in references) { @@ -26,14 +26,14 @@ public void DummiesXunitReferencesNoFirstClassErrorsAssembly() { } } - [Fact(DisplayName = "Dummies.Xunit depends on nothing beyond the standard library, Dummies and xUnit.")] - public void DummiesXunitDependsOnlyOnDummiesAndXunit() { + [Fact(DisplayName = "JustDummies.Xunit depends on nothing beyond the standard library, JustDummies and xUnit.")] + public void JustDummiesXunitDependsOnlyOnJustDummiesAndXunit() { AssemblyName[] references = typeof(ReproducibleAttribute).Assembly.GetReferencedAssemblies(); foreach (AssemblyName reference in references) { // The exact facade split varies with the SDK, so the guard checks the intent — the standard // library, the library being adapted, and the framework it is adapted to — not a fixed list. - bool expected = reference.Name is "netstandard" or "mscorlib" or "Dummies" + bool expected = reference.Name is "netstandard" or "mscorlib" or "JustDummies" || reference.Name!.StartsWith("System.", StringComparison.Ordinal) || reference.Name.StartsWith("xunit.", StringComparison.Ordinal); diff --git a/Dummies.Xunit.UnitTests/Dummies.Xunit.UnitTests.csproj b/JustDummies.Xunit.UnitTests/JustDummies.Xunit.UnitTests.csproj similarity index 86% rename from Dummies.Xunit.UnitTests/Dummies.Xunit.UnitTests.csproj rename to JustDummies.Xunit.UnitTests/JustDummies.Xunit.UnitTests.csproj index 3e8604c9..626bef02 100644 --- a/Dummies.Xunit.UnitTests/Dummies.Xunit.UnitTests.csproj +++ b/JustDummies.Xunit.UnitTests/JustDummies.Xunit.UnitTests.csproj @@ -1,7 +1,7 @@ @@ -28,9 +28,9 @@ - - + diff --git a/Dummies.Xunit.UnitTests/ReproducibleAttributeTests.cs b/JustDummies.Xunit.UnitTests/ReproducibleAttributeTests.cs similarity index 99% rename from Dummies.Xunit.UnitTests/ReproducibleAttributeTests.cs rename to JustDummies.Xunit.UnitTests/ReproducibleAttributeTests.cs index d210e4ad..967808ca 100644 --- a/Dummies.Xunit.UnitTests/ReproducibleAttributeTests.cs +++ b/JustDummies.Xunit.UnitTests/ReproducibleAttributeTests.cs @@ -11,7 +11,7 @@ #endregion -namespace Dummies.Xunit.UnitTests; +namespace JustDummies.Xunit.UnitTests; /// /// The adapter is exercised through the real xUnit pipeline wherever a behaviour is observable from inside a diff --git a/Dummies.Xunit/Dummies.Xunit.csproj b/JustDummies.Xunit/JustDummies.Xunit.csproj similarity index 76% rename from Dummies.Xunit/Dummies.Xunit.csproj rename to JustDummies.Xunit/JustDummies.Xunit.csproj index 1b990d31..4542de15 100644 --- a/Dummies.Xunit/Dummies.Xunit.csproj +++ b/JustDummies.Xunit/JustDummies.Xunit.csproj @@ -1,11 +1,11 @@ + netstandard2.0 subfolder: this package has one surface, unlike JustDummies' two divergent legs. --> - netstandard2.0 @@ -17,17 +17,17 @@ true + dum release train (dum-v*, see tools/packaging/pack.sh), which this package rides with JustDummies. --> 0.1.0-dev - Dummies.Xunit + JustDummies.Xunit Sylvain AURAT Reefact - The xUnit v3 companion of Dummies: mark a test, a class or an assembly [Reproducible] and its arbitrary values are drawn from a pinned seed, reported only when the test fails. Removes the per-test Any.Reproducibly ceremony without changing how values are generated. + The xUnit v3 companion of JustDummies: mark a test, a class or an assembly [Reproducible] and its arbitrary values are drawn from a pinned seed, reported only when the test fails. Removes the per-test Any.Reproducibly ceremony without changing how values are generated. @@ -36,7 +36,7 @@ false - https://github.com/Reefact/first-class-errors + https://justdummies.io https://github.com/Reefact/first-class-errors.git git @@ -56,7 +56,7 @@ - + @@ -66,13 +66,13 @@ - - + - diff --git a/Dummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/JustDummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt similarity index 100% rename from Dummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt rename to JustDummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt diff --git a/JustDummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/JustDummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt new file mode 100644 index 00000000..d3165b76 --- /dev/null +++ b/JustDummies.Xunit/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -0,0 +1,7 @@ +#nullable enable +JustDummies.Xunit.ReproducibleAttribute +JustDummies.Xunit.ReproducibleAttribute.ReproducibleAttribute() -> void +JustDummies.Xunit.ReproducibleAttribute.Seed.get -> int +JustDummies.Xunit.ReproducibleAttribute.Seed.set -> void +override JustDummies.Xunit.ReproducibleAttribute.After(System.Reflection.MethodInfo! methodUnderTest, Xunit.v3.IXunitTest! test) -> void +override JustDummies.Xunit.ReproducibleAttribute.Before(System.Reflection.MethodInfo! methodUnderTest, Xunit.v3.IXunitTest! test) -> void diff --git a/Dummies.Xunit/README.nuget.md b/JustDummies.Xunit/README.nuget.md similarity index 85% rename from Dummies.Xunit/README.nuget.md rename to JustDummies.Xunit/README.nuget.md index b3e31e69..19195af8 100644 --- a/Dummies.Xunit/README.nuget.md +++ b/JustDummies.Xunit/README.nuget.md @@ -1,13 +1,13 @@ -# Dummies.Xunit +# JustDummies.Xunit -The [xUnit v3](https://xunit.net) companion of [Dummies](https://www.nuget.org/packages/Dummies). +The [xUnit v3](https://xunit.net) companion of [JustDummies](https://www.nuget.org/packages/JustDummies). Mark a test `[Reproducible]` and its arbitrary values are drawn from a pinned seed — reported **only when the test fails**, so a red test names the exact seed to replay while a green one stays silent. ## Why -`Dummies` makes a run reproducible by wrapping the test body in a delegate: +`JustDummies` makes a run reproducible by wrapping the test body in a delegate: [Fact] public void Order_reference_is_accepted() { @@ -34,7 +34,7 @@ never wrapped in advance. A failing test writes its seed to the test output: - [Dummies] These arbitrary values were seeded with 1234. Reproduce this run with [Reproducible(Seed = 1234)]. + [JustDummies] These arbitrary values were seeded with 1234. Reproduce this run with [Reproducible(Seed = 1234)]. Pin it to replay: @@ -62,11 +62,11 @@ replays a particular seed. context is isolated by design and does not draw from the ambient source this attribute pins. - The seed is pinned through `Any.UseSeed(...)`, a public handle any test-framework - adapter can use — this package holds no privileged access to `Dummies`. + adapter can use — this package holds no privileged access to `JustDummies`. - xUnit v3 only. On xUnit v2, NUnit, MSTest or anything else, use `Any.Reproducibly(...)`: it is unaffected by this package and works everywhere. ## Links - [Repository](https://github.com/Reefact/first-class-errors) -- [Dummies](https://www.nuget.org/packages/Dummies) +- [JustDummies](https://www.nuget.org/packages/JustDummies) diff --git a/Dummies.Xunit/ReproducibleAttribute.cs b/JustDummies.Xunit/ReproducibleAttribute.cs similarity index 97% rename from Dummies.Xunit/ReproducibleAttribute.cs rename to JustDummies.Xunit/ReproducibleAttribute.cs index be0b3325..010920e7 100644 --- a/Dummies.Xunit/ReproducibleAttribute.cs +++ b/JustDummies.Xunit/ReproducibleAttribute.cs @@ -7,7 +7,7 @@ #endregion -namespace Dummies.Xunit; +namespace JustDummies.Xunit; /// /// Makes a test's arbitrary values reproducible: the ambient context is pinned to a seed for @@ -124,7 +124,7 @@ private static bool HasFailed() { /// internal static string? ReportFor(bool failed, int seed) { return failed - ? $"[Dummies] These arbitrary values were seeded with {seed}. Reproduce this run with {ReplaySnippet(seed)}." + ? $"[JustDummies] These arbitrary values were seeded with {seed}. Reproduce this run with {ReplaySnippet(seed)}." : null; } diff --git a/Dummies/Any.cs b/JustDummies/Any.cs similarity index 99% rename from Dummies/Any.cs rename to JustDummies/Any.cs index c74d9657..d74a58f6 100644 --- a/Dummies/Any.cs +++ b/JustDummies/Any.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// The entry point of the library: supplies arbitrary, valid values for the parts of a test that are not @@ -991,7 +991,7 @@ public static AnyDictionary DictionaryOf(IAny private static void Report(Action? report, int seed) { (report ?? Console.Error.WriteLine)( - $"[Dummies] These arbitrary values were seeded with {seed}. Reproduce this run with Any.Reproducibly({seed}, ...)."); + $"[JustDummies] These arbitrary values were seeded with {seed}. Reproduce this run with Any.Reproducibly({seed}, ...)."); } } diff --git a/Dummies/AnyArray.cs b/JustDummies/AnyArray.cs similarity index 98% rename from Dummies/AnyArray.cs rename to JustDummies/AnyArray.cs index 7f0a3e53..2d25dce4 100644 --- a/Dummies/AnyArray.cs +++ b/JustDummies/AnyArray.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary array (T[]) values over an element generator. Shares the collection diff --git a/Dummies/AnyBoolean.cs b/JustDummies/AnyBoolean.cs similarity index 99% rename from Dummies/AnyBoolean.cs rename to JustDummies/AnyBoolean.cs index 4b229325..3e42f31f 100644 --- a/Dummies/AnyBoolean.cs +++ b/JustDummies/AnyBoolean.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values. True() and False() pin the value — diff --git a/Dummies/AnyByte.cs b/JustDummies/AnyByte.cs similarity index 99% rename from Dummies/AnyByte.cs rename to JustDummies/AnyByte.cs index d7429fe3..feaeab4d 100644 --- a/Dummies/AnyByte.cs +++ b/JustDummies/AnyByte.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyChar.cs b/JustDummies/AnyChar.cs similarity index 99% rename from Dummies/AnyChar.cs rename to JustDummies/AnyChar.cs index b6e0dc7a..ae723498 100644 --- a/Dummies/AnyChar.cs +++ b/JustDummies/AnyChar.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values. Unconstrained, it draws from ASCII letters and diff --git a/Dummies/AnyCollection.cs b/JustDummies/AnyCollection.cs similarity index 99% rename from Dummies/AnyCollection.cs rename to JustDummies/AnyCollection.cs index ff2e2cd2..0af316c5 100644 --- a/Dummies/AnyCollection.cs +++ b/JustDummies/AnyCollection.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// The shared fluent surface of the collection generators. Every collection — a , diff --git a/Dummies/AnyContext.cs b/JustDummies/AnyContext.cs similarity index 99% rename from Dummies/AnyContext.cs rename to JustDummies/AnyContext.cs index 649055a8..6502942c 100644 --- a/Dummies/AnyContext.cs +++ b/JustDummies/AnyContext.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// An isolated, deterministic generation context created by : every generator created diff --git a/Dummies/AnyDateOnly.cs b/JustDummies/AnyDateOnly.cs similarity index 99% rename from Dummies/AnyDateOnly.cs rename to JustDummies/AnyDateOnly.cs index f613d8b4..950b3a66 100644 --- a/Dummies/AnyDateOnly.cs +++ b/JustDummies/AnyDateOnly.cs @@ -5,7 +5,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyDateTime.cs b/JustDummies/AnyDateTime.cs similarity index 99% rename from Dummies/AnyDateTime.cs rename to JustDummies/AnyDateTime.cs index f3e28f9a..27378068 100644 --- a/Dummies/AnyDateTime.cs +++ b/JustDummies/AnyDateTime.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as diff --git a/Dummies/AnyDateTimeOffset.cs b/JustDummies/AnyDateTimeOffset.cs similarity index 99% rename from Dummies/AnyDateTimeOffset.cs rename to JustDummies/AnyDateTimeOffset.cs index 83bdce96..5659288d 100644 --- a/Dummies/AnyDateTimeOffset.cs +++ b/JustDummies/AnyDateTimeOffset.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as diff --git a/Dummies/AnyDecimal.cs b/JustDummies/AnyDecimal.cs similarity index 99% rename from Dummies/AnyDecimal.cs rename to JustDummies/AnyDecimal.cs index 587ccb17..be693d62 100644 --- a/Dummies/AnyDecimal.cs +++ b/JustDummies/AnyDecimal.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyDerivation.cs b/JustDummies/AnyDerivation.cs similarity index 99% rename from Dummies/AnyDerivation.cs rename to JustDummies/AnyDerivation.cs index 31489e87..9f0ced3e 100644 --- a/Dummies/AnyDerivation.cs +++ b/JustDummies/AnyDerivation.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A generator derived from other generators (As, Combine): it delegates generation to a closure diff --git a/Dummies/AnyDictionary.cs b/JustDummies/AnyDictionary.cs similarity index 99% rename from Dummies/AnyDictionary.cs rename to JustDummies/AnyDictionary.cs index 3225fe9d..b96a8123 100644 --- a/Dummies/AnyDictionary.cs +++ b/JustDummies/AnyDictionary.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values over a key generator and a value diff --git a/Dummies/AnyDouble.cs b/JustDummies/AnyDouble.cs similarity index 99% rename from Dummies/AnyDouble.cs rename to JustDummies/AnyDouble.cs index 34f3ec0b..3cb12909 100644 --- a/Dummies/AnyDouble.cs +++ b/JustDummies/AnyDouble.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyEnum.cs b/JustDummies/AnyEnum.cs similarity index 99% rename from Dummies/AnyEnum.cs rename to JustDummies/AnyEnum.cs index 52cc6510..794e8fb3 100644 --- a/Dummies/AnyEnum.cs +++ b/JustDummies/AnyEnum.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values, drawn uniformly from the enum's diff --git a/Dummies/AnyException.cs b/JustDummies/AnyException.cs similarity index 93% rename from Dummies/AnyException.cs rename to JustDummies/AnyException.cs index bbfd4eb4..07da1c2b 100644 --- a/Dummies/AnyException.cs +++ b/JustDummies/AnyException.cs @@ -1,7 +1,7 @@ -namespace Dummies; +namespace JustDummies; /// -/// Base class of every exception the library throws on its own behalf, so a caller can catch "anything Dummies +/// Base class of every exception the library throws on its own behalf, so a caller can catch "anything JustDummies /// rejected" with a single clause. Concrete cases: /// when two declared constraints cannot be satisfied together, /// and when a generation fails even though the constraints were accepted. diff --git a/Dummies/AnyExtensions.cs b/JustDummies/AnyExtensions.cs similarity index 99% rename from Dummies/AnyExtensions.cs rename to JustDummies/AnyExtensions.cs index 54a7e522..4d16b6ab 100644 --- a/Dummies/AnyExtensions.cs +++ b/JustDummies/AnyExtensions.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// Composition over . These extensions are the bridge between constrained primitives and diff --git a/Dummies/AnyFtpUri.cs b/JustDummies/AnyFtpUri.cs similarity index 99% rename from Dummies/AnyFtpUri.cs rename to JustDummies/AnyFtpUri.cs index e6f6088b..280b4484 100644 --- a/Dummies/AnyFtpUri.cs +++ b/JustDummies/AnyFtpUri.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator of arbitrary ftp URIs — the classic ftp://user:password@host/path shape of legacy diff --git a/Dummies/AnyGenerationException.cs b/JustDummies/AnyGenerationException.cs similarity index 99% rename from Dummies/AnyGenerationException.cs rename to JustDummies/AnyGenerationException.cs index 48923955..fdfca61e 100644 --- a/Dummies/AnyGenerationException.cs +++ b/JustDummies/AnyGenerationException.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// Thrown when a generation cannot be completed even though every declared constraint was accepted — most diff --git a/Dummies/AnyGuid.cs b/JustDummies/AnyGuid.cs similarity index 99% rename from Dummies/AnyGuid.cs rename to JustDummies/AnyGuid.cs index ef6742c6..2d9a6c89 100644 --- a/Dummies/AnyGuid.cs +++ b/JustDummies/AnyGuid.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values, drawn from the seedable source — unlike diff --git a/Dummies/AnyHalf.cs b/JustDummies/AnyHalf.cs similarity index 99% rename from Dummies/AnyHalf.cs rename to JustDummies/AnyHalf.cs index 4c706359..30c6b230 100644 --- a/Dummies/AnyHalf.cs +++ b/JustDummies/AnyHalf.cs @@ -5,7 +5,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyInt128.cs b/JustDummies/AnyInt128.cs similarity index 99% rename from Dummies/AnyInt128.cs rename to JustDummies/AnyInt128.cs index a8d581b6..f4571ff3 100644 --- a/Dummies/AnyInt128.cs +++ b/JustDummies/AnyInt128.cs @@ -5,7 +5,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyInt16.cs b/JustDummies/AnyInt16.cs similarity index 99% rename from Dummies/AnyInt16.cs rename to JustDummies/AnyInt16.cs index bccb502a..1cd3346e 100644 --- a/Dummies/AnyInt16.cs +++ b/JustDummies/AnyInt16.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyInt32.cs b/JustDummies/AnyInt32.cs similarity index 99% rename from Dummies/AnyInt32.cs rename to JustDummies/AnyInt32.cs index 666c597f..2bd61b61 100644 --- a/Dummies/AnyInt32.cs +++ b/JustDummies/AnyInt32.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values. Each constraint narrows the domain the value is diff --git a/Dummies/AnyInt64.cs b/JustDummies/AnyInt64.cs similarity index 99% rename from Dummies/AnyInt64.cs rename to JustDummies/AnyInt64.cs index 25f94539..3fe565e9 100644 --- a/Dummies/AnyInt64.cs +++ b/JustDummies/AnyInt64.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyList.cs b/JustDummies/AnyList.cs similarity index 98% rename from Dummies/AnyList.cs rename to JustDummies/AnyList.cs index a1259e8a..f71fe051 100644 --- a/Dummies/AnyList.cs +++ b/JustDummies/AnyList.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values over an element generator. Shares the collection diff --git a/Dummies/AnyMailtoUri.cs b/JustDummies/AnyMailtoUri.cs similarity index 98% rename from Dummies/AnyMailtoUri.cs rename to JustDummies/AnyMailtoUri.cs index bf9fb723..35df59a5 100644 --- a/Dummies/AnyMailtoUri.cs +++ b/JustDummies/AnyMailtoUri.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator of arbitrary mailto URIs — mailto:local@domain, optionally with headers. The diff --git a/Dummies/AnyOneOf.cs b/JustDummies/AnyOneOf.cs similarity index 99% rename from Dummies/AnyOneOf.cs rename to JustDummies/AnyOneOf.cs index cf9476ca..ad993aa5 100644 --- a/Dummies/AnyOneOf.cs +++ b/JustDummies/AnyOneOf.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator that draws an arbitrary value from an explicit, fixed pool supplied by the caller — the diff --git a/Dummies/AnyPattern.cs b/JustDummies/AnyPattern.cs similarity index 99% rename from Dummies/AnyPattern.cs rename to JustDummies/AnyPattern.cs index 05bfcfee..16ffa7cf 100644 --- a/Dummies/AnyPattern.cs +++ b/JustDummies/AnyPattern.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator of arbitrary strings that match a regular expression — the dummy for a value whose format is diff --git a/Dummies/AnyRelativeUri.cs b/JustDummies/AnyRelativeUri.cs similarity index 98% rename from Dummies/AnyRelativeUri.cs rename to JustDummies/AnyRelativeUri.cs index 94caf5e4..4e66b182 100644 --- a/Dummies/AnyRelativeUri.cs +++ b/JustDummies/AnyRelativeUri.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator of arbitrary relative URI references — a path with an optional query and fragment, and no diff --git a/Dummies/AnySByte.cs b/JustDummies/AnySByte.cs similarity index 99% rename from Dummies/AnySByte.cs rename to JustDummies/AnySByte.cs index 67cadcf6..0a932c1c 100644 --- a/Dummies/AnySByte.cs +++ b/JustDummies/AnySByte.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnySequence.cs b/JustDummies/AnySequence.cs similarity index 99% rename from Dummies/AnySequence.cs rename to JustDummies/AnySequence.cs index 8a347947..b36588b5 100644 --- a/Dummies/AnySequence.cs +++ b/JustDummies/AnySequence.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values over an element generator. The generated diff --git a/Dummies/AnySet.cs b/JustDummies/AnySet.cs similarity index 98% rename from Dummies/AnySet.cs rename to JustDummies/AnySet.cs index c890ad6d..a6fb0bd4 100644 --- a/Dummies/AnySet.cs +++ b/JustDummies/AnySet.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values over an element generator. A set is diff --git a/Dummies/AnySingle.cs b/JustDummies/AnySingle.cs similarity index 99% rename from Dummies/AnySingle.cs rename to JustDummies/AnySingle.cs index 2a54b5fe..51050c7b 100644 --- a/Dummies/AnySingle.cs +++ b/JustDummies/AnySingle.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyString.cs b/JustDummies/AnyString.cs similarity index 99% rename from Dummies/AnyString.cs rename to JustDummies/AnyString.cs index b0184e8e..671a5659 100644 --- a/Dummies/AnyString.cs +++ b/JustDummies/AnyString.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values. Each constraint narrows the shape of the diff --git a/Dummies/AnyStringOneOf.cs b/JustDummies/AnyStringOneOf.cs similarity index 99% rename from Dummies/AnyStringOneOf.cs rename to JustDummies/AnyStringOneOf.cs index dae0cc38..5fd9ad6a 100644 --- a/Dummies/AnyStringOneOf.cs +++ b/JustDummies/AnyStringOneOf.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator of arbitrary strings drawn from an explicit, fixed set of values — the dummy for a value diff --git a/Dummies/AnyTimeOnly.cs b/JustDummies/AnyTimeOnly.cs similarity index 99% rename from Dummies/AnyTimeOnly.cs rename to JustDummies/AnyTimeOnly.cs index eb669b7e..7466480b 100644 --- a/Dummies/AnyTimeOnly.cs +++ b/JustDummies/AnyTimeOnly.cs @@ -5,7 +5,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyTimeSpan.cs b/JustDummies/AnyTimeSpan.cs similarity index 99% rename from Dummies/AnyTimeSpan.cs rename to JustDummies/AnyTimeSpan.cs index 57af0a48..8028932a 100644 --- a/Dummies/AnyTimeSpan.cs +++ b/JustDummies/AnyTimeSpan.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as diff --git a/Dummies/AnyUInt128.cs b/JustDummies/AnyUInt128.cs similarity index 99% rename from Dummies/AnyUInt128.cs rename to JustDummies/AnyUInt128.cs index dae5e26e..cd54c3aa 100644 --- a/Dummies/AnyUInt128.cs +++ b/JustDummies/AnyUInt128.cs @@ -5,7 +5,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyUInt16.cs b/JustDummies/AnyUInt16.cs similarity index 99% rename from Dummies/AnyUInt16.cs rename to JustDummies/AnyUInt16.cs index 2cf5c570..411f2834 100644 --- a/Dummies/AnyUInt16.cs +++ b/JustDummies/AnyUInt16.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyUInt32.cs b/JustDummies/AnyUInt32.cs similarity index 99% rename from Dummies/AnyUInt32.cs rename to JustDummies/AnyUInt32.cs index ea1f9a20..c97e81e0 100644 --- a/Dummies/AnyUInt32.cs +++ b/JustDummies/AnyUInt32.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyUInt64.cs b/JustDummies/AnyUInt64.cs similarity index 99% rename from Dummies/AnyUInt64.cs rename to JustDummies/AnyUInt64.cs index d829ef07..c43d37e7 100644 --- a/Dummies/AnyUInt64.cs +++ b/JustDummies/AnyUInt64.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary values — the same contract as : diff --git a/Dummies/AnyUri.cs b/JustDummies/AnyUri.cs similarity index 99% rename from Dummies/AnyUri.cs rename to JustDummies/AnyUri.cs index c2fb0d4e..a712cb74 100644 --- a/Dummies/AnyUri.cs +++ b/JustDummies/AnyUri.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A fluent generator of arbitrary yet valid values. Unconstrained, it spans the whole diff --git a/Dummies/AnyWebSocketUri.cs b/JustDummies/AnyWebSocketUri.cs similarity index 99% rename from Dummies/AnyWebSocketUri.cs rename to JustDummies/AnyWebSocketUri.cs index fa2a8575..011f0950 100644 --- a/Dummies/AnyWebSocketUri.cs +++ b/JustDummies/AnyWebSocketUri.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator of arbitrary ws/wss URIs. Per RFC 6455 a WebSocket URI carries no user-info and diff --git a/Dummies/AnyWebUri.cs b/JustDummies/AnyWebUri.cs similarity index 99% rename from Dummies/AnyWebUri.cs rename to JustDummies/AnyWebUri.cs index dcf731b3..82d3ed5b 100644 --- a/Dummies/AnyWebUri.cs +++ b/JustDummies/AnyWebUri.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A generator of arbitrary http/https URIs. Exposes the full authority surface — user-info, host, diff --git a/Dummies/CHANGELOG.md b/JustDummies/CHANGELOG.md similarity index 86% rename from Dummies/CHANGELOG.md rename to JustDummies/CHANGELOG.md index dbe8851c..849dce7a 100644 --- a/Dummies/CHANGELOG.md +++ b/JustDummies/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -All notable, user-facing changes to **Dummies** are documented here. +All notable, user-facing changes to **JustDummies** are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). diff --git a/Dummies/CharacterPools.cs b/JustDummies/CharacterPools.cs similarity index 97% rename from Dummies/CharacterPools.cs rename to JustDummies/CharacterPools.cs index 5011cbda..15b9e945 100644 --- a/Dummies/CharacterPools.cs +++ b/JustDummies/CharacterPools.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// The character families a string or char generator can be restricted to. internal enum CharacterSet { diff --git a/Dummies/CollectionState.cs b/JustDummies/CollectionState.cs similarity index 99% rename from Dummies/CollectionState.cs rename to JustDummies/CollectionState.cs index 39dca861..48406048 100644 --- a/Dummies/CollectionState.cs +++ b/JustDummies/CollectionState.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// The immutable specification behind every collection generator (, diff --git a/Dummies/ConflictingAnyConstraintException.cs b/JustDummies/ConflictingAnyConstraintException.cs similarity index 97% rename from Dummies/ConflictingAnyConstraintException.cs rename to JustDummies/ConflictingAnyConstraintException.cs index e9d09c92..169ac3e7 100644 --- a/Dummies/ConflictingAnyConstraintException.cs +++ b/JustDummies/ConflictingAnyConstraintException.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// Thrown at the moment a constraint is declared when it cannot be satisfied together with the constraints diff --git a/Dummies/ContinuousIntervalSpec.cs b/JustDummies/ContinuousIntervalSpec.cs similarity index 99% rename from Dummies/ContinuousIntervalSpec.cs rename to JustDummies/ContinuousIntervalSpec.cs index 370bb873..519a3fd1 100644 --- a/Dummies/ContinuousIntervalSpec.cs +++ b/JustDummies/ContinuousIntervalSpec.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// The shared immutable engine behind the binary floating-point generators (, diff --git a/Dummies/CountConstraints.cs b/JustDummies/CountConstraints.cs similarity index 99% rename from Dummies/CountConstraints.cs rename to JustDummies/CountConstraints.cs index ed7f8232..c17aa1c6 100644 --- a/Dummies/CountConstraints.cs +++ b/JustDummies/CountConstraints.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// The count-constraint facade shared by every collection generator, defined once over diff --git a/Dummies/CountSpec.cs b/JustDummies/CountSpec.cs similarity index 99% rename from Dummies/CountSpec.cs rename to JustDummies/CountSpec.cs index 2ec354fa..ad40ea29 100644 --- a/Dummies/CountSpec.cs +++ b/JustDummies/CountSpec.cs @@ -4,7 +4,7 @@ #endregion -namespace Dummies; +namespace JustDummies; /// /// The immutable count specification shared by every collection generator (, diff --git a/Dummies/DecimalIntervalSpec.cs b/JustDummies/DecimalIntervalSpec.cs similarity index 99% rename from Dummies/DecimalIntervalSpec.cs rename to JustDummies/DecimalIntervalSpec.cs index fb04b7d8..d2e1da79 100644 --- a/Dummies/DecimalIntervalSpec.cs +++ b/JustDummies/DecimalIntervalSpec.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// The immutable engine behind — the same algebra as diff --git a/Dummies/IAny.cs b/JustDummies/IAny.cs similarity index 99% rename from Dummies/IAny.cs rename to JustDummies/IAny.cs index b857d60c..0b3f28af 100644 --- a/Dummies/IAny.cs +++ b/JustDummies/IAny.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// A recipe for an arbitrary value of type that satisfies the constraints declared on diff --git a/Dummies/ICardinalityHint.cs b/JustDummies/ICardinalityHint.cs similarity index 99% rename from Dummies/ICardinalityHint.cs rename to JustDummies/ICardinalityHint.cs index 36e85a90..f8620ae1 100644 --- a/Dummies/ICardinalityHint.cs +++ b/JustDummies/ICardinalityHint.cs @@ -1,4 +1,4 @@ -namespace Dummies; +namespace JustDummies; /// /// Implemented by the library's own generators that draw from a small, countable domain, so a distinct diff --git a/Dummies/Dummies.csproj b/JustDummies/JustDummies.csproj similarity index 92% rename from Dummies/Dummies.csproj rename to JustDummies/JustDummies.csproj index 0c371cd8..b78ca127 100644 --- a/Dummies/Dummies.csproj +++ b/JustDummies/JustDummies.csproj @@ -20,7 +20,7 @@ 0.1.0-dev - Dummies + JustDummies Sylvain AURAT Reefact @@ -35,7 +35,7 @@ false - https://github.com/Reefact/first-class-errors + https://justdummies.io https://github.com/Reefact/first-class-errors.git git @@ -57,9 +57,9 @@ - + an architecture test in JustDummies.UnitTests. --> + plus a step in justdummies.yml when a Framework consumer justifies that cost. --> @@ -44,22 +44,22 @@ from a downlevel TFM is the deliberate point of this project, not an oversight. --> false false - - 1.0.0-dummiescheck.dev + 1.0.0-justdummiescheck.dev - + stable JustDummies on nuget.org can never be substituted for the artifact under test. --> + diff --git a/tools/dummies-check/Program.cs b/tools/justdummies-check/Program.cs similarity index 97% rename from tools/dummies-check/Program.cs rename to tools/justdummies-check/Program.cs index ce5b5064..c14b6749 100644 --- a/tools/dummies-check/Program.cs +++ b/tools/justdummies-check/Program.cs @@ -9,13 +9,13 @@ using System.Runtime.Versioning; using System.Text.RegularExpressions; -using Dummies; +using JustDummies; #endregion -namespace DummiesCheck; +namespace JustDummiesCheck; -// Packaged-asset compatibility consumer. Run once per consumer TFM by .github/workflows/dummies.yml. +// Packaged-asset compatibility consumer. Run once per consumer TFM by .github/workflows/justdummies.yml. // The consumer's compile target dictates which packaged asset NuGet restored, and therefore what this // program must observe: // net8.0 consumer -> lib/net8.0 asset -> modern generators present @@ -34,12 +34,12 @@ internal static class Program { private const string ExpectedFamily = ".NETStandard"; #endif - // The net8.0-only generators, guarded by #if NET8_0_OR_GREATER in Dummies (Any.cs). Present on the net8.0 + // The net8.0-only generators, guarded by #if NET8_0_OR_GREATER in JustDummies (Any.cs). Present on the net8.0 // asset, absent on the netstandard2.0 asset — the exact conditional surface the acceptance criteria name. private static readonly string[] ModernEntryPoints = { "DateOnly", "TimeOnly", "Int128", "UInt128", "Half" }; // Fixed seed for the cross-TFM golden sequence. SeedBatch draws from the COMMON surface under this seed, and - // Main prints the result as the SEEDBATCH banner. dummies.yml compares that banner byte-for-byte between the + // Main prints the result as the SEEDBATCH banner. justdummies.yml compares that banner byte-for-byte between the // net8.0 and netstandard2.0 legs: new Random(seed) keeps the legacy algorithm on modern .NET, so the two // packaged assets SHOULD agree seed-for-seed — but nothing else asserts it, and Random reserves the right to // differ across framework versions. This turns that silent assumption into a checked contract (issue #215). @@ -56,7 +56,7 @@ private static int Main() { Console.WriteLine($"RUNTIME={RuntimeInformation.FrameworkDescription}"); // The seeded common-surface batch for THIS asset, on one grep-safe line (every draw renders to printable - // ASCII). dummies.yml diffs it against the other leg's banner to prove cross-asset seed equality. Emitted + // ASCII). justdummies.yml diffs it against the other leg's banner to prove cross-asset seed equality. Emitted // here with the other identifying banners, before the checks run; a leg that no-oped would omit it. Console.WriteLine($"SEEDBATCH={SeedBatch(Any.WithSeed(CrossTfmSeed))}"); diff --git a/tools/dummies-check/nuget.config b/tools/justdummies-check/nuget.config similarity index 67% rename from tools/dummies-check/nuget.config rename to tools/justdummies-check/nuget.config index 3f8f0818..98880567 100644 --- a/tools/dummies-check/nuget.config +++ b/tools/justdummies-check/nuget.config @@ -3,26 +3,26 @@ - - + diff --git a/tools/packaging/pack.sh b/tools/packaging/pack.sh index a9513369..87834101 100755 --- a/tools/packaging/pack.sh +++ b/tools/packaging/pack.sh @@ -17,7 +17,7 @@ # and released independently: # lib -> FirstClassErrors + FirstClassErrors.Testing + FirstClassErrors.RequestBinder (lockstep) # cli -> FirstClassErrors.Cli (the `fce` .NET tool) -# dum -> Dummies (the standalone arbitrary-test-value library) +# dum -> JustDummies (the standalone arbitrary-test-value library) set -eu @@ -47,12 +47,12 @@ case "$scope" in projects='FirstClassErrors.Cli/FirstClassErrors.Cli.csproj' ;; dum) - # Dummies, the standalone arbitrary-test-value library, and its xUnit v3 companion. Deliberately + # JustDummies, the standalone arbitrary-test-value library, and its xUnit v3 companion. Deliberately # independent of everything else in this repository (ADR-0011): neither references a FirstClassErrors # project, so they release on their own train and their packages must declare no FirstClassErrors - # dependency -- asserted below. Dummies.Xunit rides this train because it versions with the library it - # adapts (ADR-0036); if Dummies ever moves to its own repository, that pairing is worth revisiting. - projects='Dummies/Dummies.csproj Dummies.Xunit/Dummies.Xunit.csproj' + # dependency -- asserted below. JustDummies.Xunit rides this train because it versions with the library it + # adapts (ADR-0036); if JustDummies ever moves to its own repository, that pairing is worth revisiting. + projects='JustDummies/JustDummies.csproj JustDummies.Xunit/JustDummies.Xunit.csproj' ;; *) echo "error: unknown scope '$scope' (expected 'lib', 'cli' or 'dum')" >&2 @@ -98,17 +98,17 @@ EOF echo "ok: every lib-train package pins its FirstClassErrors dependency to the co-published $version" fi -# Standalone guard for the dum train. Dummies' whole identity is that it depends on nothing (ADR-0011): +# Standalone guard for the dum train. JustDummies' whole identity is that it depends on nothing (ADR-0011): # an architecture test asserts it at build time, and this asserts it on the shipped artifact itself -- a # FirstClassErrors dependency sneaking into the nuspec must fail the pack, not surface on nuget.org. if [ "$scope" = "dum" ]; then - for package in artifacts/Dummies.*.nupkg; do + for package in artifacts/JustDummies.*.nupkg; do # Fail CLOSED, like the cli guard: an unmatched glob or an unreadable nuspec must not pass as # "standalone" -- read the nuspec first (unzip fails loudly on both), then reject any # FirstClassErrors dependency found in it. nuspec="$(unzip -p "$package" '*.nuspec')" || { echo "error: cannot read the nuspec from $package" >&2; exit 1; } if printf '%s\n' "$nuspec" | grep -q ']*id="FirstClassErrors'; then - echo "error: $package declares a FirstClassErrors dependency; Dummies is standalone (ADR-0011)" >&2 + echo "error: $package declares a FirstClassErrors dependency; JustDummies is standalone (ADR-0011)" >&2 exit 1 fi echo "ok: $package is standalone (no FirstClassErrors dependency)" diff --git a/tools/packaging/release-notes.sh b/tools/packaging/release-notes.sh index 1b6b0b57..4898848e 100755 --- a/tools/packaging/release-notes.sh +++ b/tools/packaging/release-notes.sh @@ -5,7 +5,7 @@ # The partition is by Conventional Commit scope (enforced by tools/commit-lint): # lib -> scopes core, analyzers, testing, binder (FirstClassErrors + .Testing + .RequestBinder) # cli -> scopes cli, gendoc (the fce tool: CLI + GenDoc + worker) -# dum -> scope dummies (the standalone Dummies library) +# dum -> scope justdummies (the standalone JustDummies library) # Commits with no scope (bare `ci:`, `build:`, `chore:` ...) are infrastructure and are left out # of both trains: these notes describe what changed for the consumer of the package, nothing else. # diff --git a/tools/trains.sh b/tools/trains.sh index 144e033a..36b17e2c 100644 --- a/tools/trains.sh +++ b/tools/trains.sh @@ -24,7 +24,7 @@ trains_rows() { cat <<'ROWS' lib|lib-v|core,analyzers,testing,binder|CHANGELOG.md|FirstClassErrors, FirstClassErrors.Testing and FirstClassErrors.RequestBinder cli|cli-v|cli,gendoc|FirstClassErrors.Cli/CHANGELOG.md|FirstClassErrors.Cli (the fce .NET tool) -dum|dum-v|dummies|Dummies/CHANGELOG.md|Dummies +dum|dum-v|justdummies|JustDummies/CHANGELOG.md|JustDummies ROWS }