From 5e2099776142b467a99be362e9bebf7168dd3b36 Mon Sep 17 00:00:00 2001 From: Kenny Pflug Date: Fri, 10 Jul 2026 07:08:36 +0200 Subject: [PATCH 1/6] chore: update AGENTS.md for writing AI plans Signed-off-by: Kenny Pflug --- Code/ai-plans/AGENTS.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Code/ai-plans/AGENTS.md b/Code/ai-plans/AGENTS.md index f35c99f1..45fa038e 100644 --- a/Code/ai-plans/AGENTS.md +++ b/Code/ai-plans/AGENTS.md @@ -1,13 +1,15 @@ # AGENTS.md for AI Plans -In this folder, we only keep Markdown files for AI plans. Each file has a four-digit prefix which corresponds to the GitHub issue number. +Apart from this file, this folder contains only Markdown plans. Plan file names start +with the four-digit GitHub issue number they belong to. ## How to Write Plans -1. Each plan consists of exactly the three following elements: a rationale, acceptance criteria, and technical details. -2. A rationale describes the overarching goal of the plan. Keep this concise, only elaborate when special circumstances require it. Use free text in this section of the plan. -3. Acceptance criteria is a list of requirements that must be met for the plan to be considered complete. Use check marks `- [ ]` for these in Markdown. -4. Technical details describes the changes on a technical level. Which classes and members should be extended, which design patterns should be used? How do we ensure performance? Avoid going into too much detail (do not write the finished implementation), but focus on the high-level design and how parts of the codebase are affected. It should give the implementer a clear picture of what needs to be done. -5. Regarding automated tests: it is usually enough to note that 'automated tests need to be written' as one check mark in the acceptance criteria list. If there are special requirements for the tests, these can be elaborated in the technical details section. But normally, you can simply leave these technical details out if the automated tests can be written in a straightforward way. -6. When a plan should involve micro benchmarks, these need to be included in the acceptance criteria list and optionally in the technical details section. As with automated tests, if the BenchmarkDotNet benchmarks can be written in a straightforward way, leave out the technical details. -7. In general, keep the plan concise and to the point. Do not include general information that the implementer already knows. +1. Every plan contains exactly these three sections, in this order: `## Rationale`, `## Acceptance Criteria`, and `## Technical Details`. +2. The Rationale briefly describes the problem and the overarching goal of addressing it. Keep it to one or two short paragraphs unless additional context is necessary to understand the change. +3. Acceptance Criteria contains observable and verifiable outcomes using Markdown task-list items (`- [ ]`). Describe what must be true when the work is complete, not the individual implementation steps. +4. Technical Details records the important implementation decisions, constraints, affected components, and non-obvious interactions. Include enough information for an implementer to understand the intended design without prescribing the complete implementation. Assume the implementer is a senior software engineer. +5. Use code examples in Technical Details when they define an important contract more clearly and concisely than prose, such as API signatures, central interfaces, or DTO shapes. Keep them minimal, omit implementation bodies and routine context, and identify them as exact or illustrative when this is not obvious. Avoid step-by-step instructions, exhaustive file lists, and background knowledge expected of a senior software engineer. +6. When behavior changes, include an acceptance criterion requiring appropriate automated test coverage. Describe specific test cases in Technical Details only when they are not obvious from the acceptance criteria. +7. Include microbenchmarks only for changes where performance is a relevant risk or requirement. Add them to Acceptance Criteria and describe benchmark scenarios in Technical Details only when those scenarios are not self-evident. +8. Keep plans concise. Prefer decisions, constraints, and outcomes to explanations of routine implementation work. From 5510ec56bba974a5c4bc14a0e7a63c5f3ba509f2 Mon Sep 17 00:00:00 2001 From: Kenny Pflug Date: Fri, 10 Jul 2026 07:09:33 +0200 Subject: [PATCH 2/6] chore: move ai-plans to the repo root Signed-off-by: Kenny Pflug --- .../0061-whitelist-for-source-transformation.md | 0 .../0114-must-not-be-default-or-empty-for-immutable-array.md | 0 .../0116-must-not-contain-for-immutable-array.md | 0 .../0117-must-have-length-for-immutable-array.md | 0 .../0118-must-have-length-in-for-immutable-array.md | 0 .../0119-must-contain-for-immutable-array.md | 0 .../0120-must-have-maximum-length-for-immutable-array.md | 0 .../0121-must-have-minimum-length-for-immutable-array.md | 0 .../0135-source-code-transformation-for-dotnet-8.md | 0 {Code/ai-plans => ai-plans}/AGENTS.md | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename {Code/ai-plans => ai-plans}/0061-whitelist-for-source-transformation.md (100%) rename {Code/ai-plans => ai-plans}/0114-must-not-be-default-or-empty-for-immutable-array.md (100%) rename {Code/ai-plans => ai-plans}/0116-must-not-contain-for-immutable-array.md (100%) rename {Code/ai-plans => ai-plans}/0117-must-have-length-for-immutable-array.md (100%) rename {Code/ai-plans => ai-plans}/0118-must-have-length-in-for-immutable-array.md (100%) rename {Code/ai-plans => ai-plans}/0119-must-contain-for-immutable-array.md (100%) rename {Code/ai-plans => ai-plans}/0120-must-have-maximum-length-for-immutable-array.md (100%) rename {Code/ai-plans => ai-plans}/0121-must-have-minimum-length-for-immutable-array.md (100%) rename {Code/ai-plans => ai-plans}/0135-source-code-transformation-for-dotnet-8.md (100%) rename {Code/ai-plans => ai-plans}/AGENTS.md (100%) diff --git a/Code/ai-plans/0061-whitelist-for-source-transformation.md b/ai-plans/0061-whitelist-for-source-transformation.md similarity index 100% rename from Code/ai-plans/0061-whitelist-for-source-transformation.md rename to ai-plans/0061-whitelist-for-source-transformation.md diff --git a/Code/ai-plans/0114-must-not-be-default-or-empty-for-immutable-array.md b/ai-plans/0114-must-not-be-default-or-empty-for-immutable-array.md similarity index 100% rename from Code/ai-plans/0114-must-not-be-default-or-empty-for-immutable-array.md rename to ai-plans/0114-must-not-be-default-or-empty-for-immutable-array.md diff --git a/Code/ai-plans/0116-must-not-contain-for-immutable-array.md b/ai-plans/0116-must-not-contain-for-immutable-array.md similarity index 100% rename from Code/ai-plans/0116-must-not-contain-for-immutable-array.md rename to ai-plans/0116-must-not-contain-for-immutable-array.md diff --git a/Code/ai-plans/0117-must-have-length-for-immutable-array.md b/ai-plans/0117-must-have-length-for-immutable-array.md similarity index 100% rename from Code/ai-plans/0117-must-have-length-for-immutable-array.md rename to ai-plans/0117-must-have-length-for-immutable-array.md diff --git a/Code/ai-plans/0118-must-have-length-in-for-immutable-array.md b/ai-plans/0118-must-have-length-in-for-immutable-array.md similarity index 100% rename from Code/ai-plans/0118-must-have-length-in-for-immutable-array.md rename to ai-plans/0118-must-have-length-in-for-immutable-array.md diff --git a/Code/ai-plans/0119-must-contain-for-immutable-array.md b/ai-plans/0119-must-contain-for-immutable-array.md similarity index 100% rename from Code/ai-plans/0119-must-contain-for-immutable-array.md rename to ai-plans/0119-must-contain-for-immutable-array.md diff --git a/Code/ai-plans/0120-must-have-maximum-length-for-immutable-array.md b/ai-plans/0120-must-have-maximum-length-for-immutable-array.md similarity index 100% rename from Code/ai-plans/0120-must-have-maximum-length-for-immutable-array.md rename to ai-plans/0120-must-have-maximum-length-for-immutable-array.md diff --git a/Code/ai-plans/0121-must-have-minimum-length-for-immutable-array.md b/ai-plans/0121-must-have-minimum-length-for-immutable-array.md similarity index 100% rename from Code/ai-plans/0121-must-have-minimum-length-for-immutable-array.md rename to ai-plans/0121-must-have-minimum-length-for-immutable-array.md diff --git a/Code/ai-plans/0135-source-code-transformation-for-dotnet-8.md b/ai-plans/0135-source-code-transformation-for-dotnet-8.md similarity index 100% rename from Code/ai-plans/0135-source-code-transformation-for-dotnet-8.md rename to ai-plans/0135-source-code-transformation-for-dotnet-8.md diff --git a/Code/ai-plans/AGENTS.md b/ai-plans/AGENTS.md similarity index 100% rename from Code/ai-plans/AGENTS.md rename to ai-plans/AGENTS.md From cb2176eef5319f90f6bb8410295ed11b104ca448 Mon Sep 17 00:00:00 2001 From: Kenny Pflug Date: Fri, 10 Jul 2026 07:15:14 +0200 Subject: [PATCH 3/6] chore: fix line break in ai-plans/AGENTS.md Signed-off-by: Kenny Pflug --- ai-plans/AGENTS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ai-plans/AGENTS.md b/ai-plans/AGENTS.md index 45fa038e..02a6f758 100644 --- a/ai-plans/AGENTS.md +++ b/ai-plans/AGENTS.md @@ -1,7 +1,6 @@ # AGENTS.md for AI Plans -Apart from this file, this folder contains only Markdown plans. Plan file names start -with the four-digit GitHub issue number they belong to. +Apart from this file, this folder contains only Markdown plans. Plan file names start with the four-digit GitHub issue number they belong to. ## How to Write Plans From 90d45323a5c61f710e041ba0dd0472bb7b1ea62e Mon Sep 17 00:00:00 2001 From: Kenny Pflug Date: Fri, 10 Jul 2026 07:18:36 +0200 Subject: [PATCH 4/6] chore: add version to ai-plans/AGENTS.md Signed-off-by: Kenny Pflug --- ai-plans/AGENTS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ai-plans/AGENTS.md b/ai-plans/AGENTS.md index 02a6f758..9b6c040d 100644 --- a/ai-plans/AGENTS.md +++ b/ai-plans/AGENTS.md @@ -1,5 +1,7 @@ # AGENTS.md for AI Plans +*Version 1.1* + Apart from this file, this folder contains only Markdown plans. Plan file names start with the four-digit GitHub issue number they belong to. ## How to Write Plans From 80a6188f6259584f39a7e59d83490eeb139f07ee Mon Sep 17 00:00:00 2001 From: Kenny Pflug Date: Fri, 10 Jul 2026 07:27:51 +0200 Subject: [PATCH 5/6] docs: add AI plan 137 for repository restructuring Signed-off-by: Kenny Pflug --- ai-plans/0137-repo-restructuring.md | 75 +++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 ai-plans/0137-repo-restructuring.md diff --git a/ai-plans/0137-repo-restructuring.md b/ai-plans/0137-repo-restructuring.md new file mode 100644 index 00000000..97d8a233 --- /dev/null +++ b/ai-plans/0137-repo-restructuring.md @@ -0,0 +1,75 @@ +# Repository Restructuring + +## Rationale + +The repository still groups solutions, projects, build configuration, development tools, and AI instructions under a generic `Code` directory. Restructure it around conventional repository-level entry points and purpose-specific source, test, benchmark, and tooling directories so that the project is easier to navigate, build, and maintain. + +## Acceptance Criteria + +- [x] The `ai-plans` directory and its instructions reside at the repository root. +- [ ] `AGENTS.md` and `CLAUDE.md` reside at the repository root and apply to the intended repository scope. +- [ ] The repository contains no `Code` directory; product source, tests, benchmarks, and internal tools use the agreed purpose-specific directories. +- [ ] A single root-level `Light.GuardClauses.sln` contains all projects and presents the repository structure through corresponding solution folders. +- [ ] The shared `Light.GuardClauses.sln.DotSettings` file resides beside the solution, contains the intended team settings, and contains no machine-specific paths or references to the removed solution. +- [ ] Shared MSBuild and package configuration is discovered from the repository root, with project-type defaults inherited through hierarchical `Directory.Build.props` files rather than duplicated across project files. +- [ ] Project references and repository-path discovery work with the new layout without relying on a directory named `Code` or on prebuilt project outputs. +- [ ] The root-level `.idea` metadata integrates `ai-plans` into Rider's Solution Explorer without individual solution-file entries and contains no references to the old solution name or location. +- [ ] Operational documentation, ignore rules, and automation contain no stale actionable paths to the old layout; completed historical plans remain unchanged. +- [ ] Continuous integration restores, builds, and tests the complete solution, including all three test projects. +- [ ] The release workflow packs and publishes `Light.GuardClauses` from its new location without changing the package identity, metadata, symbols, or packaged documentation and icon. +- [ ] The source-code transformation can locate the product sources and validation project, generate the root-level single-file distribution, and validate its supported target frameworks from the new layout. +- [ ] The complete solution builds successfully in Release configuration and all automated tests pass on the supported .NET SDK. + +## Technical Details + +The following target layout is exact at the directory and project level; files within project directories retain their existing organization: + +```text +/ +|-- Light.GuardClauses.sln +|-- Light.GuardClauses.sln.DotSettings +|-- Directory.Build.props +|-- Directory.Packages.props +|-- global.json +|-- AGENTS.md +|-- CLAUDE.md +|-- .idea/ +|-- ai-plans/ +|-- benchmarks/ +| `-- Light.GuardClauses.Performance/ +|-- src/ +| |-- Directory.Build.props +| `-- Light.GuardClauses/ +|-- tests/ +| |-- Directory.Build.props +| |-- Light.GuardClauses.Tests/ +| |-- Light.GuardClauses.InternalRoslynAnalyzers.Tests/ +| `-- Light.GuardClauses.SourceCodeTransformation.Tests/ +`-- tools/ + |-- analyzers/ + | `-- Light.GuardClauses.InternalRoslynAnalyzers/ + `-- source-export/ + |-- Light.GuardClauses.SourceCodeTransformation/ + `-- Light.GuardClauses.SourceValidation/ +``` + +Retain the conventional `Light.GuardClauses.sln` name and classic solution format while replacing its limited project set with all eight projects from `Light.GuardClauses.AllProjects.sln`. Use solution folders matching the physical top-level project directories and include relevant root configuration and documentation as solution items. Retain only the `Debug|Any CPU` and `Release|Any CPU` solution configurations; the existing `x86` and `x64` configurations only map back to `Any CPU`. Remove the AllProjects solution afterward. Base the surviving DotSettings file on the settings used by the complete solution, reconcile intentional differences between the two existing files, and remove the stale injected layer containing an absolute Windows path. + +Move `Directory.Packages.props` to the root so central package management covers every project. Replace `Version.props` and duplicated stable properties with a root `Directory.Build.props` containing the version, C# language version, author, company, copyright, and a non-packable default. Add child props for `src` and `tests`; each child must explicitly import the nearest parent props because MSBuild automatically imports only one `Directory.Build.props`. Product packaging, SourceLink settings, package content, and `IsPackable=true` belong under `src`, while test defaults and common xUnit, test SDK, runner, and assertion references belong under `tests`. Keep target frameworks, nullable settings, warning policies, and exceptional build behavior in the individual project files. + +Replace the product project's conditional reference to the analyzer DLL under `bin` with the following exact analyzer reference shape, adjusted only if the final relative project path requires it: + +```xml + +``` + +This makes the build graph explicit and removes the need for a separate analyzer build step or solution-only project dependency. Preserve the existing `RS1038` behavior during this restructuring; resolving the analyzer assembly's dependency on Roslyn Workspaces is separate work. + +Update source-export defaults, validation-project lookup, and test environment discovery to locate the repository through a stable root marker and the exact new paths. They must work when invoked from the repository root and from project output directories. Preserve the generated file at `Light.GuardClauses.SingleFile.cs` in the repository root and the current validation behavior for `netstandard2.0` and `net8.0`. + +Update workflow path filters and all restore, build, test, pack, signing-key, artifact, and cleanup paths. CI should test the complete solution rather than only `Light.GuardClauses.Tests`. Add a root `global.json` that pins an appropriate .NET 8 SDK feature band consistent with CI; adopting `.slnx` or raising the SDK baseline is outside this restructuring. + +Move the shared `.idea` project metadata to the repository root, rename its project directory for the canonical `Light.GuardClauses` solution, and retain the index-layout attachment that exposes `ai-plans` in Rider's Solution Explorer. Continue ignoring user-specific Rider workspace state and configure `.gitignore` so that only the intentionally shared metadata is tracked. Update the remaining ignore entries for benchmark artifacts, local source-export settings, and obsolete generated-source paths. Update actionable paths in the README and other operational documentation without rewriting completed plans that describe the historical layout. From ebac857c8b5312b48d59427c56676a069c14826e Mon Sep 17 00:00:00 2001 From: Kenny Pflug Date: Fri, 10 Jul 2026 08:24:39 +0200 Subject: [PATCH 6/6] chore: restructure repository Signed-off-by: Kenny Pflug --- .github/workflows/build-and-test.yml | 30 +- .github/workflows/release-on-nuget.yml | 10 +- .gitignore | 14 +- .../.idea/indexLayout.xml | 0 Code/AGENTS.md => AGENTS.md | 0 Code/CLAUDE.md => CLAUDE.md | 0 Code/Light.GuardClauses.AllProjects.sln | 159 --------- ...t.GuardClauses.AllProjects.sln.DotSettings | 333 ------------------ ...auses.InternalRoslynAnalyzers.Tests.csproj | 21 -- ...uses.SourceCodeTransformation.Tests.csproj | 20 -- .../TestEnvironment.cs | 49 --- Code/Light.GuardClauses.sln | 64 ---- Code/Version.props | 5 - Directory.Build.props | 10 + ...Packages.props => Directory.Packages.props | 6 +- Light.GuardClauses.sln | 104 ++++++ ...ings => Light.GuardClauses.sln.DotSettings | 25 +- README.md | 2 +- ai-plans/0137-repo-restructuring.md | 24 +- .../CollectionAssertions/CountBenchmark.cs | 0 .../IsNullOrEmptyBenchmark.cs | 0 .../CollectionAssertions/IsOneOfBenchmark.cs | 0 .../MustBeOneOfBenchmark.cs | 0 .../MustContainBenchmark.cs | 0 .../MustHaveCountBenchmark.cs | 0 .../MustHaveMaximumCountBenchmark.cs | 0 .../MustHaveMinimumCountBenchmark.cs | 0 .../MustNotBeNullOrEmptyBenchmark.cs | 0 .../MustNotBeOneOfBenchmark.cs | 0 .../MustNotContainBenchmark.cs | 0 .../SpanMustHaveLengthBenchmark.cs | 0 .../InvalidArgumentBenchmark.cs | 96 ++--- .../InvalidOperationBenchmark.cs | 0 .../CommonAssertions/InvalidStateBenchmark.cs | 0 .../IsApproximatelyBenchmark.cs | 0 .../CommonAssertions/IsEmptyGuidBenchmark.cs | 0 .../CommonAssertions/IsSameAsBenchmark.cs | 0 .../IsValidEnumValueBenchmark.cs | 0 .../CommonAssertions/MustBeBenchmark.cs | 0 .../CommonAssertions/MustBeOfTypeBenchmark.cs | 0 .../MustBeValidEnumValueBenchmark.cs | 0 .../MustHaveValueBenchmark.cs | 0 .../CommonAssertions/MustNotBeBenchmark.cs | 0 .../MustNotBeDefaultBenchmark.cs | 0 .../MustNotBeEmptyGuidBenchmark.cs | 0 .../MustNotBeNullBenchmark.cs | 0 .../MustNotBeNullReferenceBenchmark.cs | 0 .../MustNotBeSameAsBenchmark.cs | 0 .../ComparableAssertions/IsInBenchmark.cs | 0 .../ComparableAssertions/IsNotInBenchmark.cs | 0 .../MustBeApproximatelyBenchmark.cs | 0 .../MustBeGreaterThanBenchmark.cs | 0 .../MustBeGreaterThanOrEqualToBenchmark.cs | 0 .../ComparableAssertions/MustBeInBenchmark.cs | 0 .../MustBeLessThanBenchmark.cs | 0 .../MustBeLessThanOrEqualToBenchmark.cs | 0 .../MustNotBeApproximatelyBenchmark.cs | 0 .../MustNotBeGreaterThanBenchmark.cs | 0 .../MustNotBeGreaterThanOrEqualToBenchmark.cs | 0 .../MustNotBeInBenchmark.cs | 0 .../MustNotBeLessThanBenchmark.cs | 0 .../MustNotBeLessThanOrEqualToBenchmark.cs | 0 .../MustBeLocalBenchmark.cs | 0 .../MustBeUnspecifiedBenchmark.cs | 0 .../DateTimeAssertions/MustBeUtcBenchmark.cs | 0 .../FrameworkExtensions/ContainsBenchmark.cs | 0 .../HashFunctionBenchmark.cs | 0 .../Light.GuardClauses.Performance.csproj | 5 +- .../Light.GuardClauses.Performance/Program.cs | 0 .../SampleEntity.cs | 0 .../StringAssertions/EqualsBenchmark.cs | 0 .../StringAssertions/IsDigitBenchmark.cs | 0 .../IsEmailAddressBenchmark.cs | 0 .../StringAssertions/IsLetterBenchmark.cs | 0 .../IsLetterOrDigitBenchmark.cs | 0 .../IsNullOrEmptyBenchmark.cs | 0 .../IsNullOrWhiteSpaceBenchmark.cs | 0 .../IsSubstringOfBenchmark.cs | 0 .../StringAssertions/IsWhiteSpaceBenchmark.cs | 0 .../StringAssertions/MustBeBenchmark.cs | 0 .../MustBeNewLineBenchmark.cs | 0 .../MustBeShorterThanBenchmark.cs | 0 .../MustBeSubstringOfBenchmark.cs | 0 .../StringAssertions/MustContainBenchmark.cs | 0 .../StringAssertions/MustMatchBenchmark.cs | 0 .../StringAssertions/MustNotBeBenchmark.cs | 0 .../MustNotBeNullOrEmptyBenchmark.cs | 0 .../MustNotBeNullOrWhiteSpaceBenchmark.cs | 0 .../MustNotBeSubstringOfBenchmark.cs | 0 .../MustNotContainBenchmark.cs | 0 .../MustBeAbsoluteUriBenchmark.cs | 0 .../MustBeHttpOrHttpsUrlBenchmark.cs | 0 .../MustBeRelativeUriBenchmark.cs | 0 .../MustHaveOneSchemeOfBenchmark.cs | 0 .../UriAssertions/MustHaveSchemeBenchmark.cs | 0 global.json | 6 + .../Directory.Build.props | 27 +- .../CallerArgumentExpressionAttribute.cs | 0 .../Light.GuardClauses/Check.DerivesFrom.cs | 0 .../Light.GuardClauses/Check.Equals.cs | 0 .../Light.GuardClauses/Check.Implements.cs | 0 .../Light.GuardClauses/Check.InheritsFrom.cs | 0 .../Check.InvalidArgument.cs | 0 .../Check.InvalidOperation.cs | 0 .../Light.GuardClauses/Check.InvalidState.cs | 0 .../Check.IsApproximately.cs | 0 .../Light.GuardClauses/Check.IsDigit.cs | 0 .../Check.IsEmailAddress.cs | 0 .../Light.GuardClauses/Check.IsEmpty.cs | 0 .../Check.IsEmptyOrWhiteSpace.cs | 0 .../Check.IsEquivalentTypeTo.cs | 0 .../Check.IsFileExtension.cs | 0 .../Check.IsGreaterThanOrApproximately.cs | 0 .../Light.GuardClauses/Check.IsIn.cs | 0 .../Check.IsLessThanOrApproximately.cs | 0 .../Light.GuardClauses/Check.IsLetter.cs | 0 .../Check.IsLetterOrDigit.cs | 0 .../Light.GuardClauses/Check.IsNewLine.cs | 0 .../Light.GuardClauses/Check.IsNotIn.cs | 0 .../Light.GuardClauses/Check.IsNullOrEmpty.cs | 0 .../Check.IsNullOrWhiteSpace.cs | 0 .../Light.GuardClauses/Check.IsOneOf.cs | 0 .../Check.IsOpenConstructedGenericType.cs | 0 .../Check.IsOrDerivesFrom.cs | 0 .../Check.IsOrImplements.cs | 0 .../Check.IsOrInheritsFrom.cs | 0 .../Light.GuardClauses/Check.IsSameAs.cs | 0 .../Light.GuardClauses/Check.IsSubstringOf.cs | 0 .../Light.GuardClauses/Check.IsTrimmed.cs | 0 .../Check.IsTrimmedAtEnd.cs | 0 .../Check.IsTrimmedAtStart.cs | 0 .../Check.IsValidEnumValue.cs | 0 .../Light.GuardClauses/Check.IsWhiteSpace.cs | 0 .../Light.GuardClauses/Check.MustBe.cs | 0 .../Check.MustBeAbsoluteUri.cs | 0 .../Check.MustBeApproximately.cs | 0 .../Check.MustBeEmailAddress.cs | 0 .../Check.MustBeFileExtension.cs | 0 .../Check.MustBeGreaterThan.cs | 0 .../Check.MustBeGreaterThanOrApproximately.cs | 0 .../Check.MustBeGreaterThanOrEqualTo.cs | 0 .../Check.MustBeHttpOrHttpsUrl.cs | 0 .../Light.GuardClauses/Check.MustBeHttpUrl.cs | 0 .../Check.MustBeHttpsUrl.cs | 0 .../Light.GuardClauses/Check.MustBeIn.cs | 0 .../Check.MustBeLessThan.cs | 0 .../Check.MustBeLessThanOrApproximately.cs | 0 .../Check.MustBeLessThanOrEqualTo.cs | 0 .../Light.GuardClauses/Check.MustBeLocal.cs | 0 .../Check.MustBeLongerThan.cs | 0 .../Check.MustBeLongerThanOrEqualTo.cs | 0 .../Light.GuardClauses/Check.MustBeNewLine.cs | 0 .../Light.GuardClauses/Check.MustBeOfType.cs | 0 .../Light.GuardClauses/Check.MustBeOneOf.cs | 0 .../Check.MustBeRelativeUri.cs | 0 .../Check.MustBeShorterThan.cs | 0 .../Check.MustBeShorterThanOrEqualTo.cs | 0 .../Check.MustBeSubstringOf.cs | 0 .../Light.GuardClauses/Check.MustBeTrimmed.cs | 0 .../Check.MustBeTrimmedAtEnd.cs | 0 .../Check.MustBeTrimmedAtStart.cs | 0 .../Check.MustBeUnspecified.cs | 0 .../Light.GuardClauses/Check.MustBeUtc.cs | 0 .../Check.MustBeValidEnumValue.cs | 0 .../Light.GuardClauses/Check.MustContain.cs | 0 .../Light.GuardClauses/Check.MustEndWith.cs | 0 .../Light.GuardClauses/Check.MustHaveCount.cs | 0 .../Check.MustHaveLength.cs | 0 .../Check.MustHaveLengthIn.cs | 0 .../Check.MustHaveMaximumCount.cs | 0 .../Check.MustHaveMaximumLength.cs | 0 .../Check.MustHaveMinimumCount.cs | 0 .../Check.MustHaveMinimumLength.cs | 0 .../Check.MustHaveOneSchemeOf.cs | 0 .../Check.MustHaveScheme.cs | 0 .../Light.GuardClauses/Check.MustHaveValue.cs | 0 .../Light.GuardClauses/Check.MustMatch.cs | 0 .../Light.GuardClauses/Check.MustNotBe.cs | 0 .../Check.MustNotBeApproximately.cs | 0 .../Check.MustNotBeDefault.cs | 0 .../Check.MustNotBeDefaultOrEmpty.cs | 0 .../Check.MustNotBeEmpty.cs | 0 .../Check.MustNotBeGreaterThan.cs | 0 .../Check.MustNotBeGreaterThanOrEqualTo.cs | 0 .../Light.GuardClauses/Check.MustNotBeIn.cs | 0 .../Check.MustNotBeLessThan.cs | 0 .../Check.MustNotBeLessThanOrEqualTo.cs | 0 .../Light.GuardClauses/Check.MustNotBeNull.cs | 0 .../Check.MustNotBeNullOrEmpty.cs | 0 .../Check.MustNotBeNullOrWhiteSpace.cs | 0 .../Check.MustNotBeNullReference.cs | 0 .../Check.MustNotBeOneOf.cs | 0 .../Check.MustNotBeSameAs.cs | 0 .../Check.MustNotBeSubstringOf.cs | 0 .../Check.MustNotContain.cs | 0 .../Check.MustNotEndWith.cs | 0 .../Check.MustNotStartWith.cs | 0 .../Light.GuardClauses/Check.MustStartWith.cs | 0 {Code => src}/Light.GuardClauses/Check.cs | 0 .../CreateSignedNuGetPackage.cmd | 0 {Code => src}/Light.GuardClauses/EnumInfo.cs | 0 .../EquivalentTypeComparer.cs | 0 .../ExceptionFactory/SpanDelegates.cs | 0 .../ExceptionFactory/Throw.Argument.cs | 0 .../ExceptionFactory/Throw.ArgumentDefault.cs | 0 .../ExceptionFactory/Throw.ArgumentNull.cs | 0 .../ExceptionFactory/Throw.CustomException.cs | 0 .../ExceptionFactory/Throw.DateTime.cs | 0 .../ExceptionFactory/Throw.EmptyCollection.cs | 0 .../ExceptionFactory/Throw.EmptyGuid.cs | 0 .../ExceptionFactory/Throw.EmptyString.cs | 0 .../Throw.EnumValueNotDefined.cs | 0 .../ExceptionFactory/Throw.ExistingItem.cs | 0 .../Throw.ImmutableArrayLengthNotInRange.cs | 0 .../Throw.InvalidCollectionCount.cs | 0 .../Throw.InvalidEmailAddress.cs | 0 .../Throw.InvalidImmutableArrayLength.cs | 0 .../Throw.InvalidMaximumCollectionCount.cs | 0 ...hrow.InvalidMaximumImmutableArrayLength.cs | 0 .../Throw.InvalidMinimumCollectionCount.cs | 0 ...hrow.InvalidMinimumImmutableArrayLength.cs | 0 .../Throw.InvalidOperation.cs | 0 .../ExceptionFactory/Throw.InvalidState.cs | 0 .../ExceptionFactory/Throw.InvalidTypeCast.cs | 0 .../ExceptionFactory/Throw.MissingItem.cs | 0 .../Throw.MustBeApproximately.cs | 0 .../Throw.MustBeGreaterThan.cs | 0 .../Throw.MustBeGreaterThanOrApproximately.cs | 0 .../Throw.MustBeGreaterThanOrEqualTo.cs | 0 .../ExceptionFactory/Throw.MustBeLessThan.cs | 0 .../Throw.MustBeLessThanOrApproximately.cs | 0 .../Throw.MustBeLessThanOrEqualTo.cs | 0 .../Throw.MustNotBeApproximately.cs | 0 .../Throw.MustNotBeGreaterThan.cs | 0 .../Throw.MustNotBeGreaterThanOrEqualTo.cs | 0 .../Throw.MustNotBeLessThan.cs | 0 .../Throw.MustNotBeLessThanOrEqualTo.cs | 0 .../Throw.NotFileExtension.cs | 0 .../ExceptionFactory/Throw.NotNewLine.cs | 0 .../ExceptionFactory/Throw.NotTrimmed.cs | 0 .../ExceptionFactory/Throw.NotTrimmedAtEnd.cs | 0 .../Throw.NotTrimmedAtStart.cs | 0 .../Throw.NullableHasNoValue.cs | 0 .../ExceptionFactory/Throw.Range.cs | 0 .../Throw.SameObjectReference.cs | 0 .../ExceptionFactory/Throw.Span.cs | 0 .../ExceptionFactory/Throw.StringContains.cs | 0 .../Throw.StringDoesNotEndWith.cs | 0 .../Throw.StringDoesNotMatch.cs | 0 .../Throw.StringDoesNotStartWith.cs | 0 .../ExceptionFactory/Throw.StringEndsWith.cs | 0 .../ExceptionFactory/Throw.StringLength.cs | 0 .../Throw.StringStartsWith.cs | 0 .../ExceptionFactory/Throw.Substring.cs | 0 .../ExceptionFactory/Throw.Uri.cs | 0 .../ExceptionFactory/Throw.ValueIsOneOf.cs | 0 .../ExceptionFactory/Throw.ValueNotOneOf.cs | 0 .../ExceptionFactory/Throw.ValuesEqual.cs | 0 .../Throw.WhiteSpaceString.cs | 0 .../ExceptionFactory/Throw.cs | 0 .../Exceptions/AbsoluteUriException.cs | 0 .../Exceptions/ArgumentDefaultException.cs | 0 .../Exceptions/CollectionException.cs | 0 .../Exceptions/EmptyCollectionException.cs | 0 .../Exceptions/EmptyGuidException.cs | 0 .../Exceptions/EmptyStringException.cs | 0 .../EnumValueNotDefinedException.cs | 0 .../Exceptions/ExistingItemException.cs | 0 .../InvalidCollectionCountException.cs | 0 .../InvalidConfigurationException.cs | 0 .../Exceptions/InvalidDateTimeException.cs | 0 .../InvalidEmailAddressException.cs | 0 .../Exceptions/InvalidStateException.cs | 0 .../Exceptions/InvalidUriSchemeException.cs | 0 .../Exceptions/MissingItemException.cs | 0 .../Exceptions/NullableHasNoValueException.cs | 0 .../Exceptions/RelativeUriException.cs | 0 .../SameObjectReferenceException.cs | 0 .../Exceptions/StringDoesNotMatchException.cs | 0 .../Exceptions/StringException.cs | 0 .../Exceptions/StringLengthException.cs | 0 .../Exceptions/SubstringException.cs | 0 .../Exceptions/TypeCastException.cs | 0 .../Exceptions/UriException.cs | 0 .../Exceptions/ValueIsNotOneOfException.cs | 0 .../Exceptions/ValueIsOneOfException.cs | 0 .../Exceptions/ValuesEqualException.cs | 0 .../Exceptions/ValuesNotEqualException.cs | 0 .../Exceptions/WhiteSpaceStringException.cs | 0 .../EnumerableExtensions.cs | 0 .../ExpressionExtensions.cs | 0 .../FrameworkExtensions/MultiplyAddHash.cs | 0 .../MultiplyAddHashBuilder.cs | 0 .../StringExtensions.Contains.cs | 0 .../FrameworkExtensions/StringExtensions.cs | 0 .../FrameworkExtensions/TextExtensions.cs | 0 .../Light.GuardClauses.csproj | 22 ++ ...dinalIgnoreCaseIgnoreWhiteSpaceComparer.cs | 0 .../OrdinalIgnoreWhiteSpaceComparer.cs | 0 .../Public.Light.GuardClauses.snk | Bin {Code => src}/Light.GuardClauses/Range.cs | 0 .../ReSharperAnnotations.cs | 0 .../Light.GuardClauses/RegularExpressions.cs | 0 .../StringComparisonType.cs | 0 {Code => src}/Light.GuardClauses/Types.cs | 0 .../ValidatedNotNullAttribute.cs | 0 .../Light.GuardClauses/light-logo.png | Bin tests/Directory.Build.props | 14 + .../DiagnosticIdTests.cs | 0 ...auses.InternalRoslynAnalyzers.Tests.csproj | 17 + .../ParameterNameAndMessageCommentsTests.cs | 0 .../RoslynExtensions.cs | 0 .../Throw.cs | 0 .../GeneratedFileBuildValidatorTests.cs | 29 +- ...uses.SourceCodeTransformation.Tests.csproj | 15 + .../ParseCSharpFilesWithRoslynTests.cs | 0 .../SourceFileMergerFrameworkTests.cs | 0 .../SourceFileMergerWhitelistTests.cs | 0 .../TestEnvironment.cs | 55 +++ .../IsNullOrEmptyTests.cs | 0 .../CollectionAssertions/MustBeOneOfTests.cs | 0 .../CollectionAssertions/MustContainTests.cs | 0 .../MustHaveCountTests.cs | 0 .../MustHaveLengthInTests.cs | 0 .../MustHaveLengthTests.cs | 0 .../MustHaveMaximumCountTests.cs | 0 .../MustHaveMaximumLengthTests.cs | 0 .../MustHaveMinimumCountTests.cs | 0 .../MustHaveMinimumLengthTests.cs | 0 .../MustNotBeDefaultOrEmptyTests.cs | 0 .../MustNotBeNullOrEmptyTests.cs | 0 .../MustNotBeOneOfTests.cs | 0 .../MustNotContainTests.cs | 0 .../ReadOnlySpanMustBeLongerThanTests.cs | 0 ...OnlySpanMustBeShorterThanOrEqualToTests.cs | 0 .../ReadOnlySpanMustBeShorterThanTests.cs | 0 .../ReadOnlySpanMustHaveLengthTests.cs | 0 ...lySpanMustNotBeLongerThanOrEqualToTests.cs | 0 .../SpanMustBeLongerThanOrEqualToTests.cs | 0 .../SpanMustBeLongerThanTests.cs | 0 .../SpanMustBeShorterThanOrEqualToTests.cs | 0 .../SpanMustBeShorterThanTests.cs | 0 .../SpanMustHaveLengthTests.cs | 0 .../CommonAssertions/InvalidArgumentTests.cs | 116 +++--- .../CommonAssertions/InvalidOperationTests.cs | 0 .../CommonAssertions/InvalidStateTests.cs | 0 .../CommonAssertions/IsApproximatelyTests.cs | 0 .../IsGreaterThanOrApproximatelyTests.cs | 0 .../IsLessThanOrApproximatelyTests.cs | 0 .../CommonAssertions/IsSameAsTests.cs | 0 .../CommonAssertions/IsValidEnumValueTests.cs | 0 .../CommonAssertions/MustBeOfTypeTests.cs | 0 .../CommonAssertions/MustBeTests.cs | 0 .../MustBeValidEnumValueTests.cs | 0 .../CommonAssertions/MustHaveValueTests.cs | 0 .../CommonAssertions/MustNotBeDefaultTests.cs | 0 .../MustNotBeEmptyGuidTests.cs | 0 .../MustNotBeNullReferenceTests.cs | 0 .../CommonAssertions/MustNotBeNullTests.cs | 0 .../CommonAssertions/MustNotBeSameAsTests.cs | 0 .../CommonAssertions/MustNotBeTests.cs | 0 .../ComparableAssertions/IsInTests.cs | 0 .../ComparableAssertions/IsNotInTests.cs | 0 .../MustBeApproximatelyTests.cs | 0 .../MustBeGreaterThanOrApproximatelyTests.cs | 0 .../MustBeGreaterThanOrEqualToTests.cs | 0 .../MustBeGreaterThanTests.cs | 0 .../ComparableAssertions/MustBeInTests.cs | 0 .../MustBeLessThanOrApproximatelyTests.cs | 0 .../MustBeLessThanOrEqualToTests.cs | 0 .../MustBeLessThanTests.cs | 0 .../MustNotBeApproximatelyTests.cs | 0 .../MustNotBeGreaterThanOrEqualToTests.cs | 0 .../MustNotBeGreaterThanTests.cs | 0 .../ComparableAssertions/MustNotBeInTests.cs | 0 .../MustNotBeLessThanOrEqualToTests.cs | 0 .../MustNotBeLessThanTests.cs | 0 .../ComparableAssertions/RangeTests.cs | 0 .../DateTimeAssertions/MustBeLocalTests.cs | 0 .../MustBeUnspecifiedTests.cs | 0 .../DateTimeAssertions/MustBeUtcTests.cs | 0 .../DefaultVariablesData.cs | 0 .../EqualityComparerStub.cs | 0 .../ExecuteReadOnlySpanAssertion.cs | 0 .../FrameworkExtensions/AsArrayTests.cs | 0 .../FrameworkExtensions/AsListTests.cs | 0 .../AsReadOnlyListTests.cs | 0 .../FrameworkExtensions/ExtractFieldTests.cs | 0 .../ExtractPropertyTests.cs | 0 .../FrameworkExtensions/ForEachTests.cs | 0 .../MultiplyAddHashTests.cs | 0 .../ToStringRepresentationTests.cs | 0 .../Issues/Issue66.cs | 0 .../Issues/Issue72NotNullAttributeTests.cs | 0 .../Light.GuardClauses.Tests.csproj | 10 +- .../StringAssertions/EqualsTests.cs | 0 .../StringAssertions/InvalidEmailAddresses.cs | 0 .../StringAssertions/IsEmailAddressTests.cs | 0 .../IsEmptyOrWhiteSpaceTests.cs | 0 .../StringAssertions/IsFileExtensionTests.cs | 0 .../StringAssertions/IsNewLineTests.cs | 0 .../StringAssertions/IsNullOrEmptyTests.cs | 0 .../MustBeEmailAddressTests.cs | 0 .../MustBeFileExtensionTests.cs | 0 .../MustBeLongerThanOrEqualToTests.cs | 0 .../StringAssertions/MustBeLongerThanTests.cs | 0 .../StringAssertions/MustBeNewLineTests.cs | 0 .../MustBeShorterThanOrEqualToTests.cs | 0 .../MustBeShorterThanTests.cs | 0 .../MustBeSubstringOfTests.cs | 0 .../StringAssertions/MustBeTests.cs | 0 .../MustBeTrimmedAtEndTests.cs | 0 .../MustBeTrimmedAtStartTests.cs | 0 .../StringAssertions/MustBeTrimmedTests.cs | 0 .../StringAssertions/MustContainTests.cs | 0 .../StringAssertions/MustEndWithTests.cs | 0 .../StringAssertions/MustHaveLengthInTests.cs | 0 .../StringAssertions/MustHaveLengthTests.cs | 0 .../StringAssertions/MustMatchTests.cs | 0 .../MustNotBeNullOrEmptyTests.cs | 0 .../MustNotBeNullOrWhiteSpaceTests.cs | 0 .../MustNotBeSubstringOfTests.cs | 0 .../StringAssertions/MustNotBeTests.cs | 0 .../StringAssertions/MustNotContainTests.cs | 0 .../StringAssertions/MustNotEndWithTests.cs | 0 .../StringAssertions/MustNotStartWithTests.cs | 0 .../StringAssertions/MustStartWithTests.cs | 0 ...IgnoreCaseIgnoreWhiteSpaceComparerTests.cs | 0 .../OrdinalIgnoreWhiteSpaceComparerTests.cs | 0 .../StringAssertions/ValidEmailAddresses.cs | 0 .../Light.GuardClauses.Tests/Test.cs | 0 .../TypeAssertions/DerivesFromTests.cs | 0 .../EquivalentTypeCompererTests.cs | 0 .../TypeAssertions/GenericTypeKinds.cs | 0 .../TypeAssertions/ImplementsTests.cs | 0 .../TypeAssertions/InheritsFromTests.cs | 0 .../TypeAssertions/IsEquivalentToTypeTests.cs | 0 .../IsOpenConstructedGenericTypeTests.cs | 0 .../TypeAssertions/IsOrDerivesFromTests.cs | 0 .../TypeAssertions/IsOrImplementsTests.cs | 0 .../TypeAssertions/IsOrInheritsFromTests.cs | 0 .../UriAssertions/MustBeAbsoluteUriTests.cs | 0 .../UriAssertions/MustBeRelativeUriTests.cs | 0 .../UriAssertions/MustHaveOneSchemeOfTests.cs | 0 .../UriAssertions/MustHaveSchemeTests.cs | 0 .../Constants.cs | 0 .../Descriptors.cs | 0 .../Extensions.cs | 0 ...uardClauses.InternalRoslynAnalyzers.csproj | 3 +- .../MessageXmlCommentFix.cs | 0 .../ParameterNameXmlCommentFix.cs | 0 .../XmlCommentAnalyzer.cs | 0 .../ArrayTextSink.cs | 0 .../AssertionWhitelist.cs | 0 .../CleanupStep.cs | 0 .../Extensions.cs | 0 .../GeneratedFileBuildValidator.cs | 55 +-- ...ardClauses.SourceCodeTransformation.csproj | 4 +- .../Program.cs | 0 .../RepositoryLayout.cs | 40 +++ .../SourceFileMergeOptions.cs | 18 +- .../SourceFileMerger.cs | 0 .../SourceReachabilityAnalyzer.cs | 0 .../SourceTargetFramework.cs | 0 .../settings.json | 0 ...Light.GuardClauses.SourceValidation.csproj | 4 - 466 files changed, 510 insertions(+), 902 deletions(-) rename {Code/.idea/.idea.Light.GuardClauses.AllProjects => .idea/.idea.Light.GuardClauses}/.idea/indexLayout.xml (100%) rename Code/AGENTS.md => AGENTS.md (100%) rename Code/CLAUDE.md => CLAUDE.md (100%) delete mode 100644 Code/Light.GuardClauses.AllProjects.sln delete mode 100644 Code/Light.GuardClauses.AllProjects.sln.DotSettings delete mode 100644 Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj delete mode 100644 Code/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj delete mode 100644 Code/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs delete mode 100644 Code/Light.GuardClauses.sln delete mode 100644 Code/Version.props create mode 100644 Directory.Build.props rename Code/Directory.Packages.props => Directory.Packages.props (79%) create mode 100644 Light.GuardClauses.sln rename Code/Light.GuardClauses.sln.DotSettings => Light.GuardClauses.sln.DotSettings (94%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/CountBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/IsNullOrEmptyBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/IsOneOfBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustBeOneOfBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustContainBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustHaveCountBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMaximumCountBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMinimumCountBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeNullOrEmptyBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeOneOfBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/MustNotContainBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CollectionAssertions/SpanMustHaveLengthBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/InvalidArgumentBenchmark.cs (96%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/InvalidOperationBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/InvalidStateBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/IsApproximatelyBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/IsEmptyGuidBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/IsSameAsBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/IsValidEnumValueBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustBeBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustBeOfTypeBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustBeValidEnumValueBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustHaveValueBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustNotBeBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustNotBeDefaultBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustNotBeEmptyGuidBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullReferenceBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/CommonAssertions/MustNotBeSameAsBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/IsInBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/IsNotInBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustBeApproximatelyBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanOrEqualToBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustBeInBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanOrEqualToBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeApproximatelyBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanOrEqualToBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeInBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanOrEqualToBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/DateTimeAssertions/MustBeLocalBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUnspecifiedBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUtcBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/FrameworkExtensions/ContainsBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/FrameworkExtensions/HashFunctionBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/Light.GuardClauses.Performance.csproj (65%) rename {Code => benchmarks}/Light.GuardClauses.Performance/Program.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/SampleEntity.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/EqualsBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsDigitBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsEmailAddressBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsLetterBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsLetterOrDigitBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsNullOrEmptyBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsNullOrWhiteSpaceBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsSubstringOfBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/IsWhiteSpaceBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustBeBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustBeNewLineBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustBeShorterThanBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustBeSubstringOfBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustContainBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustMatchBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustNotBeBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrEmptyBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrWhiteSpaceBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustNotBeSubstringOfBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/StringAssertions/MustNotContainBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/UriAssertions/MustBeAbsoluteUriBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/UriAssertions/MustBeHttpOrHttpsUrlBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/UriAssertions/MustBeRelativeUriBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/UriAssertions/MustHaveOneSchemeOfBenchmark.cs (100%) rename {Code => benchmarks}/Light.GuardClauses.Performance/UriAssertions/MustHaveSchemeBenchmark.cs (100%) create mode 100644 global.json rename Code/Light.GuardClauses/Light.GuardClauses.csproj => src/Directory.Build.props (53%) rename {Code => src}/Light.GuardClauses/CallerArgumentExpressionAttribute.cs (100%) rename {Code => src}/Light.GuardClauses/Check.DerivesFrom.cs (100%) rename {Code => src}/Light.GuardClauses/Check.Equals.cs (100%) rename {Code => src}/Light.GuardClauses/Check.Implements.cs (100%) rename {Code => src}/Light.GuardClauses/Check.InheritsFrom.cs (100%) rename {Code => src}/Light.GuardClauses/Check.InvalidArgument.cs (100%) rename {Code => src}/Light.GuardClauses/Check.InvalidOperation.cs (100%) rename {Code => src}/Light.GuardClauses/Check.InvalidState.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsDigit.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsEmailAddress.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsEmpty.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsEmptyOrWhiteSpace.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsEquivalentTypeTo.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsFileExtension.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsGreaterThanOrApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsIn.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsLessThanOrApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsLetter.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsLetterOrDigit.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsNewLine.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsNotIn.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsNullOrEmpty.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsNullOrWhiteSpace.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsOneOf.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsOpenConstructedGenericType.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsOrDerivesFrom.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsOrImplements.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsOrInheritsFrom.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsSameAs.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsSubstringOf.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsTrimmed.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsTrimmedAtEnd.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsTrimmedAtStart.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsValidEnumValue.cs (100%) rename {Code => src}/Light.GuardClauses/Check.IsWhiteSpace.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBe.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeAbsoluteUri.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeEmailAddress.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeFileExtension.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeGreaterThan.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeGreaterThanOrApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeGreaterThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeHttpOrHttpsUrl.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeHttpUrl.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeHttpsUrl.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeIn.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeLessThan.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeLessThanOrApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeLessThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeLocal.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeLongerThan.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeLongerThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeNewLine.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeOfType.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeOneOf.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeRelativeUri.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeShorterThan.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeShorterThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeSubstringOf.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeTrimmed.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeTrimmedAtEnd.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeTrimmedAtStart.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeUnspecified.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeUtc.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustBeValidEnumValue.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustContain.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustEndWith.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveCount.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveLength.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveLengthIn.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveMaximumCount.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveMaximumLength.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveMinimumCount.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveMinimumLength.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveOneSchemeOf.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveScheme.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustHaveValue.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustMatch.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBe.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeDefault.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeDefaultOrEmpty.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeEmpty.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeGreaterThan.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeGreaterThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeIn.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeLessThan.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeLessThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeNull.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeNullOrEmpty.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeNullOrWhiteSpace.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeNullReference.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeOneOf.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeSameAs.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotBeSubstringOf.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotContain.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotEndWith.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustNotStartWith.cs (100%) rename {Code => src}/Light.GuardClauses/Check.MustStartWith.cs (100%) rename {Code => src}/Light.GuardClauses/Check.cs (100%) rename {Code => src}/Light.GuardClauses/CreateSignedNuGetPackage.cmd (100%) rename {Code => src}/Light.GuardClauses/EnumInfo.cs (100%) rename {Code => src}/Light.GuardClauses/EquivalentTypeComparer.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/SpanDelegates.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.Argument.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.ArgumentDefault.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.ArgumentNull.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.CustomException.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.DateTime.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.EmptyCollection.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.EmptyGuid.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.EmptyString.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.EnumValueNotDefined.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.ExistingItem.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.ImmutableArrayLengthNotInRange.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidCollectionCount.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidEmailAddress.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidImmutableArrayLength.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumCollectionCount.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumImmutableArrayLength.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumCollectionCount.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumImmutableArrayLength.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidOperation.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidState.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.InvalidTypeCast.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MissingItem.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustBeApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThan.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThan.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeApproximately.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThan.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThan.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThanOrEqualTo.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.NotFileExtension.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.NotNewLine.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmed.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtEnd.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtStart.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.NullableHasNoValue.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.Range.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.SameObjectReference.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.Span.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.StringContains.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotEndWith.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotMatch.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotStartWith.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.StringEndsWith.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.StringLength.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.StringStartsWith.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.Substring.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.Uri.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.ValueIsOneOf.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.ValueNotOneOf.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.ValuesEqual.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.WhiteSpaceString.cs (100%) rename {Code => src}/Light.GuardClauses/ExceptionFactory/Throw.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/AbsoluteUriException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/ArgumentDefaultException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/CollectionException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/EmptyCollectionException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/EmptyGuidException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/EmptyStringException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/EnumValueNotDefinedException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/ExistingItemException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/InvalidCollectionCountException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/InvalidConfigurationException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/InvalidDateTimeException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/InvalidEmailAddressException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/InvalidStateException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/InvalidUriSchemeException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/MissingItemException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/NullableHasNoValueException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/RelativeUriException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/SameObjectReferenceException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/StringDoesNotMatchException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/StringException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/StringLengthException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/SubstringException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/TypeCastException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/UriException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/ValueIsNotOneOfException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/ValueIsOneOfException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/ValuesEqualException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/ValuesNotEqualException.cs (100%) rename {Code => src}/Light.GuardClauses/Exceptions/WhiteSpaceStringException.cs (100%) rename {Code => src}/Light.GuardClauses/FrameworkExtensions/EnumerableExtensions.cs (100%) rename {Code => src}/Light.GuardClauses/FrameworkExtensions/ExpressionExtensions.cs (100%) rename {Code => src}/Light.GuardClauses/FrameworkExtensions/MultiplyAddHash.cs (100%) rename {Code => src}/Light.GuardClauses/FrameworkExtensions/MultiplyAddHashBuilder.cs (100%) rename {Code => src}/Light.GuardClauses/FrameworkExtensions/StringExtensions.Contains.cs (100%) rename {Code => src}/Light.GuardClauses/FrameworkExtensions/StringExtensions.cs (100%) rename {Code => src}/Light.GuardClauses/FrameworkExtensions/TextExtensions.cs (100%) create mode 100644 src/Light.GuardClauses/Light.GuardClauses.csproj rename {Code => src}/Light.GuardClauses/OrdinalIgnoreCaseIgnoreWhiteSpaceComparer.cs (100%) rename {Code => src}/Light.GuardClauses/OrdinalIgnoreWhiteSpaceComparer.cs (100%) rename {Code => src}/Light.GuardClauses/Public.Light.GuardClauses.snk (100%) rename {Code => src}/Light.GuardClauses/Range.cs (100%) rename {Code => src}/Light.GuardClauses/ReSharperAnnotations.cs (100%) rename {Code => src}/Light.GuardClauses/RegularExpressions.cs (100%) rename {Code => src}/Light.GuardClauses/StringComparisonType.cs (100%) rename {Code => src}/Light.GuardClauses/Types.cs (100%) rename {Code => src}/Light.GuardClauses/ValidatedNotNullAttribute.cs (100%) rename {Code => src}/Light.GuardClauses/light-logo.png (100%) create mode 100644 tests/Directory.Build.props rename {Code => tests}/Light.GuardClauses.InternalRoslynAnalyzers.Tests/DiagnosticIdTests.cs (100%) create mode 100644 tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj rename {Code => tests}/Light.GuardClauses.InternalRoslynAnalyzers.Tests/ParameterNameAndMessageCommentsTests.cs (100%) rename {Code => tests}/Light.GuardClauses.InternalRoslynAnalyzers.Tests/RoslynExtensions.cs (100%) rename {Code => tests}/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Throw.cs (100%) rename {Code => tests}/Light.GuardClauses.SourceCodeTransformation.Tests/GeneratedFileBuildValidatorTests.cs (75%) create mode 100644 tests/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj rename {Code => tests}/Light.GuardClauses.SourceCodeTransformation.Tests/ParseCSharpFilesWithRoslynTests.cs (100%) rename {Code => tests}/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerFrameworkTests.cs (100%) rename {Code => tests}/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerWhitelistTests.cs (100%) create mode 100644 tests/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/IsNullOrEmptyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustBeOneOfTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustContainTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustHaveCountTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthInTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumCountTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumLengthTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumCountTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumLengthTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeDefaultOrEmptyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeNullOrEmptyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeOneOfTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/MustNotContainTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeLongerThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustHaveLengthTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustNotBeLongerThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CollectionAssertions/SpanMustHaveLengthTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/InvalidArgumentTests.cs (96%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/InvalidOperationTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/InvalidStateTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/IsApproximatelyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/IsGreaterThanOrApproximatelyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/IsLessThanOrApproximatelyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/IsSameAsTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/IsValidEnumValueTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustBeOfTypeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustBeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustBeValidEnumValueTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustHaveValueTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustNotBeDefaultTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustNotBeEmptyGuidTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullReferenceTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustNotBeSameAsTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/CommonAssertions/MustNotBeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/IsInTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/IsNotInTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeApproximatelyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrApproximatelyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeInTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrApproximatelyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeApproximatelyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeInTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ComparableAssertions/RangeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/DateTimeAssertions/MustBeLocalTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUnspecifiedTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUtcTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/DefaultVariablesData.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/EqualityComparerStub.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/ExecuteReadOnlySpanAssertion.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/AsArrayTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/AsListTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/AsReadOnlyListTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/ExtractFieldTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/ExtractPropertyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/ForEachTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/MultiplyAddHashTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/FrameworkExtensions/ToStringRepresentationTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/Issues/Issue66.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/Issues/Issue72NotNullAttributeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj (51%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/EqualsTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/InvalidEmailAddresses.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/IsEmailAddressTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/IsEmptyOrWhiteSpaceTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/IsFileExtensionTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/IsNewLineTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/IsNullOrEmptyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeEmailAddressTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeFileExtensionTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeNewLineTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanOrEqualToTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeSubstringOfTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtEndTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtStartTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustContainTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustEndWithTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthInTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustMatchTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrEmptyTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrWhiteSpaceTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustNotBeSubstringOfTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustNotBeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustNotContainTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustNotEndWithTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustNotStartWithTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/MustStartWithTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreCaseIgnoreWhiteSpaceComparerTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreWhiteSpaceComparerTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/StringAssertions/ValidEmailAddresses.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/Test.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/DerivesFromTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/EquivalentTypeCompererTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/GenericTypeKinds.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/ImplementsTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/InheritsFromTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/IsEquivalentToTypeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/IsOpenConstructedGenericTypeTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/IsOrDerivesFromTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/IsOrImplementsTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/TypeAssertions/IsOrInheritsFromTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/UriAssertions/MustBeAbsoluteUriTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/UriAssertions/MustBeRelativeUriTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/UriAssertions/MustHaveOneSchemeOfTests.cs (100%) rename {Code => tests}/Light.GuardClauses.Tests/UriAssertions/MustHaveSchemeTests.cs (100%) rename {Code => tools/analyzers}/Light.GuardClauses.InternalRoslynAnalyzers/Constants.cs (100%) rename {Code => tools/analyzers}/Light.GuardClauses.InternalRoslynAnalyzers/Descriptors.cs (100%) rename {Code => tools/analyzers}/Light.GuardClauses.InternalRoslynAnalyzers/Extensions.cs (100%) rename {Code => tools/analyzers}/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj (76%) rename {Code => tools/analyzers}/Light.GuardClauses.InternalRoslynAnalyzers/MessageXmlCommentFix.cs (100%) rename {Code => tools/analyzers}/Light.GuardClauses.InternalRoslynAnalyzers/ParameterNameXmlCommentFix.cs (100%) rename {Code => tools/analyzers}/Light.GuardClauses.InternalRoslynAnalyzers/XmlCommentAnalyzer.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/ArrayTextSink.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/AssertionWhitelist.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/CleanupStep.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/Extensions.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/GeneratedFileBuildValidator.cs (69%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/Light.GuardClauses.SourceCodeTransformation.csproj (88%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/Program.cs (100%) create mode 100644 tools/source-export/Light.GuardClauses.SourceCodeTransformation/RepositoryLayout.cs rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/SourceFileMergeOptions.cs (76%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/SourceFileMerger.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/SourceReachabilityAnalyzer.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/SourceTargetFramework.cs (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceCodeTransformation/settings.json (100%) rename {Code => tools/source-export}/Light.GuardClauses.SourceValidation/Light.GuardClauses.SourceValidation.csproj (75%) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index ba71d5bc..f88cbca8 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -3,10 +3,26 @@ name: Build and Test on: push: branches: [main, dev] - paths: ['Code/**', 'build-and-test.yml'] + paths: + - 'src/**' + - 'tests/**' + - 'benchmarks/**' + - 'tools/**' + - '*.sln' + - '*.props' + - 'global.json' + - '.github/workflows/build-and-test.yml' pull_request: branches: [main, dev] - paths: ['Code/**', 'build-and-test.yml'] + paths: + - 'src/**' + - 'tests/**' + - 'benchmarks/**' + - 'tools/**' + - '*.sln' + - '*.props' + - 'global.json' + - '.github/workflows/build-and-test.yml' jobs: build-and-test: @@ -16,14 +32,12 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Restore dependencies - run: dotnet restore ./Code/Light.GuardClauses.AllProjects.sln - - name: Build Analyzer - run: dotnet build ./Code/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj -c Release --no-restore + run: dotnet restore ./Light.GuardClauses.sln - name: Build - run: dotnet build ./Code/Light.GuardClauses.AllProjects.sln -c Release --no-restore + run: dotnet build ./Light.GuardClauses.sln -c Release --no-restore - name: Test - run: dotnet test ./Code/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj -c Release --no-build --verbosity normal + run: dotnet test ./Light.GuardClauses.sln -c Release --no-build --verbosity normal diff --git a/.github/workflows/release-on-nuget.yml b/.github/workflows/release-on-nuget.yml index 40b0b74c..7b2166d0 100644 --- a/.github/workflows/release-on-nuget.yml +++ b/.github/workflows/release-on-nuget.yml @@ -18,19 +18,19 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: ${{ github.event.inputs.dotnetVersion || '8.0.x' }} - name: Prepare SNK file env: LIGHT_GUARDCLAUSES_SNK: ${{ secrets.LIGHT_GUARDCLAUSES_SNK }} run: | - echo $LIGHT_GUARDCLAUSES_SNK | base64 --decode > ./Code/Light.GuardClauses/Light.GuardClauses.snk + echo $LIGHT_GUARDCLAUSES_SNK | base64 --decode > ./src/Light.GuardClauses/Light.GuardClauses.snk - name: Create NuGet packages - run: dotnet pack ./Code/Light.GuardClauses/Light.GuardClauses.csproj -c Release /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=Light.GuardClauses.snk /p:ContinuousIntegrationBuild=true + run: dotnet pack ./src/Light.GuardClauses/Light.GuardClauses.csproj -c Release /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=Light.GuardClauses.snk /p:ContinuousIntegrationBuild=true - name: Delete SNK file - run: rm ./Code/Light.GuardClauses/Light.GuardClauses.snk + run: rm ./src/Light.GuardClauses/Light.GuardClauses.snk - name: Push nupkg package env: NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} - run: dotnet nuget push "./Code/Light.GuardClauses/bin/Release/Light.GuardClauses.*.nupkg" --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json + run: dotnet nuget push "./src/Light.GuardClauses/bin/Release/Light.GuardClauses.*.nupkg" --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json diff --git a/.gitignore b/.gitignore index 0296e0c1..673dec4e 100644 --- a/.gitignore +++ b/.gitignore @@ -210,7 +210,7 @@ FakesAssemblies/ GeneratedArtifacts/ _Pvt_Extensions/ ModelManifest.xml -/Code/Light.GuardClauses.Performance/BenchmarkDotNet.Artifacts +/benchmarks/Light.GuardClauses.Performance/BenchmarkDotNet.Artifacts # VS Code files **/.vscode/ @@ -219,11 +219,15 @@ ModelManifest.xml **/TargetFrameworks.props # Local SourceCodeTransformation settings -/Code/Light.GuardClauses.SourceCodeTransformation/settings.local.json +/tools/source-export/Light.GuardClauses.SourceCodeTransformation/settings.local.json # JetBrains Rider *.sln.iml .idea/ - -# The source code redistributable of Light.GuardClauses -/Code/Light.GuardClauses.Source/Light.GuardClauses.cs +!/.idea/ +/.idea/* +!/.idea/.idea.Light.GuardClauses/ +/.idea/.idea.Light.GuardClauses/* +!/.idea/.idea.Light.GuardClauses/.idea/ +/.idea/.idea.Light.GuardClauses/.idea/* +!/.idea/.idea.Light.GuardClauses/.idea/indexLayout.xml diff --git a/Code/.idea/.idea.Light.GuardClauses.AllProjects/.idea/indexLayout.xml b/.idea/.idea.Light.GuardClauses/.idea/indexLayout.xml similarity index 100% rename from Code/.idea/.idea.Light.GuardClauses.AllProjects/.idea/indexLayout.xml rename to .idea/.idea.Light.GuardClauses/.idea/indexLayout.xml diff --git a/Code/AGENTS.md b/AGENTS.md similarity index 100% rename from Code/AGENTS.md rename to AGENTS.md diff --git a/Code/CLAUDE.md b/CLAUDE.md similarity index 100% rename from Code/CLAUDE.md rename to CLAUDE.md diff --git a/Code/Light.GuardClauses.AllProjects.sln b/Code/Light.GuardClauses.AllProjects.sln deleted file mode 100644 index 43889f58..00000000 --- a/Code/Light.GuardClauses.AllProjects.sln +++ /dev/null @@ -1,159 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29102.190 -MinimumVisualStudioVersion = 15.0.26124.0 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses", "Light.GuardClauses\Light.GuardClauses.csproj", "{E850D655-B8C8-49B5-8336-D4743504B064}" - ProjectSection(ProjectDependencies) = postProject - {DB4A3982-5312-4923-9C79-C39D18A5899C} = {DB4A3982-5312-4923-9C79-C39D18A5899C} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.Tests", "Light.GuardClauses.Tests\Light.GuardClauses.Tests.csproj", "{E804A19A-589D-49CC-A649-3092013E0133}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.Performance", "Light.GuardClauses.Performance\Light.GuardClauses.Performance.csproj", "{F4EE1A0F-60E0-4077-BFC4-82387535352A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.InternalRoslynAnalyzers", "Light.GuardClauses.InternalRoslynAnalyzers\Light.GuardClauses.InternalRoslynAnalyzers.csproj", "{DB4A3982-5312-4923-9C79-C39D18A5899C}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InternalAnalyzers", "InternalAnalyzers", "{A58A06DD-EEDC-4B1B-830F-0927739CFB9E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.InternalRoslynAnalyzers.Tests", "Light.GuardClauses.InternalRoslynAnalyzers.Tests\Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj", "{2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SourceCodePublishing", "SourceCodePublishing", "{0E0A86F9-C976-4FA1-8BF6-3A6A21D86BFD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.SourceCodeTransformation", "Light.GuardClauses.SourceCodeTransformation\Light.GuardClauses.SourceCodeTransformation.csproj", "{ECE42390-E3B5-49D4-9452-3B0CC04C633A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.SourceValidation", "Light.GuardClauses.SourceValidation\Light.GuardClauses.SourceValidation.csproj", "{B546B7B7-9CA5-456C-96CD-15C21E64B7DF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.SourceCodeTransformation.Tests", "Light.GuardClauses.SourceCodeTransformation.Tests\Light.GuardClauses.SourceCodeTransformation.Tests.csproj", "{A2067796-F167-47BE-B367-191152DCE230}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{8A42A536-E597-454B-BE18-4F62311FA158}" - ProjectSection(SolutionItems) = preProject - ..\CONTRIBUTING.md = ..\CONTRIBUTING.md - ..\README.md = ..\README.md - ..\LICENSE = ..\LICENSE - Directory.Packages.props = Directory.Packages.props - Version.props = Version.props - Light.GuardClauses.AllProjects.sln.DotSettings = Light.GuardClauses.AllProjects.sln.DotSettings - Light.GuardClauses.sln.DotSettings = Light.GuardClauses.sln.DotSettings - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x64.ActiveCfg = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x64.Build.0 = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x86.ActiveCfg = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x86.Build.0 = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|Any CPU.Build.0 = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x64.ActiveCfg = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x64.Build.0 = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x86.ActiveCfg = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x86.Build.0 = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x64.ActiveCfg = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x64.Build.0 = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x86.ActiveCfg = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x86.Build.0 = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|Any CPU.Build.0 = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x64.ActiveCfg = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x64.Build.0 = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x86.ActiveCfg = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x86.Build.0 = Release|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|x64.ActiveCfg = Debug|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|x64.Build.0 = Debug|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|x86.ActiveCfg = Debug|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|x86.Build.0 = Debug|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|Any CPU.Build.0 = Release|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|x64.ActiveCfg = Release|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|x64.Build.0 = Release|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|x86.ActiveCfg = Release|Any CPU - {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|x86.Build.0 = Release|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|x64.ActiveCfg = Debug|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|x64.Build.0 = Debug|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|x86.ActiveCfg = Debug|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|x86.Build.0 = Debug|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|Any CPU.Build.0 = Release|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|x64.ActiveCfg = Release|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|x64.Build.0 = Release|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|x86.ActiveCfg = Release|Any CPU - {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|x86.Build.0 = Release|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|x64.ActiveCfg = Debug|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|x64.Build.0 = Debug|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|x86.ActiveCfg = Debug|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|x86.Build.0 = Debug|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|Any CPU.Build.0 = Release|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|x64.ActiveCfg = Release|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|x64.Build.0 = Release|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|x86.ActiveCfg = Release|Any CPU - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|x86.Build.0 = Release|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|x64.ActiveCfg = Debug|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|x64.Build.0 = Debug|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|x86.ActiveCfg = Debug|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|x86.Build.0 = Debug|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|Any CPU.Build.0 = Release|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|x64.ActiveCfg = Release|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|x64.Build.0 = Release|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|x86.ActiveCfg = Release|Any CPU - {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|x86.Build.0 = Release|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|x64.ActiveCfg = Debug|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|x64.Build.0 = Debug|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|x86.ActiveCfg = Debug|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|x86.Build.0 = Debug|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|Any CPU.Build.0 = Release|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|x64.ActiveCfg = Release|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|x64.Build.0 = Release|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|x86.ActiveCfg = Release|Any CPU - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|x86.Build.0 = Release|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Debug|x64.ActiveCfg = Debug|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Debug|x64.Build.0 = Debug|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Debug|x86.ActiveCfg = Debug|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Debug|x86.Build.0 = Debug|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Release|Any CPU.Build.0 = Release|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Release|x64.ActiveCfg = Release|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Release|x64.Build.0 = Release|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Release|x86.ActiveCfg = Release|Any CPU - {A2067796-F167-47BE-B367-191152DCE230}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {DB4A3982-5312-4923-9C79-C39D18A5899C} = {A58A06DD-EEDC-4B1B-830F-0927739CFB9E} - {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0} = {A58A06DD-EEDC-4B1B-830F-0927739CFB9E} - {ECE42390-E3B5-49D4-9452-3B0CC04C633A} = {0E0A86F9-C976-4FA1-8BF6-3A6A21D86BFD} - {B546B7B7-9CA5-456C-96CD-15C21E64B7DF} = {0E0A86F9-C976-4FA1-8BF6-3A6A21D86BFD} - {A2067796-F167-47BE-B367-191152DCE230} = {0E0A86F9-C976-4FA1-8BF6-3A6A21D86BFD} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1566605B-18A9-423B-BB52-1406254EDE47} - EndGlobalSection -EndGlobal diff --git a/Code/Light.GuardClauses.AllProjects.sln.DotSettings b/Code/Light.GuardClauses.AllProjects.sln.DotSettings deleted file mode 100644 index ac545e29..00000000 --- a/Code/Light.GuardClauses.AllProjects.sln.DotSettings +++ /dev/null @@ -1,333 +0,0 @@ - - True - None - False - HINT - SUGGESTION - HINT - SUGGESTION - SUGGESTION - HINT - WARNING - WARNING - DO_NOT_SHOW - DO_NOT_SHOW - HINT - WARNING - DO_NOT_SHOW - HINT - WARNING - True - <?xml version="1.0" encoding="utf-16"?><Profile name="Kenny's Kleanup"><CSReorderTypeMembers>True</CSReorderTypeMembers><CSUpdateFileHeader>True</CSUpdateFileHeader><CSEnforceVarKeywordUsageSettings>True</CSEnforceVarKeywordUsageSettings><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CppReformatCode>True</CppReformatCode><XMLReformatCode>True</XMLReformatCode><CssReformatCode>True</CssReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="False" AddMissingParentheses="False" ArrangeBraces="False" ArrangeAttributes="False" ArrangeArgumentsStyle="False" ArrangeCodeBodyStyle="False" ArrangeVarStyle="False" /><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><RemoveCodeRedundancies>True</RemoveCodeRedundancies><HtmlReformatCode>True</HtmlReformatCode><JsInsertSemicolon>True</JsInsertSemicolon><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor></Profile> - Built-in: Full Cleanup - Built-in: Full Cleanup - False - Required - Required - Required - Required - ExpressionBody - ExpressionBody - ExpressionBody - True - False - - True - True - True - - True - - True - True - True - True - True - True - True - True - TOGETHER_SAME_LINE - True - True - True - NO_INDENT - True - True - True - True - False - True - True - False - True - 90 - 1 - 10000 - COMPACT - True - True - True - True - NEVER - - - - NEVER - False - ALWAYS - IF_OWNER_IS_SINGLE_LINE - NEVER - DO_NOT_CHANGE - True - True - True - False - True - True - CHOP_IF_LONG - CHOP_IF_LONG - False - True - True - True - True - True - True - False - CHOP_IF_LONG - CHOP_IF_LONG - CHOP_IF_LONG - - - CHOP_IF_LONG - CHOP_ALWAYS - CHOP_IF_LONG - RemoveIndent - RemoveIndent - False - ByFirstAttr - 150 - False - False - False - False - False - <?xml version="1.0" encoding="utf-16"?> -<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> - <TypePattern DisplayName="COM interfaces or structs"> - <TypePattern.Match> - <Or> - <And> - <Kind Is="Interface" /> - <Or> - <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" /> - <HasAttribute Name="System.Runtime.InteropServices.ComImport" /> - </Or> - </And> - <Kind Is="Struct" /> - </Or> - </TypePattern.Match> - </TypePattern> - <TypePattern DisplayName="xUnit Test Class"> - <TypePattern.Match> - <And> - <Kind Is="Class" /> - <HasMember> - <Or> - <HasAttribute Name="Xunit.FactAttribute" /> - <HasAttribute Name="Xunit.TheoryAttribute" /> - </Or> - </HasMember> - </And> - </TypePattern.Match> - </TypePattern> - <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All"> - <TypePattern.Match> - <And> - <Kind Is="Class" /> - <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" /> - </And> - </TypePattern.Match> - <Entry DisplayName="Setup/Teardown Methods"> - <Entry.Match> - <And> - <Kind Is="Method" /> - <Or> - <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" /> - <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" /> - <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" /> - <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" /> - </Or> - </And> - </Entry.Match> - </Entry> - <Entry DisplayName="All other members" /> - <Entry Priority="100" DisplayName="Test Methods"> - <Entry.Match> - <And> - <Kind Is="Method" /> - <HasAttribute Name="NUnit.Framework.TestAttribute" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - </TypePattern> - <TypePattern DisplayName="Default Pattern"> - <Entry Priority="100" DisplayName="Public Delegates"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Kind Is="Delegate" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry Priority="100" DisplayName="Public Enums"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Kind Is="Enum" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Static Fields and Constants"> - <Entry.Match> - <Or> - <Kind Is="Constant" /> - <And> - <Kind Is="Field" /> - <Static /> - </And> - </Or> - </Entry.Match> - <Entry.SortBy> - <Kind Order="Constant Field" /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Fields"> - <Entry.Match> - <And> - <Kind Is="Field" /> - <Not> - <Static /> - </Not> - </And> - </Entry.Match> - <Entry.SortBy> - <Readonly /> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Constructors"> - <Entry.Match> - <Kind Is="Constructor" /> - </Entry.Match> - <Entry.SortBy> - <Static /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Properties, Indexers"> - <Entry.Match> - <Or> - <Kind Is="Property" /> - <Kind Is="Indexer" /> - </Or> - </Entry.Match> - </Entry> - <Entry Priority="100" DisplayName="Interface Implementations"> - <Entry.Match> - <And> - <Kind Is="Member" /> - <ImplementsInterface /> - </And> - </Entry.Match> - <Entry.SortBy> - <ImplementsInterface Immediate="True" /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="All other members" /> - <Entry DisplayName="Nested Types"> - <Entry.Match> - <Kind Is="Type" /> - </Entry.Match> - </Entry> - </TypePattern> -</Patterns> - False - False - False - True - Replace - Replace - False - True - True - False - False - True - False - False - True - False - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - True - D:\Programming\Light.GuardClauses\Code\Light.GuardClauses.sln.DotSettings - - True - 1 - True - True - True - True - True - True - True - True - True - True - True - True - True \ No newline at end of file diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj b/Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj deleted file mode 100644 index 249d20e1..00000000 --- a/Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - net8.0 - - - - - - - - - - - - - PreserveNewest - - - - \ No newline at end of file diff --git a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj b/Code/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj deleted file mode 100644 index 3ba26b23..00000000 --- a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - net8.0 - false - - - - - - - - - - - - - - - diff --git a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs b/Code/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs deleted file mode 100644 index f80013be..00000000 --- a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.IO; - -namespace Light.GuardClauses.SourceCodeTransformation.Tests; - -internal static class TestEnvironment -{ - public static DirectoryInfo CodeDirectory { get; } = FindCodeDirectory(); - - public static DirectoryInfo SourceDirectory { get; } = - new (Path.Combine(CodeDirectory.FullName, "Light.GuardClauses")); - - public static DirectoryInfo FindCodeDirectory() - { - var currentDirectory = new DirectoryInfo("."); - do - { - if (currentDirectory.Name == "Code") - { - return currentDirectory; - } - - currentDirectory = currentDirectory.Parent; - } while (currentDirectory != null); - - throw new InvalidOperationException( - "This test project does not reside in a folder called \"Code\" (directly or indirectly)." - ); - } -} - -internal sealed class TemporaryDirectory : IDisposable -{ - public TemporaryDirectory() - { - DirectoryPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N")); - Directory.CreateDirectory(DirectoryPath); - } - - public string DirectoryPath { get; } - - public void Dispose() - { - if (Directory.Exists(DirectoryPath)) - { - Directory.Delete(DirectoryPath, true); - } - } -} diff --git a/Code/Light.GuardClauses.sln b/Code/Light.GuardClauses.sln deleted file mode 100644 index 4f5b3a34..00000000 --- a/Code/Light.GuardClauses.sln +++ /dev/null @@ -1,64 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2010 -MinimumVisualStudioVersion = 15.0.26124.0 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses", "Light.GuardClauses\Light.GuardClauses.csproj", "{E850D655-B8C8-49B5-8336-D4743504B064}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.Tests", "Light.GuardClauses.Tests\Light.GuardClauses.Tests.csproj", "{E804A19A-589D-49CC-A649-3092013E0133}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Light.GuardClauses.Performance", "Light.GuardClauses.Performance\Light.GuardClauses.Performance.csproj", "{1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x64.ActiveCfg = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x64.Build.0 = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x86.ActiveCfg = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|x86.Build.0 = Debug|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|Any CPU.Build.0 = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x64.ActiveCfg = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x64.Build.0 = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x86.ActiveCfg = Release|Any CPU - {E850D655-B8C8-49B5-8336-D4743504B064}.Release|x86.Build.0 = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x64.ActiveCfg = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x64.Build.0 = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x86.ActiveCfg = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Debug|x86.Build.0 = Debug|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|Any CPU.Build.0 = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x64.ActiveCfg = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x64.Build.0 = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x86.ActiveCfg = Release|Any CPU - {E804A19A-589D-49CC-A649-3092013E0133}.Release|x86.Build.0 = Release|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Debug|x64.ActiveCfg = Debug|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Debug|x64.Build.0 = Debug|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Debug|x86.ActiveCfg = Debug|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Debug|x86.Build.0 = Debug|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Release|Any CPU.Build.0 = Release|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Release|x64.ActiveCfg = Release|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Release|x64.Build.0 = Release|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Release|x86.ActiveCfg = Release|Any CPU - {1BBDC2C0-5822-42E4-80FF-9D8CAA62147B}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1566605B-18A9-423B-BB52-1406254EDE47} - EndGlobalSection -EndGlobal diff --git a/Code/Version.props b/Code/Version.props deleted file mode 100644 index 199192b1..00000000 --- a/Code/Version.props +++ /dev/null @@ -1,5 +0,0 @@ - - - 14.0.0 - - \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 00000000..6b55a778 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,10 @@ + + + 14.0.0 + 12 + Kenny Pflug + Kenny Pflug + Copyright © Kenny Pflug 2016, 2025 + false + + diff --git a/Code/Directory.Packages.props b/Directory.Packages.props similarity index 79% rename from Code/Directory.Packages.props rename to Directory.Packages.props index a2f4fe02..5a76156a 100644 --- a/Code/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,6 +6,7 @@ + @@ -17,4 +18,7 @@ - \ No newline at end of file + + + + diff --git a/Light.GuardClauses.sln b/Light.GuardClauses.sln new file mode 100644 index 00000000..6206f4da --- /dev/null +++ b/Light.GuardClauses.sln @@ -0,0 +1,104 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29102.190 +MinimumVisualStudioVersion = 15.0.26124.0 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses", "src\Light.GuardClauses\Light.GuardClauses.csproj", "{E850D655-B8C8-49B5-8336-D4743504B064}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.Tests", "tests\Light.GuardClauses.Tests\Light.GuardClauses.Tests.csproj", "{E804A19A-589D-49CC-A649-3092013E0133}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.Performance", "benchmarks\Light.GuardClauses.Performance\Light.GuardClauses.Performance.csproj", "{F4EE1A0F-60E0-4077-BFC4-82387535352A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.InternalRoslynAnalyzers", "tools\analyzers\Light.GuardClauses.InternalRoslynAnalyzers\Light.GuardClauses.InternalRoslynAnalyzers.csproj", "{DB4A3982-5312-4923-9C79-C39D18A5899C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.InternalRoslynAnalyzers.Tests", "tests\Light.GuardClauses.InternalRoslynAnalyzers.Tests\Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj", "{2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.SourceCodeTransformation", "tools\source-export\Light.GuardClauses.SourceCodeTransformation\Light.GuardClauses.SourceCodeTransformation.csproj", "{ECE42390-E3B5-49D4-9452-3B0CC04C633A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.SourceValidation", "tools\source-export\Light.GuardClauses.SourceValidation\Light.GuardClauses.SourceValidation.csproj", "{B546B7B7-9CA5-456C-96CD-15C21E64B7DF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Light.GuardClauses.SourceCodeTransformation.Tests", "tests\Light.GuardClauses.SourceCodeTransformation.Tests\Light.GuardClauses.SourceCodeTransformation.Tests.csproj", "{A2067796-F167-47BE-B367-191152DCE230}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{11B02CC1-06EC-4A20-8964-B7E941FAEB49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{22B02CC1-06EC-4A20-8964-B7E941FAEB49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", "{33B02CC1-06EC-4A20-8964-B7E941FAEB49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{44B02CC1-06EC-4A20-8964-B7E941FAEB49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "analyzers", "analyzers", "{55B02CC1-06EC-4A20-8964-B7E941FAEB49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "source-export", "source-export", "{66B02CC1-06EC-4A20-8964-B7E941FAEB49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8A42A536-E597-454B-BE18-4F62311FA158}" + ProjectSection(SolutionItems) = preProject + .gitignore = .gitignore + AGENTS.md = AGENTS.md + CLAUDE.md = CLAUDE.md + CONTRIBUTING.md = CONTRIBUTING.md + Directory.Build.props = Directory.Build.props + Directory.Packages.props = Directory.Packages.props + global.json = global.json + LICENSE = LICENSE + Light.GuardClauses.sln.DotSettings = Light.GuardClauses.sln.DotSettings + README.md = README.md + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E850D655-B8C8-49B5-8336-D4743504B064}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E850D655-B8C8-49B5-8336-D4743504B064}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E850D655-B8C8-49B5-8336-D4743504B064}.Release|Any CPU.Build.0 = Release|Any CPU + {E804A19A-589D-49CC-A649-3092013E0133}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E804A19A-589D-49CC-A649-3092013E0133}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E804A19A-589D-49CC-A649-3092013E0133}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E804A19A-589D-49CC-A649-3092013E0133}.Release|Any CPU.Build.0 = Release|Any CPU + {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4EE1A0F-60E0-4077-BFC4-82387535352A}.Release|Any CPU.Build.0 = Release|Any CPU + {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB4A3982-5312-4923-9C79-C39D18A5899C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DB4A3982-5312-4923-9C79-C39D18A5899C}.Release|Any CPU.Build.0 = Release|Any CPU + {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0}.Release|Any CPU.Build.0 = Release|Any CPU + {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ECE42390-E3B5-49D4-9452-3B0CC04C633A}.Release|Any CPU.Build.0 = Release|Any CPU + {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B546B7B7-9CA5-456C-96CD-15C21E64B7DF}.Release|Any CPU.Build.0 = Release|Any CPU + {A2067796-F167-47BE-B367-191152DCE230}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2067796-F167-47BE-B367-191152DCE230}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2067796-F167-47BE-B367-191152DCE230}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2067796-F167-47BE-B367-191152DCE230}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {E850D655-B8C8-49B5-8336-D4743504B064} = {11B02CC1-06EC-4A20-8964-B7E941FAEB49} + {E804A19A-589D-49CC-A649-3092013E0133} = {22B02CC1-06EC-4A20-8964-B7E941FAEB49} + {2FE2D52E-21B8-4C51-9983-9C1812BDEBA0} = {22B02CC1-06EC-4A20-8964-B7E941FAEB49} + {A2067796-F167-47BE-B367-191152DCE230} = {22B02CC1-06EC-4A20-8964-B7E941FAEB49} + {F4EE1A0F-60E0-4077-BFC4-82387535352A} = {33B02CC1-06EC-4A20-8964-B7E941FAEB49} + {DB4A3982-5312-4923-9C79-C39D18A5899C} = {55B02CC1-06EC-4A20-8964-B7E941FAEB49} + {ECE42390-E3B5-49D4-9452-3B0CC04C633A} = {66B02CC1-06EC-4A20-8964-B7E941FAEB49} + {B546B7B7-9CA5-456C-96CD-15C21E64B7DF} = {66B02CC1-06EC-4A20-8964-B7E941FAEB49} + {55B02CC1-06EC-4A20-8964-B7E941FAEB49} = {44B02CC1-06EC-4A20-8964-B7E941FAEB49} + {66B02CC1-06EC-4A20-8964-B7E941FAEB49} = {44B02CC1-06EC-4A20-8964-B7E941FAEB49} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1566605B-18A9-423B-BB52-1406254EDE47} + EndGlobalSection +EndGlobal diff --git a/Code/Light.GuardClauses.sln.DotSettings b/Light.GuardClauses.sln.DotSettings similarity index 94% rename from Code/Light.GuardClauses.sln.DotSettings rename to Light.GuardClauses.sln.DotSettings index aceafc4d..09c8c5e0 100644 --- a/Code/Light.GuardClauses.sln.DotSettings +++ b/Light.GuardClauses.sln.DotSettings @@ -2,17 +2,24 @@ True None False + HINT + SUGGESTION + HINT + SUGGESTION + SUGGESTION + HINT WARNING WARNING DO_NOT_SHOW - HINT + DO_NOT_SHOW HINT WARNING + DO_NOT_SHOW HINT WARNING True <?xml version="1.0" encoding="utf-16"?><Profile name="Kenny's Kleanup"><CSReorderTypeMembers>True</CSReorderTypeMembers><CSUpdateFileHeader>True</CSUpdateFileHeader><CSEnforceVarKeywordUsageSettings>True</CSEnforceVarKeywordUsageSettings><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CppReformatCode>True</CppReformatCode><XMLReformatCode>True</XMLReformatCode><CssReformatCode>True</CssReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="False" AddMissingParentheses="False" ArrangeBraces="False" ArrangeAttributes="False" ArrangeArgumentsStyle="False" ArrangeCodeBodyStyle="False" ArrangeVarStyle="False" /><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><RemoveCodeRedundancies>True</RemoveCodeRedundancies><HtmlReformatCode>True</HtmlReformatCode><JsInsertSemicolon>True</JsInsertSemicolon><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor></Profile> - Kenny's Kleanup + Built-in: Full Cleanup Built-in: Full Cleanup False Required @@ -40,6 +47,9 @@ True True TOGETHER_SAME_LINE + True + True + True NO_INDENT True True @@ -50,8 +60,9 @@ True False True + 90 1 - 3 + 10000 COMPACT True True @@ -77,6 +88,7 @@ CHOP_IF_LONG False True + True True True True @@ -301,11 +313,6 @@ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - True - D:\Programming\Light.GuardClauses\Code\Light.GuardClauses.sln.DotSettings - - True - 1 True True True @@ -318,4 +325,4 @@ True True True - True \ No newline at end of file + True diff --git a/README.md b/README.md index ae1e1231..c0b21df4 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Light.GuardClauses is available as a [NuGet package](https://www.nuget.org/packa - **Visual Studio Package Manager Console**: `Install-Package Light.GuardClauses` - **Package Reference in csproj**: `` -Also, you can incorporate Light.GuardClauses as a **single source file** where the API is changed to `internal`. This is especially interesting for framework / library developers that do not want to have a dependency on the Light.GuardClauses DLL. You can grab the default .NET Standard 2.0 version in [Light.GuardClauses.SingleFile.cs](https://github.com/feO2x/Light.GuardClauses/blob/master/Light.GuardClauses.SingleFile.cs) or you can use the [Light.GuardClauses.SourceCodeTransformation](https://github.com/feO2x/Light.GuardClauses/tree/master/Code/Light.GuardClauses.SourceCodeTransformation) project to create your custom file. You can learn more about it [here](https://github.com/feO2x/Light.GuardClauses/wiki/Including-Light.GuardClauses-as-source-code). +Also, you can incorporate Light.GuardClauses as a **single source file** where the API is changed to `internal`. This is especially interesting for framework / library developers that do not want to have a dependency on the Light.GuardClauses DLL. You can grab the default .NET Standard 2.0 version in [Light.GuardClauses.SingleFile.cs](https://github.com/feO2x/Light.GuardClauses/blob/master/Light.GuardClauses.SingleFile.cs) or you can use the [Light.GuardClauses.SourceCodeTransformation](https://github.com/feO2x/Light.GuardClauses/tree/master/tools/source-export/Light.GuardClauses.SourceCodeTransformation) project to create your custom file. You can learn more about it [here](https://github.com/feO2x/Light.GuardClauses/wiki/Including-Light.GuardClauses-as-source-code). ## Let there be... Light ![Light Libraries Logo](https://raw.githubusercontent.com/feO2x/Light.GuardClauses/main/Images/light_logo.png) diff --git a/ai-plans/0137-repo-restructuring.md b/ai-plans/0137-repo-restructuring.md index 97d8a233..6a276a72 100644 --- a/ai-plans/0137-repo-restructuring.md +++ b/ai-plans/0137-repo-restructuring.md @@ -7,18 +7,18 @@ The repository still groups solutions, projects, build configuration, developmen ## Acceptance Criteria - [x] The `ai-plans` directory and its instructions reside at the repository root. -- [ ] `AGENTS.md` and `CLAUDE.md` reside at the repository root and apply to the intended repository scope. -- [ ] The repository contains no `Code` directory; product source, tests, benchmarks, and internal tools use the agreed purpose-specific directories. -- [ ] A single root-level `Light.GuardClauses.sln` contains all projects and presents the repository structure through corresponding solution folders. -- [ ] The shared `Light.GuardClauses.sln.DotSettings` file resides beside the solution, contains the intended team settings, and contains no machine-specific paths or references to the removed solution. -- [ ] Shared MSBuild and package configuration is discovered from the repository root, with project-type defaults inherited through hierarchical `Directory.Build.props` files rather than duplicated across project files. -- [ ] Project references and repository-path discovery work with the new layout without relying on a directory named `Code` or on prebuilt project outputs. -- [ ] The root-level `.idea` metadata integrates `ai-plans` into Rider's Solution Explorer without individual solution-file entries and contains no references to the old solution name or location. -- [ ] Operational documentation, ignore rules, and automation contain no stale actionable paths to the old layout; completed historical plans remain unchanged. -- [ ] Continuous integration restores, builds, and tests the complete solution, including all three test projects. -- [ ] The release workflow packs and publishes `Light.GuardClauses` from its new location without changing the package identity, metadata, symbols, or packaged documentation and icon. -- [ ] The source-code transformation can locate the product sources and validation project, generate the root-level single-file distribution, and validate its supported target frameworks from the new layout. -- [ ] The complete solution builds successfully in Release configuration and all automated tests pass on the supported .NET SDK. +- [x] `AGENTS.md` and `CLAUDE.md` reside at the repository root and apply to the intended repository scope. +- [x] The repository contains no `Code` directory; product source, tests, benchmarks, and internal tools use the agreed purpose-specific directories. +- [x] A single root-level `Light.GuardClauses.sln` contains all projects and presents the repository structure through corresponding solution folders. +- [x] The shared `Light.GuardClauses.sln.DotSettings` file resides beside the solution, contains the intended team settings, and contains no machine-specific paths or references to the removed solution. +- [x] Shared MSBuild and package configuration is discovered from the repository root, with project-type defaults inherited through hierarchical `Directory.Build.props` files rather than duplicated across project files. +- [x] Project references and repository-path discovery work with the new layout without relying on a directory named `Code` or on prebuilt project outputs. +- [x] The root-level `.idea` metadata integrates `ai-plans` into Rider's Solution Explorer without individual solution-file entries and contains no references to the old solution name or location. +- [x] Operational documentation, ignore rules, and automation contain no stale actionable paths to the old layout; completed historical plans remain unchanged. +- [x] Continuous integration restores, builds, and tests the complete solution, including all three test projects. +- [x] The release workflow packs and publishes `Light.GuardClauses` from its new location without changing the package identity, metadata, symbols, or packaged documentation and icon. +- [x] The source-code transformation can locate the product sources and validation project, generate the root-level single-file distribution, and validate its supported target frameworks from the new layout. +- [x] The complete solution builds successfully in Release configuration and all automated tests pass on the supported .NET SDK. ## Technical Details diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/CountBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/CountBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/CountBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/CountBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/IsNullOrEmptyBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/IsNullOrEmptyBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/IsNullOrEmptyBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/IsNullOrEmptyBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/IsOneOfBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/IsOneOfBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/IsOneOfBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/IsOneOfBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustBeOneOfBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustBeOneOfBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustBeOneOfBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustBeOneOfBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustContainBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustContainBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustContainBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustContainBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustHaveCountBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustHaveCountBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustHaveCountBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustHaveCountBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMaximumCountBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMaximumCountBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMaximumCountBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMaximumCountBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMinimumCountBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMinimumCountBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMinimumCountBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustHaveMinimumCountBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeNullOrEmptyBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeNullOrEmptyBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeNullOrEmptyBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeNullOrEmptyBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeOneOfBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeOneOfBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeOneOfBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustNotBeOneOfBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/MustNotContainBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustNotContainBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/MustNotContainBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/MustNotContainBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CollectionAssertions/SpanMustHaveLengthBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CollectionAssertions/SpanMustHaveLengthBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CollectionAssertions/SpanMustHaveLengthBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CollectionAssertions/SpanMustHaveLengthBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/InvalidArgumentBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/InvalidArgumentBenchmark.cs similarity index 96% rename from Code/Light.GuardClauses.Performance/CommonAssertions/InvalidArgumentBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/InvalidArgumentBenchmark.cs index 3e922c34..ac3535aa 100644 --- a/Code/Light.GuardClauses.Performance/CommonAssertions/InvalidArgumentBenchmark.cs +++ b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/InvalidArgumentBenchmark.cs @@ -1,49 +1,49 @@ -using System; -using BenchmarkDotNet.Attributes; -using Light.GuardClauses.ExceptionFactory; - -namespace Light.GuardClauses.Performance.CommonAssertions -{ - public class InvalidArgumentBenchmark - { - public bool Condition = false; - public const string Message = "You must not call this method when Condition is true"; - public const string ParameterName = "parameter"; - - [Benchmark(Baseline = true)] - public bool ImperativeVersion() - { - if (Condition) throw new ArgumentException(Message, ParameterName); - return Condition; - } - - [Benchmark] - public bool LightGuardClauses() - { - Check.InvalidArgument(Condition, ParameterName, Message); - return Condition; - } - - [Benchmark] - public bool LightGuardClausesCustomException() - { - Check.InvalidArgument(Condition, () => new ArgumentException(Message, ParameterName)); - return Condition; - } - - [Benchmark] - public bool LightGuardClausesCustomExceptionManualInlining() - { - if (Condition) - Throw.CustomException(() => new ArgumentException(Message, ParameterName)); - return Condition; - } - - [Benchmark] - public bool LightGuardClausesCustomExceptionWithParameter() - { - Check.InvalidArgument(Condition, null, _ => new ArgumentException(Message, ParameterName)); - return Condition; - } - } +using System; +using BenchmarkDotNet.Attributes; +using Light.GuardClauses.ExceptionFactory; + +namespace Light.GuardClauses.Performance.CommonAssertions +{ + public class InvalidArgumentBenchmark + { + public bool Condition = false; + public const string Message = "You must not call this method when Condition is true"; + public const string ParameterName = "parameter"; + + [Benchmark(Baseline = true)] + public bool ImperativeVersion() + { + if (Condition) throw new ArgumentException(Message, ParameterName); + return Condition; + } + + [Benchmark] + public bool LightGuardClauses() + { + Check.InvalidArgument(Condition, ParameterName, Message); + return Condition; + } + + [Benchmark] + public bool LightGuardClausesCustomException() + { + Check.InvalidArgument(Condition, () => new ArgumentException(Message, ParameterName)); + return Condition; + } + + [Benchmark] + public bool LightGuardClausesCustomExceptionManualInlining() + { + if (Condition) + Throw.CustomException(() => new ArgumentException(Message, ParameterName)); + return Condition; + } + + [Benchmark] + public bool LightGuardClausesCustomExceptionWithParameter() + { + Check.InvalidArgument(Condition, null, _ => new ArgumentException(Message, ParameterName)); + return Condition; + } + } } \ No newline at end of file diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/InvalidOperationBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/InvalidOperationBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/InvalidOperationBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/InvalidOperationBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/InvalidStateBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/InvalidStateBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/InvalidStateBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/InvalidStateBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/IsApproximatelyBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsApproximatelyBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/IsApproximatelyBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsApproximatelyBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/IsEmptyGuidBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsEmptyGuidBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/IsEmptyGuidBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsEmptyGuidBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/IsSameAsBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsSameAsBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/IsSameAsBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsSameAsBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/IsValidEnumValueBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsValidEnumValueBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/IsValidEnumValueBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/IsValidEnumValueBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustBeBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustBeBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustBeBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustBeBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustBeOfTypeBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustBeOfTypeBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustBeOfTypeBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustBeOfTypeBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustBeValidEnumValueBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustBeValidEnumValueBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustBeValidEnumValueBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustBeValidEnumValueBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustHaveValueBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustHaveValueBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustHaveValueBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustHaveValueBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeDefaultBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeDefaultBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeDefaultBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeDefaultBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeEmptyGuidBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeEmptyGuidBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeEmptyGuidBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeEmptyGuidBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullReferenceBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullReferenceBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullReferenceBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeNullReferenceBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeSameAsBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeSameAsBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/CommonAssertions/MustNotBeSameAsBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/CommonAssertions/MustNotBeSameAsBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/IsInBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/IsInBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/IsInBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/IsInBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/IsNotInBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/IsNotInBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/IsNotInBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/IsNotInBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeApproximatelyBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeApproximatelyBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeApproximatelyBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeApproximatelyBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanOrEqualToBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanOrEqualToBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanOrEqualToBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeGreaterThanOrEqualToBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeInBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeInBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeInBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeInBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanOrEqualToBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanOrEqualToBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanOrEqualToBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustBeLessThanOrEqualToBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeApproximatelyBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeApproximatelyBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeApproximatelyBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeApproximatelyBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanOrEqualToBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanOrEqualToBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanOrEqualToBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeGreaterThanOrEqualToBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeInBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeInBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeInBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeInBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanOrEqualToBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanOrEqualToBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanOrEqualToBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/ComparableAssertions/MustNotBeLessThanOrEqualToBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/DateTimeAssertions/MustBeLocalBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/DateTimeAssertions/MustBeLocalBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/DateTimeAssertions/MustBeLocalBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/DateTimeAssertions/MustBeLocalBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUnspecifiedBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUnspecifiedBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUnspecifiedBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUnspecifiedBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUtcBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUtcBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUtcBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/DateTimeAssertions/MustBeUtcBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/FrameworkExtensions/ContainsBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/FrameworkExtensions/ContainsBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/FrameworkExtensions/ContainsBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/FrameworkExtensions/ContainsBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/FrameworkExtensions/HashFunctionBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/FrameworkExtensions/HashFunctionBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/FrameworkExtensions/HashFunctionBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/FrameworkExtensions/HashFunctionBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/Light.GuardClauses.Performance.csproj b/benchmarks/Light.GuardClauses.Performance/Light.GuardClauses.Performance.csproj similarity index 65% rename from Code/Light.GuardClauses.Performance/Light.GuardClauses.Performance.csproj rename to benchmarks/Light.GuardClauses.Performance/Light.GuardClauses.Performance.csproj index 30ed96d9..30311260 100644 --- a/Code/Light.GuardClauses.Performance/Light.GuardClauses.Performance.csproj +++ b/benchmarks/Light.GuardClauses.Performance/Light.GuardClauses.Performance.csproj @@ -3,12 +3,11 @@ Exe net8.0;net48 - 11 - + - \ No newline at end of file + diff --git a/Code/Light.GuardClauses.Performance/Program.cs b/benchmarks/Light.GuardClauses.Performance/Program.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/Program.cs rename to benchmarks/Light.GuardClauses.Performance/Program.cs diff --git a/Code/Light.GuardClauses.Performance/SampleEntity.cs b/benchmarks/Light.GuardClauses.Performance/SampleEntity.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/SampleEntity.cs rename to benchmarks/Light.GuardClauses.Performance/SampleEntity.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/EqualsBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/EqualsBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/EqualsBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/EqualsBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsDigitBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsDigitBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsDigitBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsDigitBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsEmailAddressBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsEmailAddressBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsEmailAddressBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsEmailAddressBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsLetterBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsLetterBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsLetterBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsLetterBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsLetterOrDigitBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsLetterOrDigitBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsLetterOrDigitBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsLetterOrDigitBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsNullOrEmptyBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsNullOrEmptyBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsNullOrEmptyBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsNullOrEmptyBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsNullOrWhiteSpaceBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsNullOrWhiteSpaceBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsNullOrWhiteSpaceBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsNullOrWhiteSpaceBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsSubstringOfBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsSubstringOfBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsSubstringOfBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsSubstringOfBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/IsWhiteSpaceBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/IsWhiteSpaceBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/IsWhiteSpaceBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/IsWhiteSpaceBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustBeBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustBeBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustBeNewLineBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeNewLineBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustBeNewLineBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeNewLineBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustBeShorterThanBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeShorterThanBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustBeShorterThanBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeShorterThanBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustBeSubstringOfBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeSubstringOfBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustBeSubstringOfBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustBeSubstringOfBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustContainBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustContainBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustContainBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustContainBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustMatchBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustMatchBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustMatchBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustMatchBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrEmptyBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrEmptyBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrEmptyBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrEmptyBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrWhiteSpaceBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrWhiteSpaceBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrWhiteSpaceBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeNullOrWhiteSpaceBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeSubstringOfBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeSubstringOfBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustNotBeSubstringOfBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotBeSubstringOfBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/StringAssertions/MustNotContainBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotContainBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/StringAssertions/MustNotContainBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/StringAssertions/MustNotContainBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/UriAssertions/MustBeAbsoluteUriBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/UriAssertions/MustBeAbsoluteUriBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/UriAssertions/MustBeAbsoluteUriBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/UriAssertions/MustBeAbsoluteUriBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/UriAssertions/MustBeHttpOrHttpsUrlBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/UriAssertions/MustBeHttpOrHttpsUrlBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/UriAssertions/MustBeHttpOrHttpsUrlBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/UriAssertions/MustBeHttpOrHttpsUrlBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/UriAssertions/MustBeRelativeUriBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/UriAssertions/MustBeRelativeUriBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/UriAssertions/MustBeRelativeUriBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/UriAssertions/MustBeRelativeUriBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/UriAssertions/MustHaveOneSchemeOfBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/UriAssertions/MustHaveOneSchemeOfBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/UriAssertions/MustHaveOneSchemeOfBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/UriAssertions/MustHaveOneSchemeOfBenchmark.cs diff --git a/Code/Light.GuardClauses.Performance/UriAssertions/MustHaveSchemeBenchmark.cs b/benchmarks/Light.GuardClauses.Performance/UriAssertions/MustHaveSchemeBenchmark.cs similarity index 100% rename from Code/Light.GuardClauses.Performance/UriAssertions/MustHaveSchemeBenchmark.cs rename to benchmarks/Light.GuardClauses.Performance/UriAssertions/MustHaveSchemeBenchmark.cs diff --git a/global.json b/global.json new file mode 100644 index 00000000..db09cbbe --- /dev/null +++ b/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "8.0.400", + "rollForward": "latestPatch" + } +} diff --git a/Code/Light.GuardClauses/Light.GuardClauses.csproj b/src/Directory.Build.props similarity index 53% rename from Code/Light.GuardClauses/Light.GuardClauses.csproj rename to src/Directory.Build.props index 06bd1491..aa3403d1 100644 --- a/Code/Light.GuardClauses/Light.GuardClauses.csproj +++ b/src/Directory.Build.props @@ -1,17 +1,8 @@ - - - + + - netstandard2.0;netstandard2.1;net8.0 A lightweight .NET library for expressive Guard Clauses. - Kenny Pflug - Kenny Pflug - enable - true - Copyright © Kenny Pflug 2016, 2025 - 12 - true true MIT light-logo.png @@ -35,18 +26,10 @@ - - - + + - - - - - - - \ No newline at end of file + diff --git a/Code/Light.GuardClauses/CallerArgumentExpressionAttribute.cs b/src/Light.GuardClauses/CallerArgumentExpressionAttribute.cs similarity index 100% rename from Code/Light.GuardClauses/CallerArgumentExpressionAttribute.cs rename to src/Light.GuardClauses/CallerArgumentExpressionAttribute.cs diff --git a/Code/Light.GuardClauses/Check.DerivesFrom.cs b/src/Light.GuardClauses/Check.DerivesFrom.cs similarity index 100% rename from Code/Light.GuardClauses/Check.DerivesFrom.cs rename to src/Light.GuardClauses/Check.DerivesFrom.cs diff --git a/Code/Light.GuardClauses/Check.Equals.cs b/src/Light.GuardClauses/Check.Equals.cs similarity index 100% rename from Code/Light.GuardClauses/Check.Equals.cs rename to src/Light.GuardClauses/Check.Equals.cs diff --git a/Code/Light.GuardClauses/Check.Implements.cs b/src/Light.GuardClauses/Check.Implements.cs similarity index 100% rename from Code/Light.GuardClauses/Check.Implements.cs rename to src/Light.GuardClauses/Check.Implements.cs diff --git a/Code/Light.GuardClauses/Check.InheritsFrom.cs b/src/Light.GuardClauses/Check.InheritsFrom.cs similarity index 100% rename from Code/Light.GuardClauses/Check.InheritsFrom.cs rename to src/Light.GuardClauses/Check.InheritsFrom.cs diff --git a/Code/Light.GuardClauses/Check.InvalidArgument.cs b/src/Light.GuardClauses/Check.InvalidArgument.cs similarity index 100% rename from Code/Light.GuardClauses/Check.InvalidArgument.cs rename to src/Light.GuardClauses/Check.InvalidArgument.cs diff --git a/Code/Light.GuardClauses/Check.InvalidOperation.cs b/src/Light.GuardClauses/Check.InvalidOperation.cs similarity index 100% rename from Code/Light.GuardClauses/Check.InvalidOperation.cs rename to src/Light.GuardClauses/Check.InvalidOperation.cs diff --git a/Code/Light.GuardClauses/Check.InvalidState.cs b/src/Light.GuardClauses/Check.InvalidState.cs similarity index 100% rename from Code/Light.GuardClauses/Check.InvalidState.cs rename to src/Light.GuardClauses/Check.InvalidState.cs diff --git a/Code/Light.GuardClauses/Check.IsApproximately.cs b/src/Light.GuardClauses/Check.IsApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsApproximately.cs rename to src/Light.GuardClauses/Check.IsApproximately.cs diff --git a/Code/Light.GuardClauses/Check.IsDigit.cs b/src/Light.GuardClauses/Check.IsDigit.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsDigit.cs rename to src/Light.GuardClauses/Check.IsDigit.cs diff --git a/Code/Light.GuardClauses/Check.IsEmailAddress.cs b/src/Light.GuardClauses/Check.IsEmailAddress.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsEmailAddress.cs rename to src/Light.GuardClauses/Check.IsEmailAddress.cs diff --git a/Code/Light.GuardClauses/Check.IsEmpty.cs b/src/Light.GuardClauses/Check.IsEmpty.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsEmpty.cs rename to src/Light.GuardClauses/Check.IsEmpty.cs diff --git a/Code/Light.GuardClauses/Check.IsEmptyOrWhiteSpace.cs b/src/Light.GuardClauses/Check.IsEmptyOrWhiteSpace.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsEmptyOrWhiteSpace.cs rename to src/Light.GuardClauses/Check.IsEmptyOrWhiteSpace.cs diff --git a/Code/Light.GuardClauses/Check.IsEquivalentTypeTo.cs b/src/Light.GuardClauses/Check.IsEquivalentTypeTo.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsEquivalentTypeTo.cs rename to src/Light.GuardClauses/Check.IsEquivalentTypeTo.cs diff --git a/Code/Light.GuardClauses/Check.IsFileExtension.cs b/src/Light.GuardClauses/Check.IsFileExtension.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsFileExtension.cs rename to src/Light.GuardClauses/Check.IsFileExtension.cs diff --git a/Code/Light.GuardClauses/Check.IsGreaterThanOrApproximately.cs b/src/Light.GuardClauses/Check.IsGreaterThanOrApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsGreaterThanOrApproximately.cs rename to src/Light.GuardClauses/Check.IsGreaterThanOrApproximately.cs diff --git a/Code/Light.GuardClauses/Check.IsIn.cs b/src/Light.GuardClauses/Check.IsIn.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsIn.cs rename to src/Light.GuardClauses/Check.IsIn.cs diff --git a/Code/Light.GuardClauses/Check.IsLessThanOrApproximately.cs b/src/Light.GuardClauses/Check.IsLessThanOrApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsLessThanOrApproximately.cs rename to src/Light.GuardClauses/Check.IsLessThanOrApproximately.cs diff --git a/Code/Light.GuardClauses/Check.IsLetter.cs b/src/Light.GuardClauses/Check.IsLetter.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsLetter.cs rename to src/Light.GuardClauses/Check.IsLetter.cs diff --git a/Code/Light.GuardClauses/Check.IsLetterOrDigit.cs b/src/Light.GuardClauses/Check.IsLetterOrDigit.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsLetterOrDigit.cs rename to src/Light.GuardClauses/Check.IsLetterOrDigit.cs diff --git a/Code/Light.GuardClauses/Check.IsNewLine.cs b/src/Light.GuardClauses/Check.IsNewLine.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsNewLine.cs rename to src/Light.GuardClauses/Check.IsNewLine.cs diff --git a/Code/Light.GuardClauses/Check.IsNotIn.cs b/src/Light.GuardClauses/Check.IsNotIn.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsNotIn.cs rename to src/Light.GuardClauses/Check.IsNotIn.cs diff --git a/Code/Light.GuardClauses/Check.IsNullOrEmpty.cs b/src/Light.GuardClauses/Check.IsNullOrEmpty.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsNullOrEmpty.cs rename to src/Light.GuardClauses/Check.IsNullOrEmpty.cs diff --git a/Code/Light.GuardClauses/Check.IsNullOrWhiteSpace.cs b/src/Light.GuardClauses/Check.IsNullOrWhiteSpace.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsNullOrWhiteSpace.cs rename to src/Light.GuardClauses/Check.IsNullOrWhiteSpace.cs diff --git a/Code/Light.GuardClauses/Check.IsOneOf.cs b/src/Light.GuardClauses/Check.IsOneOf.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsOneOf.cs rename to src/Light.GuardClauses/Check.IsOneOf.cs diff --git a/Code/Light.GuardClauses/Check.IsOpenConstructedGenericType.cs b/src/Light.GuardClauses/Check.IsOpenConstructedGenericType.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsOpenConstructedGenericType.cs rename to src/Light.GuardClauses/Check.IsOpenConstructedGenericType.cs diff --git a/Code/Light.GuardClauses/Check.IsOrDerivesFrom.cs b/src/Light.GuardClauses/Check.IsOrDerivesFrom.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsOrDerivesFrom.cs rename to src/Light.GuardClauses/Check.IsOrDerivesFrom.cs diff --git a/Code/Light.GuardClauses/Check.IsOrImplements.cs b/src/Light.GuardClauses/Check.IsOrImplements.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsOrImplements.cs rename to src/Light.GuardClauses/Check.IsOrImplements.cs diff --git a/Code/Light.GuardClauses/Check.IsOrInheritsFrom.cs b/src/Light.GuardClauses/Check.IsOrInheritsFrom.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsOrInheritsFrom.cs rename to src/Light.GuardClauses/Check.IsOrInheritsFrom.cs diff --git a/Code/Light.GuardClauses/Check.IsSameAs.cs b/src/Light.GuardClauses/Check.IsSameAs.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsSameAs.cs rename to src/Light.GuardClauses/Check.IsSameAs.cs diff --git a/Code/Light.GuardClauses/Check.IsSubstringOf.cs b/src/Light.GuardClauses/Check.IsSubstringOf.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsSubstringOf.cs rename to src/Light.GuardClauses/Check.IsSubstringOf.cs diff --git a/Code/Light.GuardClauses/Check.IsTrimmed.cs b/src/Light.GuardClauses/Check.IsTrimmed.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsTrimmed.cs rename to src/Light.GuardClauses/Check.IsTrimmed.cs diff --git a/Code/Light.GuardClauses/Check.IsTrimmedAtEnd.cs b/src/Light.GuardClauses/Check.IsTrimmedAtEnd.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsTrimmedAtEnd.cs rename to src/Light.GuardClauses/Check.IsTrimmedAtEnd.cs diff --git a/Code/Light.GuardClauses/Check.IsTrimmedAtStart.cs b/src/Light.GuardClauses/Check.IsTrimmedAtStart.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsTrimmedAtStart.cs rename to src/Light.GuardClauses/Check.IsTrimmedAtStart.cs diff --git a/Code/Light.GuardClauses/Check.IsValidEnumValue.cs b/src/Light.GuardClauses/Check.IsValidEnumValue.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsValidEnumValue.cs rename to src/Light.GuardClauses/Check.IsValidEnumValue.cs diff --git a/Code/Light.GuardClauses/Check.IsWhiteSpace.cs b/src/Light.GuardClauses/Check.IsWhiteSpace.cs similarity index 100% rename from Code/Light.GuardClauses/Check.IsWhiteSpace.cs rename to src/Light.GuardClauses/Check.IsWhiteSpace.cs diff --git a/Code/Light.GuardClauses/Check.MustBe.cs b/src/Light.GuardClauses/Check.MustBe.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBe.cs rename to src/Light.GuardClauses/Check.MustBe.cs diff --git a/Code/Light.GuardClauses/Check.MustBeAbsoluteUri.cs b/src/Light.GuardClauses/Check.MustBeAbsoluteUri.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeAbsoluteUri.cs rename to src/Light.GuardClauses/Check.MustBeAbsoluteUri.cs diff --git a/Code/Light.GuardClauses/Check.MustBeApproximately.cs b/src/Light.GuardClauses/Check.MustBeApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeApproximately.cs rename to src/Light.GuardClauses/Check.MustBeApproximately.cs diff --git a/Code/Light.GuardClauses/Check.MustBeEmailAddress.cs b/src/Light.GuardClauses/Check.MustBeEmailAddress.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeEmailAddress.cs rename to src/Light.GuardClauses/Check.MustBeEmailAddress.cs diff --git a/Code/Light.GuardClauses/Check.MustBeFileExtension.cs b/src/Light.GuardClauses/Check.MustBeFileExtension.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeFileExtension.cs rename to src/Light.GuardClauses/Check.MustBeFileExtension.cs diff --git a/Code/Light.GuardClauses/Check.MustBeGreaterThan.cs b/src/Light.GuardClauses/Check.MustBeGreaterThan.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeGreaterThan.cs rename to src/Light.GuardClauses/Check.MustBeGreaterThan.cs diff --git a/Code/Light.GuardClauses/Check.MustBeGreaterThanOrApproximately.cs b/src/Light.GuardClauses/Check.MustBeGreaterThanOrApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeGreaterThanOrApproximately.cs rename to src/Light.GuardClauses/Check.MustBeGreaterThanOrApproximately.cs diff --git a/Code/Light.GuardClauses/Check.MustBeGreaterThanOrEqualTo.cs b/src/Light.GuardClauses/Check.MustBeGreaterThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeGreaterThanOrEqualTo.cs rename to src/Light.GuardClauses/Check.MustBeGreaterThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/Check.MustBeHttpOrHttpsUrl.cs b/src/Light.GuardClauses/Check.MustBeHttpOrHttpsUrl.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeHttpOrHttpsUrl.cs rename to src/Light.GuardClauses/Check.MustBeHttpOrHttpsUrl.cs diff --git a/Code/Light.GuardClauses/Check.MustBeHttpUrl.cs b/src/Light.GuardClauses/Check.MustBeHttpUrl.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeHttpUrl.cs rename to src/Light.GuardClauses/Check.MustBeHttpUrl.cs diff --git a/Code/Light.GuardClauses/Check.MustBeHttpsUrl.cs b/src/Light.GuardClauses/Check.MustBeHttpsUrl.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeHttpsUrl.cs rename to src/Light.GuardClauses/Check.MustBeHttpsUrl.cs diff --git a/Code/Light.GuardClauses/Check.MustBeIn.cs b/src/Light.GuardClauses/Check.MustBeIn.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeIn.cs rename to src/Light.GuardClauses/Check.MustBeIn.cs diff --git a/Code/Light.GuardClauses/Check.MustBeLessThan.cs b/src/Light.GuardClauses/Check.MustBeLessThan.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeLessThan.cs rename to src/Light.GuardClauses/Check.MustBeLessThan.cs diff --git a/Code/Light.GuardClauses/Check.MustBeLessThanOrApproximately.cs b/src/Light.GuardClauses/Check.MustBeLessThanOrApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeLessThanOrApproximately.cs rename to src/Light.GuardClauses/Check.MustBeLessThanOrApproximately.cs diff --git a/Code/Light.GuardClauses/Check.MustBeLessThanOrEqualTo.cs b/src/Light.GuardClauses/Check.MustBeLessThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeLessThanOrEqualTo.cs rename to src/Light.GuardClauses/Check.MustBeLessThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/Check.MustBeLocal.cs b/src/Light.GuardClauses/Check.MustBeLocal.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeLocal.cs rename to src/Light.GuardClauses/Check.MustBeLocal.cs diff --git a/Code/Light.GuardClauses/Check.MustBeLongerThan.cs b/src/Light.GuardClauses/Check.MustBeLongerThan.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeLongerThan.cs rename to src/Light.GuardClauses/Check.MustBeLongerThan.cs diff --git a/Code/Light.GuardClauses/Check.MustBeLongerThanOrEqualTo.cs b/src/Light.GuardClauses/Check.MustBeLongerThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeLongerThanOrEqualTo.cs rename to src/Light.GuardClauses/Check.MustBeLongerThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/Check.MustBeNewLine.cs b/src/Light.GuardClauses/Check.MustBeNewLine.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeNewLine.cs rename to src/Light.GuardClauses/Check.MustBeNewLine.cs diff --git a/Code/Light.GuardClauses/Check.MustBeOfType.cs b/src/Light.GuardClauses/Check.MustBeOfType.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeOfType.cs rename to src/Light.GuardClauses/Check.MustBeOfType.cs diff --git a/Code/Light.GuardClauses/Check.MustBeOneOf.cs b/src/Light.GuardClauses/Check.MustBeOneOf.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeOneOf.cs rename to src/Light.GuardClauses/Check.MustBeOneOf.cs diff --git a/Code/Light.GuardClauses/Check.MustBeRelativeUri.cs b/src/Light.GuardClauses/Check.MustBeRelativeUri.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeRelativeUri.cs rename to src/Light.GuardClauses/Check.MustBeRelativeUri.cs diff --git a/Code/Light.GuardClauses/Check.MustBeShorterThan.cs b/src/Light.GuardClauses/Check.MustBeShorterThan.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeShorterThan.cs rename to src/Light.GuardClauses/Check.MustBeShorterThan.cs diff --git a/Code/Light.GuardClauses/Check.MustBeShorterThanOrEqualTo.cs b/src/Light.GuardClauses/Check.MustBeShorterThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeShorterThanOrEqualTo.cs rename to src/Light.GuardClauses/Check.MustBeShorterThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/Check.MustBeSubstringOf.cs b/src/Light.GuardClauses/Check.MustBeSubstringOf.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeSubstringOf.cs rename to src/Light.GuardClauses/Check.MustBeSubstringOf.cs diff --git a/Code/Light.GuardClauses/Check.MustBeTrimmed.cs b/src/Light.GuardClauses/Check.MustBeTrimmed.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeTrimmed.cs rename to src/Light.GuardClauses/Check.MustBeTrimmed.cs diff --git a/Code/Light.GuardClauses/Check.MustBeTrimmedAtEnd.cs b/src/Light.GuardClauses/Check.MustBeTrimmedAtEnd.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeTrimmedAtEnd.cs rename to src/Light.GuardClauses/Check.MustBeTrimmedAtEnd.cs diff --git a/Code/Light.GuardClauses/Check.MustBeTrimmedAtStart.cs b/src/Light.GuardClauses/Check.MustBeTrimmedAtStart.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeTrimmedAtStart.cs rename to src/Light.GuardClauses/Check.MustBeTrimmedAtStart.cs diff --git a/Code/Light.GuardClauses/Check.MustBeUnspecified.cs b/src/Light.GuardClauses/Check.MustBeUnspecified.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeUnspecified.cs rename to src/Light.GuardClauses/Check.MustBeUnspecified.cs diff --git a/Code/Light.GuardClauses/Check.MustBeUtc.cs b/src/Light.GuardClauses/Check.MustBeUtc.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeUtc.cs rename to src/Light.GuardClauses/Check.MustBeUtc.cs diff --git a/Code/Light.GuardClauses/Check.MustBeValidEnumValue.cs b/src/Light.GuardClauses/Check.MustBeValidEnumValue.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustBeValidEnumValue.cs rename to src/Light.GuardClauses/Check.MustBeValidEnumValue.cs diff --git a/Code/Light.GuardClauses/Check.MustContain.cs b/src/Light.GuardClauses/Check.MustContain.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustContain.cs rename to src/Light.GuardClauses/Check.MustContain.cs diff --git a/Code/Light.GuardClauses/Check.MustEndWith.cs b/src/Light.GuardClauses/Check.MustEndWith.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustEndWith.cs rename to src/Light.GuardClauses/Check.MustEndWith.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveCount.cs b/src/Light.GuardClauses/Check.MustHaveCount.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveCount.cs rename to src/Light.GuardClauses/Check.MustHaveCount.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveLength.cs b/src/Light.GuardClauses/Check.MustHaveLength.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveLength.cs rename to src/Light.GuardClauses/Check.MustHaveLength.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveLengthIn.cs b/src/Light.GuardClauses/Check.MustHaveLengthIn.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveLengthIn.cs rename to src/Light.GuardClauses/Check.MustHaveLengthIn.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveMaximumCount.cs b/src/Light.GuardClauses/Check.MustHaveMaximumCount.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveMaximumCount.cs rename to src/Light.GuardClauses/Check.MustHaveMaximumCount.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveMaximumLength.cs b/src/Light.GuardClauses/Check.MustHaveMaximumLength.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveMaximumLength.cs rename to src/Light.GuardClauses/Check.MustHaveMaximumLength.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveMinimumCount.cs b/src/Light.GuardClauses/Check.MustHaveMinimumCount.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveMinimumCount.cs rename to src/Light.GuardClauses/Check.MustHaveMinimumCount.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveMinimumLength.cs b/src/Light.GuardClauses/Check.MustHaveMinimumLength.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveMinimumLength.cs rename to src/Light.GuardClauses/Check.MustHaveMinimumLength.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveOneSchemeOf.cs b/src/Light.GuardClauses/Check.MustHaveOneSchemeOf.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveOneSchemeOf.cs rename to src/Light.GuardClauses/Check.MustHaveOneSchemeOf.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveScheme.cs b/src/Light.GuardClauses/Check.MustHaveScheme.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveScheme.cs rename to src/Light.GuardClauses/Check.MustHaveScheme.cs diff --git a/Code/Light.GuardClauses/Check.MustHaveValue.cs b/src/Light.GuardClauses/Check.MustHaveValue.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustHaveValue.cs rename to src/Light.GuardClauses/Check.MustHaveValue.cs diff --git a/Code/Light.GuardClauses/Check.MustMatch.cs b/src/Light.GuardClauses/Check.MustMatch.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustMatch.cs rename to src/Light.GuardClauses/Check.MustMatch.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBe.cs b/src/Light.GuardClauses/Check.MustNotBe.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBe.cs rename to src/Light.GuardClauses/Check.MustNotBe.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeApproximately.cs b/src/Light.GuardClauses/Check.MustNotBeApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeApproximately.cs rename to src/Light.GuardClauses/Check.MustNotBeApproximately.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeDefault.cs b/src/Light.GuardClauses/Check.MustNotBeDefault.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeDefault.cs rename to src/Light.GuardClauses/Check.MustNotBeDefault.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeDefaultOrEmpty.cs b/src/Light.GuardClauses/Check.MustNotBeDefaultOrEmpty.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeDefaultOrEmpty.cs rename to src/Light.GuardClauses/Check.MustNotBeDefaultOrEmpty.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeEmpty.cs b/src/Light.GuardClauses/Check.MustNotBeEmpty.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeEmpty.cs rename to src/Light.GuardClauses/Check.MustNotBeEmpty.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeGreaterThan.cs b/src/Light.GuardClauses/Check.MustNotBeGreaterThan.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeGreaterThan.cs rename to src/Light.GuardClauses/Check.MustNotBeGreaterThan.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeGreaterThanOrEqualTo.cs b/src/Light.GuardClauses/Check.MustNotBeGreaterThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeGreaterThanOrEqualTo.cs rename to src/Light.GuardClauses/Check.MustNotBeGreaterThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeIn.cs b/src/Light.GuardClauses/Check.MustNotBeIn.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeIn.cs rename to src/Light.GuardClauses/Check.MustNotBeIn.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeLessThan.cs b/src/Light.GuardClauses/Check.MustNotBeLessThan.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeLessThan.cs rename to src/Light.GuardClauses/Check.MustNotBeLessThan.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeLessThanOrEqualTo.cs b/src/Light.GuardClauses/Check.MustNotBeLessThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeLessThanOrEqualTo.cs rename to src/Light.GuardClauses/Check.MustNotBeLessThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeNull.cs b/src/Light.GuardClauses/Check.MustNotBeNull.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeNull.cs rename to src/Light.GuardClauses/Check.MustNotBeNull.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeNullOrEmpty.cs b/src/Light.GuardClauses/Check.MustNotBeNullOrEmpty.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeNullOrEmpty.cs rename to src/Light.GuardClauses/Check.MustNotBeNullOrEmpty.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeNullOrWhiteSpace.cs b/src/Light.GuardClauses/Check.MustNotBeNullOrWhiteSpace.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeNullOrWhiteSpace.cs rename to src/Light.GuardClauses/Check.MustNotBeNullOrWhiteSpace.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeNullReference.cs b/src/Light.GuardClauses/Check.MustNotBeNullReference.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeNullReference.cs rename to src/Light.GuardClauses/Check.MustNotBeNullReference.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeOneOf.cs b/src/Light.GuardClauses/Check.MustNotBeOneOf.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeOneOf.cs rename to src/Light.GuardClauses/Check.MustNotBeOneOf.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeSameAs.cs b/src/Light.GuardClauses/Check.MustNotBeSameAs.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeSameAs.cs rename to src/Light.GuardClauses/Check.MustNotBeSameAs.cs diff --git a/Code/Light.GuardClauses/Check.MustNotBeSubstringOf.cs b/src/Light.GuardClauses/Check.MustNotBeSubstringOf.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotBeSubstringOf.cs rename to src/Light.GuardClauses/Check.MustNotBeSubstringOf.cs diff --git a/Code/Light.GuardClauses/Check.MustNotContain.cs b/src/Light.GuardClauses/Check.MustNotContain.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotContain.cs rename to src/Light.GuardClauses/Check.MustNotContain.cs diff --git a/Code/Light.GuardClauses/Check.MustNotEndWith.cs b/src/Light.GuardClauses/Check.MustNotEndWith.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotEndWith.cs rename to src/Light.GuardClauses/Check.MustNotEndWith.cs diff --git a/Code/Light.GuardClauses/Check.MustNotStartWith.cs b/src/Light.GuardClauses/Check.MustNotStartWith.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustNotStartWith.cs rename to src/Light.GuardClauses/Check.MustNotStartWith.cs diff --git a/Code/Light.GuardClauses/Check.MustStartWith.cs b/src/Light.GuardClauses/Check.MustStartWith.cs similarity index 100% rename from Code/Light.GuardClauses/Check.MustStartWith.cs rename to src/Light.GuardClauses/Check.MustStartWith.cs diff --git a/Code/Light.GuardClauses/Check.cs b/src/Light.GuardClauses/Check.cs similarity index 100% rename from Code/Light.GuardClauses/Check.cs rename to src/Light.GuardClauses/Check.cs diff --git a/Code/Light.GuardClauses/CreateSignedNuGetPackage.cmd b/src/Light.GuardClauses/CreateSignedNuGetPackage.cmd similarity index 100% rename from Code/Light.GuardClauses/CreateSignedNuGetPackage.cmd rename to src/Light.GuardClauses/CreateSignedNuGetPackage.cmd diff --git a/Code/Light.GuardClauses/EnumInfo.cs b/src/Light.GuardClauses/EnumInfo.cs similarity index 100% rename from Code/Light.GuardClauses/EnumInfo.cs rename to src/Light.GuardClauses/EnumInfo.cs diff --git a/Code/Light.GuardClauses/EquivalentTypeComparer.cs b/src/Light.GuardClauses/EquivalentTypeComparer.cs similarity index 100% rename from Code/Light.GuardClauses/EquivalentTypeComparer.cs rename to src/Light.GuardClauses/EquivalentTypeComparer.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/SpanDelegates.cs b/src/Light.GuardClauses/ExceptionFactory/SpanDelegates.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/SpanDelegates.cs rename to src/Light.GuardClauses/ExceptionFactory/SpanDelegates.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.Argument.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.Argument.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.Argument.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.Argument.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.ArgumentDefault.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.ArgumentDefault.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.ArgumentDefault.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.ArgumentDefault.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.ArgumentNull.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.ArgumentNull.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.ArgumentNull.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.ArgumentNull.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.CustomException.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.CustomException.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.CustomException.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.CustomException.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.DateTime.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.DateTime.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.DateTime.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.DateTime.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.EmptyCollection.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.EmptyCollection.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.EmptyCollection.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.EmptyCollection.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.EmptyGuid.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.EmptyGuid.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.EmptyGuid.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.EmptyGuid.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.EmptyString.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.EmptyString.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.EmptyString.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.EmptyString.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.EnumValueNotDefined.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.EnumValueNotDefined.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.EnumValueNotDefined.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.EnumValueNotDefined.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.ExistingItem.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.ExistingItem.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.ExistingItem.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.ExistingItem.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.ImmutableArrayLengthNotInRange.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.ImmutableArrayLengthNotInRange.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.ImmutableArrayLengthNotInRange.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.ImmutableArrayLengthNotInRange.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidCollectionCount.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidCollectionCount.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidCollectionCount.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidCollectionCount.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidEmailAddress.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidEmailAddress.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidEmailAddress.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidEmailAddress.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidImmutableArrayLength.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidImmutableArrayLength.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidImmutableArrayLength.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidImmutableArrayLength.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumCollectionCount.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumCollectionCount.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumCollectionCount.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumCollectionCount.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumImmutableArrayLength.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumImmutableArrayLength.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumImmutableArrayLength.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMaximumImmutableArrayLength.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumCollectionCount.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumCollectionCount.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumCollectionCount.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumCollectionCount.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumImmutableArrayLength.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumImmutableArrayLength.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumImmutableArrayLength.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidMinimumImmutableArrayLength.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidOperation.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidOperation.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidOperation.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidOperation.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidState.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidState.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidState.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidState.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidTypeCast.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.InvalidTypeCast.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.InvalidTypeCast.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.InvalidTypeCast.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MissingItem.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MissingItem.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MissingItem.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MissingItem.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeApproximately.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustBeApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeApproximately.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustBeApproximately.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThan.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThan.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThan.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThan.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrApproximately.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrApproximately.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrApproximately.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrEqualTo.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrEqualTo.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustBeGreaterThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThan.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThan.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThan.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThan.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrApproximately.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrApproximately.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrApproximately.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrEqualTo.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrEqualTo.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustBeLessThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeApproximately.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeApproximately.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeApproximately.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeApproximately.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThan.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThan.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThan.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThan.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThanOrEqualTo.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThanOrEqualTo.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeGreaterThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThan.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThan.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThan.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThan.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThanOrEqualTo.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThanOrEqualTo.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThanOrEqualTo.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.MustNotBeLessThanOrEqualTo.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.NotFileExtension.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.NotFileExtension.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.NotFileExtension.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.NotFileExtension.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.NotNewLine.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.NotNewLine.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.NotNewLine.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.NotNewLine.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmed.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmed.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmed.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmed.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtEnd.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtEnd.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtEnd.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtEnd.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtStart.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtStart.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtStart.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.NotTrimmedAtStart.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.NullableHasNoValue.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.NullableHasNoValue.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.NullableHasNoValue.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.NullableHasNoValue.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.Range.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.Range.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.Range.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.Range.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.SameObjectReference.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.SameObjectReference.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.SameObjectReference.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.SameObjectReference.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.Span.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.Span.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.Span.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.Span.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.StringContains.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.StringContains.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.StringContains.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.StringContains.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotEndWith.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotEndWith.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotEndWith.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotEndWith.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotMatch.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotMatch.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotMatch.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotMatch.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotStartWith.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotStartWith.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotStartWith.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.StringDoesNotStartWith.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.StringEndsWith.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.StringEndsWith.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.StringEndsWith.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.StringEndsWith.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.StringLength.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.StringLength.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.StringLength.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.StringLength.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.StringStartsWith.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.StringStartsWith.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.StringStartsWith.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.StringStartsWith.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.Substring.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.Substring.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.Substring.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.Substring.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.Uri.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.Uri.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.Uri.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.Uri.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.ValueIsOneOf.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.ValueIsOneOf.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.ValueIsOneOf.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.ValueIsOneOf.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.ValueNotOneOf.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.ValueNotOneOf.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.ValueNotOneOf.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.ValueNotOneOf.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.ValuesEqual.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.ValuesEqual.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.ValuesEqual.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.ValuesEqual.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.WhiteSpaceString.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.WhiteSpaceString.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.WhiteSpaceString.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.WhiteSpaceString.cs diff --git a/Code/Light.GuardClauses/ExceptionFactory/Throw.cs b/src/Light.GuardClauses/ExceptionFactory/Throw.cs similarity index 100% rename from Code/Light.GuardClauses/ExceptionFactory/Throw.cs rename to src/Light.GuardClauses/ExceptionFactory/Throw.cs diff --git a/Code/Light.GuardClauses/Exceptions/AbsoluteUriException.cs b/src/Light.GuardClauses/Exceptions/AbsoluteUriException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/AbsoluteUriException.cs rename to src/Light.GuardClauses/Exceptions/AbsoluteUriException.cs diff --git a/Code/Light.GuardClauses/Exceptions/ArgumentDefaultException.cs b/src/Light.GuardClauses/Exceptions/ArgumentDefaultException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/ArgumentDefaultException.cs rename to src/Light.GuardClauses/Exceptions/ArgumentDefaultException.cs diff --git a/Code/Light.GuardClauses/Exceptions/CollectionException.cs b/src/Light.GuardClauses/Exceptions/CollectionException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/CollectionException.cs rename to src/Light.GuardClauses/Exceptions/CollectionException.cs diff --git a/Code/Light.GuardClauses/Exceptions/EmptyCollectionException.cs b/src/Light.GuardClauses/Exceptions/EmptyCollectionException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/EmptyCollectionException.cs rename to src/Light.GuardClauses/Exceptions/EmptyCollectionException.cs diff --git a/Code/Light.GuardClauses/Exceptions/EmptyGuidException.cs b/src/Light.GuardClauses/Exceptions/EmptyGuidException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/EmptyGuidException.cs rename to src/Light.GuardClauses/Exceptions/EmptyGuidException.cs diff --git a/Code/Light.GuardClauses/Exceptions/EmptyStringException.cs b/src/Light.GuardClauses/Exceptions/EmptyStringException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/EmptyStringException.cs rename to src/Light.GuardClauses/Exceptions/EmptyStringException.cs diff --git a/Code/Light.GuardClauses/Exceptions/EnumValueNotDefinedException.cs b/src/Light.GuardClauses/Exceptions/EnumValueNotDefinedException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/EnumValueNotDefinedException.cs rename to src/Light.GuardClauses/Exceptions/EnumValueNotDefinedException.cs diff --git a/Code/Light.GuardClauses/Exceptions/ExistingItemException.cs b/src/Light.GuardClauses/Exceptions/ExistingItemException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/ExistingItemException.cs rename to src/Light.GuardClauses/Exceptions/ExistingItemException.cs diff --git a/Code/Light.GuardClauses/Exceptions/InvalidCollectionCountException.cs b/src/Light.GuardClauses/Exceptions/InvalidCollectionCountException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/InvalidCollectionCountException.cs rename to src/Light.GuardClauses/Exceptions/InvalidCollectionCountException.cs diff --git a/Code/Light.GuardClauses/Exceptions/InvalidConfigurationException.cs b/src/Light.GuardClauses/Exceptions/InvalidConfigurationException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/InvalidConfigurationException.cs rename to src/Light.GuardClauses/Exceptions/InvalidConfigurationException.cs diff --git a/Code/Light.GuardClauses/Exceptions/InvalidDateTimeException.cs b/src/Light.GuardClauses/Exceptions/InvalidDateTimeException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/InvalidDateTimeException.cs rename to src/Light.GuardClauses/Exceptions/InvalidDateTimeException.cs diff --git a/Code/Light.GuardClauses/Exceptions/InvalidEmailAddressException.cs b/src/Light.GuardClauses/Exceptions/InvalidEmailAddressException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/InvalidEmailAddressException.cs rename to src/Light.GuardClauses/Exceptions/InvalidEmailAddressException.cs diff --git a/Code/Light.GuardClauses/Exceptions/InvalidStateException.cs b/src/Light.GuardClauses/Exceptions/InvalidStateException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/InvalidStateException.cs rename to src/Light.GuardClauses/Exceptions/InvalidStateException.cs diff --git a/Code/Light.GuardClauses/Exceptions/InvalidUriSchemeException.cs b/src/Light.GuardClauses/Exceptions/InvalidUriSchemeException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/InvalidUriSchemeException.cs rename to src/Light.GuardClauses/Exceptions/InvalidUriSchemeException.cs diff --git a/Code/Light.GuardClauses/Exceptions/MissingItemException.cs b/src/Light.GuardClauses/Exceptions/MissingItemException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/MissingItemException.cs rename to src/Light.GuardClauses/Exceptions/MissingItemException.cs diff --git a/Code/Light.GuardClauses/Exceptions/NullableHasNoValueException.cs b/src/Light.GuardClauses/Exceptions/NullableHasNoValueException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/NullableHasNoValueException.cs rename to src/Light.GuardClauses/Exceptions/NullableHasNoValueException.cs diff --git a/Code/Light.GuardClauses/Exceptions/RelativeUriException.cs b/src/Light.GuardClauses/Exceptions/RelativeUriException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/RelativeUriException.cs rename to src/Light.GuardClauses/Exceptions/RelativeUriException.cs diff --git a/Code/Light.GuardClauses/Exceptions/SameObjectReferenceException.cs b/src/Light.GuardClauses/Exceptions/SameObjectReferenceException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/SameObjectReferenceException.cs rename to src/Light.GuardClauses/Exceptions/SameObjectReferenceException.cs diff --git a/Code/Light.GuardClauses/Exceptions/StringDoesNotMatchException.cs b/src/Light.GuardClauses/Exceptions/StringDoesNotMatchException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/StringDoesNotMatchException.cs rename to src/Light.GuardClauses/Exceptions/StringDoesNotMatchException.cs diff --git a/Code/Light.GuardClauses/Exceptions/StringException.cs b/src/Light.GuardClauses/Exceptions/StringException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/StringException.cs rename to src/Light.GuardClauses/Exceptions/StringException.cs diff --git a/Code/Light.GuardClauses/Exceptions/StringLengthException.cs b/src/Light.GuardClauses/Exceptions/StringLengthException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/StringLengthException.cs rename to src/Light.GuardClauses/Exceptions/StringLengthException.cs diff --git a/Code/Light.GuardClauses/Exceptions/SubstringException.cs b/src/Light.GuardClauses/Exceptions/SubstringException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/SubstringException.cs rename to src/Light.GuardClauses/Exceptions/SubstringException.cs diff --git a/Code/Light.GuardClauses/Exceptions/TypeCastException.cs b/src/Light.GuardClauses/Exceptions/TypeCastException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/TypeCastException.cs rename to src/Light.GuardClauses/Exceptions/TypeCastException.cs diff --git a/Code/Light.GuardClauses/Exceptions/UriException.cs b/src/Light.GuardClauses/Exceptions/UriException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/UriException.cs rename to src/Light.GuardClauses/Exceptions/UriException.cs diff --git a/Code/Light.GuardClauses/Exceptions/ValueIsNotOneOfException.cs b/src/Light.GuardClauses/Exceptions/ValueIsNotOneOfException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/ValueIsNotOneOfException.cs rename to src/Light.GuardClauses/Exceptions/ValueIsNotOneOfException.cs diff --git a/Code/Light.GuardClauses/Exceptions/ValueIsOneOfException.cs b/src/Light.GuardClauses/Exceptions/ValueIsOneOfException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/ValueIsOneOfException.cs rename to src/Light.GuardClauses/Exceptions/ValueIsOneOfException.cs diff --git a/Code/Light.GuardClauses/Exceptions/ValuesEqualException.cs b/src/Light.GuardClauses/Exceptions/ValuesEqualException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/ValuesEqualException.cs rename to src/Light.GuardClauses/Exceptions/ValuesEqualException.cs diff --git a/Code/Light.GuardClauses/Exceptions/ValuesNotEqualException.cs b/src/Light.GuardClauses/Exceptions/ValuesNotEqualException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/ValuesNotEqualException.cs rename to src/Light.GuardClauses/Exceptions/ValuesNotEqualException.cs diff --git a/Code/Light.GuardClauses/Exceptions/WhiteSpaceStringException.cs b/src/Light.GuardClauses/Exceptions/WhiteSpaceStringException.cs similarity index 100% rename from Code/Light.GuardClauses/Exceptions/WhiteSpaceStringException.cs rename to src/Light.GuardClauses/Exceptions/WhiteSpaceStringException.cs diff --git a/Code/Light.GuardClauses/FrameworkExtensions/EnumerableExtensions.cs b/src/Light.GuardClauses/FrameworkExtensions/EnumerableExtensions.cs similarity index 100% rename from Code/Light.GuardClauses/FrameworkExtensions/EnumerableExtensions.cs rename to src/Light.GuardClauses/FrameworkExtensions/EnumerableExtensions.cs diff --git a/Code/Light.GuardClauses/FrameworkExtensions/ExpressionExtensions.cs b/src/Light.GuardClauses/FrameworkExtensions/ExpressionExtensions.cs similarity index 100% rename from Code/Light.GuardClauses/FrameworkExtensions/ExpressionExtensions.cs rename to src/Light.GuardClauses/FrameworkExtensions/ExpressionExtensions.cs diff --git a/Code/Light.GuardClauses/FrameworkExtensions/MultiplyAddHash.cs b/src/Light.GuardClauses/FrameworkExtensions/MultiplyAddHash.cs similarity index 100% rename from Code/Light.GuardClauses/FrameworkExtensions/MultiplyAddHash.cs rename to src/Light.GuardClauses/FrameworkExtensions/MultiplyAddHash.cs diff --git a/Code/Light.GuardClauses/FrameworkExtensions/MultiplyAddHashBuilder.cs b/src/Light.GuardClauses/FrameworkExtensions/MultiplyAddHashBuilder.cs similarity index 100% rename from Code/Light.GuardClauses/FrameworkExtensions/MultiplyAddHashBuilder.cs rename to src/Light.GuardClauses/FrameworkExtensions/MultiplyAddHashBuilder.cs diff --git a/Code/Light.GuardClauses/FrameworkExtensions/StringExtensions.Contains.cs b/src/Light.GuardClauses/FrameworkExtensions/StringExtensions.Contains.cs similarity index 100% rename from Code/Light.GuardClauses/FrameworkExtensions/StringExtensions.Contains.cs rename to src/Light.GuardClauses/FrameworkExtensions/StringExtensions.Contains.cs diff --git a/Code/Light.GuardClauses/FrameworkExtensions/StringExtensions.cs b/src/Light.GuardClauses/FrameworkExtensions/StringExtensions.cs similarity index 100% rename from Code/Light.GuardClauses/FrameworkExtensions/StringExtensions.cs rename to src/Light.GuardClauses/FrameworkExtensions/StringExtensions.cs diff --git a/Code/Light.GuardClauses/FrameworkExtensions/TextExtensions.cs b/src/Light.GuardClauses/FrameworkExtensions/TextExtensions.cs similarity index 100% rename from Code/Light.GuardClauses/FrameworkExtensions/TextExtensions.cs rename to src/Light.GuardClauses/FrameworkExtensions/TextExtensions.cs diff --git a/src/Light.GuardClauses/Light.GuardClauses.csproj b/src/Light.GuardClauses/Light.GuardClauses.csproj new file mode 100644 index 00000000..45a5af78 --- /dev/null +++ b/src/Light.GuardClauses/Light.GuardClauses.csproj @@ -0,0 +1,22 @@ + + + + netstandard2.0;netstandard2.1;net8.0 + enable + true + true + + + + + + + + + + + + diff --git a/Code/Light.GuardClauses/OrdinalIgnoreCaseIgnoreWhiteSpaceComparer.cs b/src/Light.GuardClauses/OrdinalIgnoreCaseIgnoreWhiteSpaceComparer.cs similarity index 100% rename from Code/Light.GuardClauses/OrdinalIgnoreCaseIgnoreWhiteSpaceComparer.cs rename to src/Light.GuardClauses/OrdinalIgnoreCaseIgnoreWhiteSpaceComparer.cs diff --git a/Code/Light.GuardClauses/OrdinalIgnoreWhiteSpaceComparer.cs b/src/Light.GuardClauses/OrdinalIgnoreWhiteSpaceComparer.cs similarity index 100% rename from Code/Light.GuardClauses/OrdinalIgnoreWhiteSpaceComparer.cs rename to src/Light.GuardClauses/OrdinalIgnoreWhiteSpaceComparer.cs diff --git a/Code/Light.GuardClauses/Public.Light.GuardClauses.snk b/src/Light.GuardClauses/Public.Light.GuardClauses.snk similarity index 100% rename from Code/Light.GuardClauses/Public.Light.GuardClauses.snk rename to src/Light.GuardClauses/Public.Light.GuardClauses.snk diff --git a/Code/Light.GuardClauses/Range.cs b/src/Light.GuardClauses/Range.cs similarity index 100% rename from Code/Light.GuardClauses/Range.cs rename to src/Light.GuardClauses/Range.cs diff --git a/Code/Light.GuardClauses/ReSharperAnnotations.cs b/src/Light.GuardClauses/ReSharperAnnotations.cs similarity index 100% rename from Code/Light.GuardClauses/ReSharperAnnotations.cs rename to src/Light.GuardClauses/ReSharperAnnotations.cs diff --git a/Code/Light.GuardClauses/RegularExpressions.cs b/src/Light.GuardClauses/RegularExpressions.cs similarity index 100% rename from Code/Light.GuardClauses/RegularExpressions.cs rename to src/Light.GuardClauses/RegularExpressions.cs diff --git a/Code/Light.GuardClauses/StringComparisonType.cs b/src/Light.GuardClauses/StringComparisonType.cs similarity index 100% rename from Code/Light.GuardClauses/StringComparisonType.cs rename to src/Light.GuardClauses/StringComparisonType.cs diff --git a/Code/Light.GuardClauses/Types.cs b/src/Light.GuardClauses/Types.cs similarity index 100% rename from Code/Light.GuardClauses/Types.cs rename to src/Light.GuardClauses/Types.cs diff --git a/Code/Light.GuardClauses/ValidatedNotNullAttribute.cs b/src/Light.GuardClauses/ValidatedNotNullAttribute.cs similarity index 100% rename from Code/Light.GuardClauses/ValidatedNotNullAttribute.cs rename to src/Light.GuardClauses/ValidatedNotNullAttribute.cs diff --git a/Code/Light.GuardClauses/light-logo.png b/src/Light.GuardClauses/light-logo.png similarity index 100% rename from Code/Light.GuardClauses/light-logo.png rename to src/Light.GuardClauses/light-logo.png diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props new file mode 100644 index 00000000..4f061c3e --- /dev/null +++ b/tests/Directory.Build.props @@ -0,0 +1,14 @@ + + + + + true + + + + + + + + + diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/DiagnosticIdTests.cs b/tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/DiagnosticIdTests.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/DiagnosticIdTests.cs rename to tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/DiagnosticIdTests.cs diff --git a/tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj b/tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj new file mode 100644 index 00000000..8c764e01 --- /dev/null +++ b/tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests.csproj @@ -0,0 +1,17 @@ + + + + net8.0 + + + + + + + + + PreserveNewest + + + + diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/ParameterNameAndMessageCommentsTests.cs b/tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/ParameterNameAndMessageCommentsTests.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/ParameterNameAndMessageCommentsTests.cs rename to tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/ParameterNameAndMessageCommentsTests.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/RoslynExtensions.cs b/tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/RoslynExtensions.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/RoslynExtensions.cs rename to tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/RoslynExtensions.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Throw.cs b/tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Throw.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Throw.cs rename to tests/Light.GuardClauses.InternalRoslynAnalyzers.Tests/Throw.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/GeneratedFileBuildValidatorTests.cs b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/GeneratedFileBuildValidatorTests.cs similarity index 75% rename from Code/Light.GuardClauses.SourceCodeTransformation.Tests/GeneratedFileBuildValidatorTests.cs rename to tests/Light.GuardClauses.SourceCodeTransformation.Tests/GeneratedFileBuildValidatorTests.cs index ca0f8119..c1399fe4 100644 --- a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/GeneratedFileBuildValidatorTests.cs +++ b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/GeneratedFileBuildValidatorTests.cs @@ -1,4 +1,5 @@ -using System.IO; +using System; +using System.IO; using FluentAssertions; using Xunit; @@ -9,14 +10,34 @@ public static class GeneratedFileBuildValidatorTests [Fact] public static void TryFindSourceValidationProjectFindsProjectFromRepositoryRoot() { - var repositoryRoot = TestEnvironment.CodeDirectory.Parent!.FullName; var expectedProjectPath = Path.Combine( - TestEnvironment.CodeDirectory.FullName, + TestEnvironment.RepositoryRoot.FullName, + "tools", + "source-export", "Light.GuardClauses.SourceValidation", "Light.GuardClauses.SourceValidation.csproj" ); - GeneratedFileBuildValidator.TryFindSourceValidationProject([repositoryRoot]).Should().Be(expectedProjectPath); + GeneratedFileBuildValidator.TryFindSourceValidationProject([TestEnvironment.RepositoryRoot.FullName]) + .Should().Be(expectedProjectPath); + } + + [Fact] + public static void TryFindSourceValidationProjectFindsProjectFromTestOutputDirectory() + { + GeneratedFileBuildValidator.TryFindSourceValidationProject([AppContext.BaseDirectory]) + .Should().NotBeNull(); + } + + [Fact] + public static void SourceFileMergeOptionsUseRepositoryLayoutDefaults() + { + var options = new SourceFileMergeOptions(); + + options.SourceFolder.Should().Be(TestEnvironment.SourceDirectory.FullName); + options.TargetFile.Should().Be( + Path.Combine(TestEnvironment.RepositoryRoot.FullName, "Light.GuardClauses.SingleFile.cs") + ); } [Fact] diff --git a/tests/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj new file mode 100644 index 00000000..53dca0ed --- /dev/null +++ b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/Light.GuardClauses.SourceCodeTransformation.Tests.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + + + + + + + + + + + diff --git a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/ParseCSharpFilesWithRoslynTests.cs b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/ParseCSharpFilesWithRoslynTests.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation.Tests/ParseCSharpFilesWithRoslynTests.cs rename to tests/Light.GuardClauses.SourceCodeTransformation.Tests/ParseCSharpFilesWithRoslynTests.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerFrameworkTests.cs b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerFrameworkTests.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerFrameworkTests.cs rename to tests/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerFrameworkTests.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerWhitelistTests.cs b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerWhitelistTests.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerWhitelistTests.cs rename to tests/Light.GuardClauses.SourceCodeTransformation.Tests/SourceFileMergerWhitelistTests.cs diff --git a/tests/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs new file mode 100644 index 00000000..d15e03ba --- /dev/null +++ b/tests/Light.GuardClauses.SourceCodeTransformation.Tests/TestEnvironment.cs @@ -0,0 +1,55 @@ +using System; +using System.IO; + +namespace Light.GuardClauses.SourceCodeTransformation.Tests; + +internal static class TestEnvironment +{ + private const string RepositoryMarkerFileName = "Light.GuardClauses.sln"; + + public static DirectoryInfo RepositoryRoot { get; } = FindRepositoryRoot(); + + public static DirectoryInfo SourceDirectory { get; } = + new (Path.Combine(RepositoryRoot.FullName, "src", "Light.GuardClauses")); + + public static DirectoryInfo FindRepositoryRoot() + { + var searchRoots = new[] { Directory.GetCurrentDirectory(), AppContext.BaseDirectory }; + foreach (var searchRoot in searchRoots) + { + var currentDirectory = new DirectoryInfo(searchRoot); + while (currentDirectory != null) + { + if (File.Exists(Path.Combine(currentDirectory.FullName, RepositoryMarkerFileName))) + { + return currentDirectory; + } + + currentDirectory = currentDirectory.Parent; + } + } + + throw new InvalidOperationException( + $"Could not locate the repository root using \"{RepositoryMarkerFileName}\"." + ); + } +} + +internal sealed class TemporaryDirectory : IDisposable +{ + public TemporaryDirectory() + { + DirectoryPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N")); + Directory.CreateDirectory(DirectoryPath); + } + + public string DirectoryPath { get; } + + public void Dispose() + { + if (Directory.Exists(DirectoryPath)) + { + Directory.Delete(DirectoryPath, true); + } + } +} diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/IsNullOrEmptyTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/IsNullOrEmptyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/IsNullOrEmptyTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/IsNullOrEmptyTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustBeOneOfTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustBeOneOfTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustBeOneOfTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustBeOneOfTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustContainTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustContainTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustContainTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustContainTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveCountTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveCountTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveCountTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveCountTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthInTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthInTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthInTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthInTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveLengthTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumCountTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumCountTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumCountTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumCountTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumLengthTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumLengthTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumLengthTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMaximumLengthTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumCountTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumCountTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumCountTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumCountTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumLengthTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumLengthTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumLengthTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustHaveMinimumLengthTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeDefaultOrEmptyTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeDefaultOrEmptyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeDefaultOrEmptyTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeDefaultOrEmptyTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeNullOrEmptyTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeNullOrEmptyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeNullOrEmptyTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeNullOrEmptyTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeOneOfTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeOneOfTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeOneOfTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotBeOneOfTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotContainTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotContainTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/MustNotContainTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/MustNotContainTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeLongerThanTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeLongerThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeLongerThanTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeLongerThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustBeShorterThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustHaveLengthTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustHaveLengthTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustHaveLengthTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustHaveLengthTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustNotBeLongerThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustNotBeLongerThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustNotBeLongerThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/ReadOnlySpanMustNotBeLongerThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeLongerThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustBeShorterThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustHaveLengthTests.cs b/tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustHaveLengthTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CollectionAssertions/SpanMustHaveLengthTests.cs rename to tests/Light.GuardClauses.Tests/CollectionAssertions/SpanMustHaveLengthTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/InvalidArgumentTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/InvalidArgumentTests.cs similarity index 96% rename from Code/Light.GuardClauses.Tests/CommonAssertions/InvalidArgumentTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/InvalidArgumentTests.cs index e25717fa..b9bd60ad 100644 --- a/Code/Light.GuardClauses.Tests/CommonAssertions/InvalidArgumentTests.cs +++ b/tests/Light.GuardClauses.Tests/CommonAssertions/InvalidArgumentTests.cs @@ -1,59 +1,59 @@ -using System; -using FluentAssertions; -using Xunit; - -namespace Light.GuardClauses.Tests.CommonAssertions; - -public static class InvalidArgumentTests -{ - [Theory] - [DefaultVariablesData] - public static void ConditionTrue(string parameterName) - { - var act = () => Check.InvalidArgument(true, parameterName); - - var exceptionAssertion = act.Should().Throw().And; - exceptionAssertion.ParamName.Should().BeSameAs(parameterName); - exceptionAssertion.Message.Should().Contain($"{parameterName} is invalid."); - } - - [Fact] - public static void ConditionFalse() - { - Check.InvalidArgument(false); - } - - [Fact] - public static void ConditionFalseCustomException() - { - Check.InvalidArgument(false, () => new Exception()); - } - - [Fact] - public static void ConditionFalseCustomExceptionWithParameter() - { - Check.InvalidArgument(false, new object(), _ => new Exception()); - } - - [Fact] - public static void CustomException() => - Test.CustomException(exceptionFactory => Check.InvalidArgument(true, exceptionFactory)); - - [Fact] - public static void CustomExceptionWithParameter() => - Test.CustomException(new object(), - (parameter, exceptionFactory) => Check.InvalidArgument(true, parameter, exceptionFactory)); - - [Fact] - public static void CustomMessage() => - Test.CustomMessage(message => Check.InvalidArgument(true, message: message)); - - [Fact] - public static void DefaultMessage() - { - var act = () => Check.InvalidArgument(true); - - act.Should().Throw() - .And.Message.Should().Be("The value is invalid."); - } +using System; +using FluentAssertions; +using Xunit; + +namespace Light.GuardClauses.Tests.CommonAssertions; + +public static class InvalidArgumentTests +{ + [Theory] + [DefaultVariablesData] + public static void ConditionTrue(string parameterName) + { + var act = () => Check.InvalidArgument(true, parameterName); + + var exceptionAssertion = act.Should().Throw().And; + exceptionAssertion.ParamName.Should().BeSameAs(parameterName); + exceptionAssertion.Message.Should().Contain($"{parameterName} is invalid."); + } + + [Fact] + public static void ConditionFalse() + { + Check.InvalidArgument(false); + } + + [Fact] + public static void ConditionFalseCustomException() + { + Check.InvalidArgument(false, () => new Exception()); + } + + [Fact] + public static void ConditionFalseCustomExceptionWithParameter() + { + Check.InvalidArgument(false, new object(), _ => new Exception()); + } + + [Fact] + public static void CustomException() => + Test.CustomException(exceptionFactory => Check.InvalidArgument(true, exceptionFactory)); + + [Fact] + public static void CustomExceptionWithParameter() => + Test.CustomException(new object(), + (parameter, exceptionFactory) => Check.InvalidArgument(true, parameter, exceptionFactory)); + + [Fact] + public static void CustomMessage() => + Test.CustomMessage(message => Check.InvalidArgument(true, message: message)); + + [Fact] + public static void DefaultMessage() + { + var act = () => Check.InvalidArgument(true); + + act.Should().Throw() + .And.Message.Should().Be("The value is invalid."); + } } \ No newline at end of file diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/InvalidOperationTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/InvalidOperationTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/InvalidOperationTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/InvalidOperationTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/InvalidStateTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/InvalidStateTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/InvalidStateTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/InvalidStateTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/IsApproximatelyTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/IsApproximatelyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/IsApproximatelyTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/IsApproximatelyTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/IsGreaterThanOrApproximatelyTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/IsGreaterThanOrApproximatelyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/IsGreaterThanOrApproximatelyTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/IsGreaterThanOrApproximatelyTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/IsLessThanOrApproximatelyTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/IsLessThanOrApproximatelyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/IsLessThanOrApproximatelyTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/IsLessThanOrApproximatelyTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/IsSameAsTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/IsSameAsTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/IsSameAsTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/IsSameAsTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/IsValidEnumValueTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/IsValidEnumValueTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/IsValidEnumValueTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/IsValidEnumValueTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustBeOfTypeTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustBeOfTypeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustBeOfTypeTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustBeOfTypeTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustBeTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustBeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustBeTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustBeTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustBeValidEnumValueTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustBeValidEnumValueTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustBeValidEnumValueTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustBeValidEnumValueTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustHaveValueTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustHaveValueTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustHaveValueTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustHaveValueTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeDefaultTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeDefaultTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeDefaultTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeDefaultTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeEmptyGuidTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeEmptyGuidTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeEmptyGuidTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeEmptyGuidTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullReferenceTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullReferenceTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullReferenceTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullReferenceTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeNullTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeSameAsTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeSameAsTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeSameAsTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeSameAsTests.cs diff --git a/Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeTests.cs b/tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/CommonAssertions/MustNotBeTests.cs rename to tests/Light.GuardClauses.Tests/CommonAssertions/MustNotBeTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/IsInTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/IsInTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/IsInTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/IsInTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/IsNotInTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/IsNotInTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/IsNotInTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/IsNotInTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeApproximatelyTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeApproximatelyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeApproximatelyTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeApproximatelyTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrApproximatelyTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrApproximatelyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrApproximatelyTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrApproximatelyTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeGreaterThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeInTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeInTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeInTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeInTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrApproximatelyTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrApproximatelyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrApproximatelyTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrApproximatelyTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustBeLessThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeApproximatelyTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeApproximatelyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeApproximatelyTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeApproximatelyTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeGreaterThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeInTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeInTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeInTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeInTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/MustNotBeLessThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/ComparableAssertions/RangeTests.cs b/tests/Light.GuardClauses.Tests/ComparableAssertions/RangeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ComparableAssertions/RangeTests.cs rename to tests/Light.GuardClauses.Tests/ComparableAssertions/RangeTests.cs diff --git a/Code/Light.GuardClauses.Tests/DateTimeAssertions/MustBeLocalTests.cs b/tests/Light.GuardClauses.Tests/DateTimeAssertions/MustBeLocalTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/DateTimeAssertions/MustBeLocalTests.cs rename to tests/Light.GuardClauses.Tests/DateTimeAssertions/MustBeLocalTests.cs diff --git a/Code/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUnspecifiedTests.cs b/tests/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUnspecifiedTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUnspecifiedTests.cs rename to tests/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUnspecifiedTests.cs diff --git a/Code/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUtcTests.cs b/tests/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUtcTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUtcTests.cs rename to tests/Light.GuardClauses.Tests/DateTimeAssertions/MustBeUtcTests.cs diff --git a/Code/Light.GuardClauses.Tests/DefaultVariablesData.cs b/tests/Light.GuardClauses.Tests/DefaultVariablesData.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/DefaultVariablesData.cs rename to tests/Light.GuardClauses.Tests/DefaultVariablesData.cs diff --git a/Code/Light.GuardClauses.Tests/EqualityComparerStub.cs b/tests/Light.GuardClauses.Tests/EqualityComparerStub.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/EqualityComparerStub.cs rename to tests/Light.GuardClauses.Tests/EqualityComparerStub.cs diff --git a/Code/Light.GuardClauses.Tests/ExecuteReadOnlySpanAssertion.cs b/tests/Light.GuardClauses.Tests/ExecuteReadOnlySpanAssertion.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/ExecuteReadOnlySpanAssertion.cs rename to tests/Light.GuardClauses.Tests/ExecuteReadOnlySpanAssertion.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/AsArrayTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/AsArrayTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/AsArrayTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/AsArrayTests.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/AsListTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/AsListTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/AsListTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/AsListTests.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/AsReadOnlyListTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/AsReadOnlyListTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/AsReadOnlyListTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/AsReadOnlyListTests.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/ExtractFieldTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/ExtractFieldTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/ExtractFieldTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/ExtractFieldTests.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/ExtractPropertyTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/ExtractPropertyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/ExtractPropertyTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/ExtractPropertyTests.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/ForEachTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/ForEachTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/ForEachTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/ForEachTests.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/MultiplyAddHashTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/MultiplyAddHashTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/MultiplyAddHashTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/MultiplyAddHashTests.cs diff --git a/Code/Light.GuardClauses.Tests/FrameworkExtensions/ToStringRepresentationTests.cs b/tests/Light.GuardClauses.Tests/FrameworkExtensions/ToStringRepresentationTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/FrameworkExtensions/ToStringRepresentationTests.cs rename to tests/Light.GuardClauses.Tests/FrameworkExtensions/ToStringRepresentationTests.cs diff --git a/Code/Light.GuardClauses.Tests/Issues/Issue66.cs b/tests/Light.GuardClauses.Tests/Issues/Issue66.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/Issues/Issue66.cs rename to tests/Light.GuardClauses.Tests/Issues/Issue66.cs diff --git a/Code/Light.GuardClauses.Tests/Issues/Issue72NotNullAttributeTests.cs b/tests/Light.GuardClauses.Tests/Issues/Issue72NotNullAttributeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/Issues/Issue72NotNullAttributeTests.cs rename to tests/Light.GuardClauses.Tests/Issues/Issue72NotNullAttributeTests.cs diff --git a/Code/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj b/tests/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj similarity index 51% rename from Code/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj rename to tests/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj index 9439778f..7f9b667a 100644 --- a/Code/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj +++ b/tests/Light.GuardClauses.Tests/Light.GuardClauses.Tests.csproj @@ -4,17 +4,11 @@ net8.0 - false - 12 true - - - - - + - \ No newline at end of file + diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/EqualsTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/EqualsTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/EqualsTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/EqualsTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/InvalidEmailAddresses.cs b/tests/Light.GuardClauses.Tests/StringAssertions/InvalidEmailAddresses.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/InvalidEmailAddresses.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/InvalidEmailAddresses.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/IsEmailAddressTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/IsEmailAddressTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/IsEmailAddressTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/IsEmailAddressTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/IsEmptyOrWhiteSpaceTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/IsEmptyOrWhiteSpaceTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/IsEmptyOrWhiteSpaceTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/IsEmptyOrWhiteSpaceTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/IsFileExtensionTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/IsFileExtensionTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/IsFileExtensionTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/IsFileExtensionTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/IsNewLineTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/IsNewLineTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/IsNewLineTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/IsNewLineTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/IsNullOrEmptyTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/IsNullOrEmptyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/IsNullOrEmptyTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/IsNullOrEmptyTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeEmailAddressTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeEmailAddressTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeEmailAddressTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeEmailAddressTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeFileExtensionTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeFileExtensionTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeFileExtensionTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeFileExtensionTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeLongerThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeNewLineTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeNewLineTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeNewLineTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeNewLineTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanOrEqualToTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanOrEqualToTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanOrEqualToTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanOrEqualToTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeShorterThanTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeSubstringOfTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeSubstringOfTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeSubstringOfTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeSubstringOfTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtEndTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtEndTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtEndTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtEndTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtStartTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtStartTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtStartTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedAtStartTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustBeTrimmedTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustContainTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustContainTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustContainTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustContainTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustEndWithTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustEndWithTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustEndWithTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustEndWithTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthInTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthInTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthInTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthInTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustHaveLengthTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustMatchTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustMatchTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustMatchTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustMatchTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrEmptyTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrEmptyTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrEmptyTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrEmptyTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrWhiteSpaceTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrWhiteSpaceTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrWhiteSpaceTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeNullOrWhiteSpaceTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeSubstringOfTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeSubstringOfTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeSubstringOfTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeSubstringOfTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustNotBeTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustNotBeTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustNotContainTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustNotContainTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustNotContainTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustNotContainTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustNotEndWithTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustNotEndWithTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustNotEndWithTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustNotEndWithTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustNotStartWithTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustNotStartWithTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustNotStartWithTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustNotStartWithTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/MustStartWithTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/MustStartWithTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/MustStartWithTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/MustStartWithTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreCaseIgnoreWhiteSpaceComparerTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreCaseIgnoreWhiteSpaceComparerTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreCaseIgnoreWhiteSpaceComparerTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreCaseIgnoreWhiteSpaceComparerTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreWhiteSpaceComparerTests.cs b/tests/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreWhiteSpaceComparerTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreWhiteSpaceComparerTests.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/OrdinalIgnoreWhiteSpaceComparerTests.cs diff --git a/Code/Light.GuardClauses.Tests/StringAssertions/ValidEmailAddresses.cs b/tests/Light.GuardClauses.Tests/StringAssertions/ValidEmailAddresses.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/StringAssertions/ValidEmailAddresses.cs rename to tests/Light.GuardClauses.Tests/StringAssertions/ValidEmailAddresses.cs diff --git a/Code/Light.GuardClauses.Tests/Test.cs b/tests/Light.GuardClauses.Tests/Test.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/Test.cs rename to tests/Light.GuardClauses.Tests/Test.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/DerivesFromTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/DerivesFromTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/DerivesFromTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/DerivesFromTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/EquivalentTypeCompererTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/EquivalentTypeCompererTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/EquivalentTypeCompererTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/EquivalentTypeCompererTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/GenericTypeKinds.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/GenericTypeKinds.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/GenericTypeKinds.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/GenericTypeKinds.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/ImplementsTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/ImplementsTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/ImplementsTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/ImplementsTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/InheritsFromTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/InheritsFromTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/InheritsFromTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/InheritsFromTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/IsEquivalentToTypeTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/IsEquivalentToTypeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/IsEquivalentToTypeTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/IsEquivalentToTypeTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/IsOpenConstructedGenericTypeTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/IsOpenConstructedGenericTypeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/IsOpenConstructedGenericTypeTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/IsOpenConstructedGenericTypeTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/IsOrDerivesFromTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/IsOrDerivesFromTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/IsOrDerivesFromTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/IsOrDerivesFromTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/IsOrImplementsTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/IsOrImplementsTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/IsOrImplementsTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/IsOrImplementsTests.cs diff --git a/Code/Light.GuardClauses.Tests/TypeAssertions/IsOrInheritsFromTests.cs b/tests/Light.GuardClauses.Tests/TypeAssertions/IsOrInheritsFromTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/TypeAssertions/IsOrInheritsFromTests.cs rename to tests/Light.GuardClauses.Tests/TypeAssertions/IsOrInheritsFromTests.cs diff --git a/Code/Light.GuardClauses.Tests/UriAssertions/MustBeAbsoluteUriTests.cs b/tests/Light.GuardClauses.Tests/UriAssertions/MustBeAbsoluteUriTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/UriAssertions/MustBeAbsoluteUriTests.cs rename to tests/Light.GuardClauses.Tests/UriAssertions/MustBeAbsoluteUriTests.cs diff --git a/Code/Light.GuardClauses.Tests/UriAssertions/MustBeRelativeUriTests.cs b/tests/Light.GuardClauses.Tests/UriAssertions/MustBeRelativeUriTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/UriAssertions/MustBeRelativeUriTests.cs rename to tests/Light.GuardClauses.Tests/UriAssertions/MustBeRelativeUriTests.cs diff --git a/Code/Light.GuardClauses.Tests/UriAssertions/MustHaveOneSchemeOfTests.cs b/tests/Light.GuardClauses.Tests/UriAssertions/MustHaveOneSchemeOfTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/UriAssertions/MustHaveOneSchemeOfTests.cs rename to tests/Light.GuardClauses.Tests/UriAssertions/MustHaveOneSchemeOfTests.cs diff --git a/Code/Light.GuardClauses.Tests/UriAssertions/MustHaveSchemeTests.cs b/tests/Light.GuardClauses.Tests/UriAssertions/MustHaveSchemeTests.cs similarity index 100% rename from Code/Light.GuardClauses.Tests/UriAssertions/MustHaveSchemeTests.cs rename to tests/Light.GuardClauses.Tests/UriAssertions/MustHaveSchemeTests.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers/Constants.cs b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Constants.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers/Constants.cs rename to tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Constants.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers/Descriptors.cs b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Descriptors.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers/Descriptors.cs rename to tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Descriptors.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers/Extensions.cs b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Extensions.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers/Extensions.cs rename to tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Extensions.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj similarity index 76% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj rename to tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj index 83d7c0ae..c4ce1959 100644 --- a/Code/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj +++ b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/Light.GuardClauses.InternalRoslynAnalyzers.csproj @@ -6,7 +6,8 @@ + - \ No newline at end of file + diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers/MessageXmlCommentFix.cs b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/MessageXmlCommentFix.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers/MessageXmlCommentFix.cs rename to tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/MessageXmlCommentFix.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers/ParameterNameXmlCommentFix.cs b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/ParameterNameXmlCommentFix.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers/ParameterNameXmlCommentFix.cs rename to tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/ParameterNameXmlCommentFix.cs diff --git a/Code/Light.GuardClauses.InternalRoslynAnalyzers/XmlCommentAnalyzer.cs b/tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/XmlCommentAnalyzer.cs similarity index 100% rename from Code/Light.GuardClauses.InternalRoslynAnalyzers/XmlCommentAnalyzer.cs rename to tools/analyzers/Light.GuardClauses.InternalRoslynAnalyzers/XmlCommentAnalyzer.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/ArrayTextSink.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/ArrayTextSink.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/ArrayTextSink.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/ArrayTextSink.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/AssertionWhitelist.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/AssertionWhitelist.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/AssertionWhitelist.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/AssertionWhitelist.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/CleanupStep.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/CleanupStep.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/CleanupStep.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/CleanupStep.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/Extensions.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/Extensions.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/Extensions.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/Extensions.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/GeneratedFileBuildValidator.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/GeneratedFileBuildValidator.cs similarity index 69% rename from Code/Light.GuardClauses.SourceCodeTransformation/GeneratedFileBuildValidator.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/GeneratedFileBuildValidator.cs index 77cc1a52..c452e409 100644 --- a/Code/Light.GuardClauses.SourceCodeTransformation/GeneratedFileBuildValidator.cs +++ b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/GeneratedFileBuildValidator.cs @@ -7,7 +7,6 @@ namespace Light.GuardClauses.SourceCodeTransformation; public static class GeneratedFileBuildValidator { - private const string SourceValidationProjectDirectoryName = "Light.GuardClauses.SourceValidation"; private const string SourceValidationProjectFileName = "Light.GuardClauses.SourceValidation.csproj"; public static int Validate(SourceTargetFramework targetFramework, string targetFile) @@ -90,59 +89,17 @@ private static string FindRequiredSourceValidationProject() public static string? TryFindSourceValidationProject(IEnumerable searchRoots) { - var searchedRoots = new HashSet(StringComparer.Ordinal); - foreach (var searchRoot in searchRoots) - { - if (string.IsNullOrWhiteSpace(searchRoot)) - { - continue; - } - - var fullSearchRoot = Path.GetFullPath(searchRoot); - if (!searchedRoots.Add(fullSearchRoot)) - { - continue; - } - - var currentDirectory = new DirectoryInfo(fullSearchRoot); - if (!currentDirectory.Exists) - { - continue; - } - - while (currentDirectory != null) - { - var projectPath = FindSourceValidationProjectIn(currentDirectory.FullName); - if (projectPath != null) - { - return projectPath; - } - - var codeDirectoryProjectPath = FindSourceValidationProjectIn( - Path.Combine(currentDirectory.FullName, "Code") - ); - if (codeDirectoryProjectPath != null) - { - return codeDirectoryProjectPath; - } - - currentDirectory = currentDirectory.Parent; - } - } - - return null; - } - - private static string? FindSourceValidationProjectIn(string directoryPath) - { - if (!Directory.Exists(directoryPath)) + var repositoryRoot = RepositoryLayout.TryFindRepositoryRoot(searchRoots); + if (repositoryRoot == null) { return null; } var projectPath = Path.Combine( - directoryPath, - SourceValidationProjectDirectoryName, + repositoryRoot.FullName, + "tools", + "source-export", + "Light.GuardClauses.SourceValidation", SourceValidationProjectFileName ); return File.Exists(projectPath) ? projectPath : null; diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/Light.GuardClauses.SourceCodeTransformation.csproj b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/Light.GuardClauses.SourceCodeTransformation.csproj similarity index 88% rename from Code/Light.GuardClauses.SourceCodeTransformation/Light.GuardClauses.SourceCodeTransformation.csproj rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/Light.GuardClauses.SourceCodeTransformation.csproj index 663ae060..79b03652 100644 --- a/Code/Light.GuardClauses.SourceCodeTransformation/Light.GuardClauses.SourceCodeTransformation.csproj +++ b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/Light.GuardClauses.SourceCodeTransformation.csproj @@ -1,7 +1,5 @@ - - Exe net8.0 @@ -9,7 +7,7 @@ - + diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/Program.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/Program.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/Program.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/Program.cs diff --git a/tools/source-export/Light.GuardClauses.SourceCodeTransformation/RepositoryLayout.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/RepositoryLayout.cs new file mode 100644 index 00000000..cb295d76 --- /dev/null +++ b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/RepositoryLayout.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.IO; + +namespace Light.GuardClauses.SourceCodeTransformation; + +internal static class RepositoryLayout +{ + private const string RepositoryMarkerFileName = "Light.GuardClauses.sln"; + + public static DirectoryInfo? TryFindRepositoryRoot(IEnumerable searchRoots) + { + var searchedDirectories = new HashSet(StringComparer.Ordinal); + foreach (var searchRoot in searchRoots) + { + if (string.IsNullOrWhiteSpace(searchRoot)) + { + continue; + } + + var currentDirectory = new DirectoryInfo(Path.GetFullPath(searchRoot)); + if (!currentDirectory.Exists) + { + continue; + } + + while (currentDirectory != null && searchedDirectories.Add(currentDirectory.FullName)) + { + if (File.Exists(Path.Combine(currentDirectory.FullName, RepositoryMarkerFileName))) + { + return currentDirectory; + } + + currentDirectory = currentDirectory.Parent; + } + } + + return null; + } +} diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/SourceFileMergeOptions.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceFileMergeOptions.cs similarity index 76% rename from Code/Light.GuardClauses.SourceCodeTransformation/SourceFileMergeOptions.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceFileMergeOptions.cs index d38b7c1e..2bea4b40 100644 --- a/Code/Light.GuardClauses.SourceCodeTransformation/SourceFileMergeOptions.cs +++ b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceFileMergeOptions.cs @@ -1,4 +1,5 @@ -using System.IO; +using System; +using System.IO; namespace Light.GuardClauses.SourceCodeTransformation; @@ -8,19 +9,16 @@ public SourceFileMergeOptions() { try { - var currentDirectory = new DirectoryInfo("."); - while (currentDirectory != null && currentDirectory.Name != "Code") - { - currentDirectory = currentDirectory.Parent; - } - - if (currentDirectory == null) + var repositoryRoot = RepositoryLayout.TryFindRepositoryRoot( + [Directory.GetCurrentDirectory(), AppContext.BaseDirectory] + ); + if (repositoryRoot == null) { return; } - TargetFile = Path.Combine(currentDirectory.Parent!.FullName, "Light.GuardClauses.SingleFile.cs"); - SourceFolder = Path.Combine(currentDirectory.FullName, "Light.GuardClauses"); + TargetFile = Path.Combine(repositoryRoot.FullName, "Light.GuardClauses.SingleFile.cs"); + SourceFolder = Path.Combine(repositoryRoot.FullName, "src", "Light.GuardClauses"); } // ReSharper disable once EmptyGeneralCatchClause catch { } diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/SourceFileMerger.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceFileMerger.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/SourceFileMerger.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceFileMerger.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/SourceReachabilityAnalyzer.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceReachabilityAnalyzer.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/SourceReachabilityAnalyzer.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceReachabilityAnalyzer.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/SourceTargetFramework.cs b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceTargetFramework.cs similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/SourceTargetFramework.cs rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/SourceTargetFramework.cs diff --git a/Code/Light.GuardClauses.SourceCodeTransformation/settings.json b/tools/source-export/Light.GuardClauses.SourceCodeTransformation/settings.json similarity index 100% rename from Code/Light.GuardClauses.SourceCodeTransformation/settings.json rename to tools/source-export/Light.GuardClauses.SourceCodeTransformation/settings.json diff --git a/Code/Light.GuardClauses.SourceValidation/Light.GuardClauses.SourceValidation.csproj b/tools/source-export/Light.GuardClauses.SourceValidation/Light.GuardClauses.SourceValidation.csproj similarity index 75% rename from Code/Light.GuardClauses.SourceValidation/Light.GuardClauses.SourceValidation.csproj rename to tools/source-export/Light.GuardClauses.SourceValidation/Light.GuardClauses.SourceValidation.csproj index 71b193bf..d139a42e 100644 --- a/Code/Light.GuardClauses.SourceValidation/Light.GuardClauses.SourceValidation.csproj +++ b/tools/source-export/Light.GuardClauses.SourceValidation/Light.GuardClauses.SourceValidation.csproj @@ -2,13 +2,9 @@ netstandard2.0;net8.0 - 12.0 false true disable - Kenny Pflug - Kenny Pflug - Copyright © Kenny Pflug 2016, 2025