diff --git a/Directory.Packages.props b/Directory.Packages.props
index 37102ab..94e6fe9 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -10,7 +10,8 @@
-
+
+
diff --git a/src/NetEvolve.FrameShift/Generation/TestSurfaceManifestGenerator.cs b/src/NetEvolve.FrameShift/Generation/TestSurfaceManifestGenerator.cs
index 5308bf2..21441b5 100644
--- a/src/NetEvolve.FrameShift/Generation/TestSurfaceManifestGenerator.cs
+++ b/src/NetEvolve.FrameShift/Generation/TestSurfaceManifestGenerator.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Generation;
+namespace NetEvolve.FrameShift.Generation;
using System.Collections.Immutable;
using System.Text;
@@ -52,8 +52,8 @@ namespace NetEvolve.FrameShift.Generation;
/// grows with the size of the test project. This is unavoidable — the test surface is a property of the
/// entire compilation, not of any single syntax node — and it is stated here plainly rather than hidden.
/// If that cost is not wanted, disable FrameShift for the project by setting the MSBuild property
-/// FrameShiftEnabled to false, or keep the analysis and only stop the manifest from being
-/// written by setting FrameShiftWriteTestSurfaceManifest to false.
+/// FrameShiftEnabled to , or keep the analysis and only stop the manifest from being
+/// written by setting FrameShiftWriteTestSurfaceManifest to .
///
///
[Generator(LanguageNames.CSharp)]
diff --git a/src/NetEvolve.FrameShift/Mutations/MutationKind.cs b/src/NetEvolve.FrameShift/Mutations/MutationKind.cs
index 757d249..05c4679 100644
--- a/src/NetEvolve.FrameShift/Mutations/MutationKind.cs
+++ b/src/NetEvolve.FrameShift/Mutations/MutationKind.cs
@@ -93,7 +93,7 @@ internal enum MutationKind
ShiftOperator,
///
- /// The checked and unchecked keyword of a checked expression or statement, swapped for
+ /// The and keyword of a checked expression or statement, swapped for
/// its counterpart. The keyword only decides how arithmetic overflow is handled at run time, so a
/// test suite that never distinguishes the two cannot tell whether the choice is actually enforced.
///
@@ -228,7 +228,7 @@ internal enum MutationKind
///
/// The element list of an array or collection initializer and of a collection expression, emptied
- /// when it carries elements and, where provably safe, filled with a single default element
+ /// when it carries elements and, where provably safe, filled with a single element
/// when it is empty. An emptied lookup table, default argument list or seed collection is otherwise
/// indistinguishable from the original to a test suite that never inspects its contents.
///
@@ -236,9 +236,9 @@ internal enum MutationKind
///
/// Whole statements removed outright: a bare return; inside a
- /// returning member, a loop break or continue, a throw statement, and a
- /// standalone invocation of a returning method with no ref or
- /// out arguments. A test suite that never distinguishes the statement being there from it
+ /// returning member, a loop or , a statement, and a
+ /// standalone invocation of a returning method with no or
+ /// arguments. A test suite that never distinguishes the statement being there from it
/// being gone cannot tell an early return, a changed loop exit, a silently skipped guard or a
/// discarded side-effecting call apart from the code that no longer has it.
///
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/CaseConversionMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/CaseConversionMutator.cs
index 33f4de1..4468d31 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/CaseConversionMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/CaseConversionMutator.cs
@@ -30,7 +30,7 @@
///
/// The bound method symbol decides whether a call is mutated at all, and its containing type has to be
/// itself. A ToUpper declared on another type, an extension method of that
-/// name, and the char and System.Globalization.TextInfo conversions are all left
+/// name, and the and System.Globalization.TextInfo conversions are all left
/// untouched. So is a null-conditional call, whose receiver is not a plain member access, and a call in
/// a position that requires a compile time constant.
///
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/CheckedContextMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/CheckedContextMutator.cs
index 67428bb..ff3278d 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/CheckedContextMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/CheckedContextMutator.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Mutations.Operators;
+namespace NetEvolve.FrameShift.Mutations.Operators;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
///
-/// Swaps checked and unchecked, in both the expression form (checked(expr) /
+/// Swaps and , in both the expression form (checked(expr) /
/// unchecked(expr)) and the statement form (checked { } / unchecked { }).
///
///
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/CollectionInitializerMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/CollectionInitializerMutator.cs
index 1d378df..16776c7 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/CollectionInitializerMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/CollectionInitializerMutator.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Mutations.Operators;
+namespace NetEvolve.FrameShift.Mutations.Operators;
using System.Collections.Immutable;
using System.Linq;
@@ -33,7 +33,7 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
/// The reverse direction, turning [] into [default], is only offered for a collection
/// expression, never for the brace initializer syntax, and only when it is safe: the target type of the
/// collection expression has to resolve, through the semantic model, to a concrete element type, and that
-/// element type has to be a value type, a nullable reference type, or dynamic/object.
+/// element type has to be a value type, a nullable reference type, or /.
/// Everything else - an unresolved element type, an unconstrained type parameter, or a non-nullable
/// reference type the nullable context has not annotated - is skipped, because
/// is not guaranteed to compile there without deeper analysis this operator deliberately does not
@@ -200,7 +200,7 @@ private static bool IsGenericEnumerable(INamedTypeSymbol type) =>
///
/// Determines whether is safe to write for :
- /// a value type, a nullable reference type, or dynamic/object. Every other reference
+ /// a value type, a nullable reference type, or /. Every other reference
/// type, including one the nullable context leaves oblivious, is rejected, because whether
/// compiles there without a warning depends on analysis this operator does
/// not perform.
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/ConstantContext.cs b/src/NetEvolve.FrameShift/Mutations/Operators/ConstantContext.cs
index e456cbc..10ce734 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/ConstantContext.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/ConstantContext.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Mutations.Operators;
+namespace NetEvolve.FrameShift.Mutations.Operators;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
@@ -27,7 +27,7 @@ internal static class ConstantContext
///
/// Determines whether sits in a position that only accepts a compile time
/// constant, such as an attribute argument, a initializer, a default parameter
- /// value, a case label, a goto case statement, a constant pattern, a relational pattern
+ /// value, a label, a goto case statement, a constant pattern, a relational pattern
/// or an enumeration member declaration.
///
/// The node to inspect.
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/FormatProviderArgumentMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/FormatProviderArgumentMutator.cs
index a8abcb3..94ce36a 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/FormatProviderArgumentMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/FormatProviderArgumentMutator.cs
@@ -46,7 +46,7 @@
/// The argument is located by name for a named argument and by position for a positional one, which
/// covers arguments written out of order and optional parameters left out entirely. Positional matching
/// stays exact even next to a named argument, because C# only allows a positional argument to follow a
-/// named one when that named one already sits in its own declared position. A params parameter is
+/// named one when that named one already sits in its own declared position. A parameter is
/// never treated as the provider parameter: its argument is one element of an expanded collection, and
/// removing an element does not remove the provider the call formats with.
///
@@ -151,7 +151,7 @@ private Mutation CreateRemoval(ArgumentListSyntax argumentList, int argumentInde
///
/// Finds the first parameter of whose type is or implements
- /// , skipping a params parameter.
+ /// , skipping a parameter.
///
/// The bound symbol of the invocation.
/// The System.IFormatProvider of the analysed compilation.
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/LogicalNegationMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/LogicalNegationMutator.cs
index bc3dfef..d816d45 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/LogicalNegationMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/LogicalNegationMutator.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Mutations.Operators;
+namespace NetEvolve.FrameShift.Mutations.Operators;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
///
/// Removes an existing logical negation (!x becomes x) and introduces a negation around
-/// the boolean condition of an if, while or do statement and of a conditional
+/// the boolean condition of an , or statement and of a conditional
/// expression (x becomes !(x)).
///
///
@@ -16,7 +16,7 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
/// because !x on a bool? is itself a bool?, so the operand can take the place of the
/// whole expression without changing the type of the position. Introducing one rejects it, because the
/// wrapped !(x) would again be a bool?, and a bool? is not a valid condition of an
-/// if, while or do statement nor of a conditional expression, so the mutant would
+/// , or statement nor of a conditional expression, so the mutant would
/// never compile.
///
///
@@ -110,11 +110,11 @@ CancellationToken cancellationToken
}
///
- /// Determines whether is bool or bool?, which are the two
+ /// Determines whether is or bool?, which are the two
/// operand types the removal of a negation leaves in a well typed position.
///
/// The type to inspect, which may be for an unresolved node.
- /// if the type is bool or bool?.
+ /// if the type is or bool?.
private static bool IsBoolean(ITypeSymbol? type)
{
if (type is null)
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/MathMethodMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/MathMethodMutator.cs
index b66c60c..28d4304 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/MathMethodMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/MathMethodMutator.cs
@@ -20,7 +20,7 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
///
///
/// does not declare every member for every numeric type: the trigonometric
-/// functions and Floor / Ceiling only have double, float and decimal
+/// functions and Floor / Ceiling only have , and
/// overloads, while Min, Max and Abs have one for every numeric type including the
/// integral ones. Rather than hard-coding that shape, the counterpart is only offered when
/// itself declares a static overload of that name whose parameters match the
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/NullableLiteralMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/NullableLiteralMutator.cs
index e8f81a7..6476129 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/NullableLiteralMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/NullableLiteralMutator.cs
@@ -36,13 +36,13 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
/// - so both directions out of are worth provoking.
///
///
-/// System.Guid? is included even though Guid has no literal syntax of its own: there is no
-/// way to write a Guid value as a literal token, so this operator only ever encounters one for it
+/// System.Guid? is included even though has no literal syntax of its own: there is no
+/// way to write a value as a literal token, so this operator only ever encounters one for it
/// on the side, moving it to Guid.Empty, the type's default value.
///
///
/// The converted type is resolved through the semantic model and has to be a nullable value type built
-/// over , char, one of the built-in numeric types or System.Guid,
+/// over , , one of the built-in numeric types or System.Guid,
/// never the corresponding non-nullable type and never a reference type. The check is load bearing
/// rather than cosmetic: on a plain, non-nullable type the mutant that introduces
/// does not compile, and although MutantCompiler would discard it afterwards, it would already
@@ -61,8 +61,8 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
/// A literal on a reference type is deliberately out of scope. It belongs to a
/// separate and considerably riskier family, because the surviving mutant then depends on whether the
/// dereference is guarded rather than on the presence-of-a-value distinction this operator targets.
-/// Other types without a literal syntax of their own - an , DateTime or a
-/// user-defined struct - are equally out of scope, since Guid is special-cased explicitly and
+/// Other types without a literal syntax of their own - an , or a
+/// user-defined struct - are equally out of scope, since is special-cased explicitly and
/// there is no literal node for this operator to mutate for any of the others in the first place.
///
///
@@ -352,7 +352,7 @@ type is INamedTypeSymbol named
/// mutation at all.
///
///
- /// Guid has no literal syntax, so can never actually resolve to
+ /// has no literal syntax, so can never actually resolve to
/// it here; the case exists only to keep the switch exhaustive.
///
private static bool IsDefaultValue(
@@ -397,7 +397,7 @@ CancellationToken cancellationToken
///
/// Builds the expression for the default value of : a literal for
- /// every built-in type, and global::System.Guid.Empty for Guid, which has no literal of
+ /// every built-in type, and global::System.Guid.Empty for , which has no literal of
/// its own.
///
private static ExpressionSyntax? CreateDefaultExpression(UnderlyingKind underlyingKind) =>
@@ -443,7 +443,7 @@ CancellationToken cancellationToken
///
/// The human-readable text for a default-value expression, which is the expression's own text for a
/// plain literal, and the short, unqualified Guid.Empty for the globally-qualified expression
- /// this operator builds for Guid.
+ /// this operator builds for .
///
private static string DisplayText(UnderlyingKind underlyingKind, ExpressionSyntax defaultExpression) =>
underlyingKind == UnderlyingKind.Guid ? "Guid.Empty" : defaultExpression.ToString();
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/StatementRemovalMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/StatementRemovalMutator.cs
index cceb330..09623ce 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/StatementRemovalMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/StatementRemovalMutator.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Mutations.Operators;
+namespace NetEvolve.FrameShift.Mutations.Operators;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
@@ -7,9 +7,9 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
///
/// Removes a whole statement outright, by replacing it with an empty statement (;): a bare
-/// return; inside a returning member, a loop break or
-/// continue, a throw statement, and a standalone invocation of a
-/// returning method with no ref or out arguments.
+/// return; inside a returning member, a loop or
+/// , a statement, and a standalone invocation of a
+/// returning method with no or arguments.
///
///
///
@@ -119,9 +119,9 @@ CancellationToken cancellationToken
}
///
- /// Removes a break, unless the nearest enclosing breakable construct - stopping the search at
- /// a member or lambda boundary - is a switch section rather than a loop; removing a
- /// switch-section break changes fall-through semantics this operator does not touch.
+ /// Removes a , unless the nearest enclosing breakable construct - stopping the search at
+ /// a member or lambda boundary - is a section rather than a loop; removing a
+ /// switch-section changes fall-through semantics this operator does not touch.
///
private IEnumerable CreateForBreak(BreakStatementSyntax breakStatement)
{
@@ -136,7 +136,7 @@ private IEnumerable CreateForBreak(BreakStatementSyntax breakStatement
}
///
- /// Removes a continue, unless no enclosing loop can be found before crossing a member or
+ /// Removes a , unless no enclosing loop can be found before crossing a member or
/// lambda boundary.
///
private IEnumerable CreateForContinue(ContinueStatementSyntax continueStatement)
@@ -152,7 +152,7 @@ private IEnumerable CreateForContinue(ContinueStatementSyntax continue
}
///
- /// Removes a throw statement, unless it is the trailing statement of the body of a member that
+ /// Removes a statement, unless it is the trailing statement of the body of a member that
/// does not return - removing it would leave that code path without a
/// required return, which the compiler would reject.
///
@@ -178,7 +178,7 @@ owner is not null
///
/// Removes a standalone invocation statement, provided the invoked method is known to return
- /// and none of its arguments are passed by ref or out.
+ /// and none of its arguments are passed by or .
///
private IEnumerable CreateForInvocation(
ExpressionStatementSyntax expressionStatement,
@@ -273,7 +273,7 @@ private static bool IsTrailingStatementOfMemberBody(StatementSyntax statement, S
///
/// Walks upwards from , without crossing a member or lambda boundary, and
- /// returns the nearest loop, or the nearest switch statement when
+ /// returns the nearest loop, or the nearest statement when
/// is , whichever comes first.
///
private static SyntaxNode? FindNearestBreakableConstruct(SyntaxNode node, bool includeSwitch)
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/StringLiteralMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/StringLiteralMutator.cs
index 6ef214d..0548113 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/StringLiteralMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/StringLiteralMutator.cs
@@ -56,10 +56,10 @@ private static LiteralExpressionSyntax CreateStringLiteral(string value) =>
SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(value));
///
- /// Determines whether is the argument of a nameof expression.
+ /// Determines whether is the argument of a expression.
///
/// The node to inspect.
- /// if the node is a nameof argument.
+ /// if the node is a argument.
private static bool IsNameOfArgument(SyntaxNode node) =>
node.Parent is ArgumentSyntax argument
&& argument.Parent is ArgumentListSyntax argumentList
diff --git a/src/NetEvolve.FrameShift/Mutations/Operators/StringMethodMutator.cs b/src/NetEvolve.FrameShift/Mutations/Operators/StringMethodMutator.cs
index f3d4974..09912d0 100644
--- a/src/NetEvolve.FrameShift/Mutations/Operators/StringMethodMutator.cs
+++ b/src/NetEvolve.FrameShift/Mutations/Operators/StringMethodMutator.cs
@@ -16,7 +16,7 @@ namespace NetEvolve.FrameShift.Mutations.Operators;
///
///
/// Every overload of these methods is preserved as it was found: the mutant keeps whatever
-/// StringComparison, CultureInfo or char-versus-string argument list the
+/// StringComparison, CultureInfo or -versus- argument list the
/// original call used, because only the method name changes. A mutant is only produced when the
/// target method actually declares an overload with the same parameter types, so that every produced
/// mutant compiles.
diff --git a/src/NetEvolve.FrameShift/TestSurface/NUnitTestMethodRecognizer.cs b/src/NetEvolve.FrameShift/TestSurface/NUnitTestMethodRecognizer.cs
index 2275bc1..5bcc3b3 100644
--- a/src/NetEvolve.FrameShift/TestSurface/NUnitTestMethodRecognizer.cs
+++ b/src/NetEvolve.FrameShift/TestSurface/NUnitTestMethodRecognizer.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.TestSurface;
+namespace NetEvolve.FrameShift.TestSurface;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
@@ -351,7 +351,7 @@ private static TestCaseCount GetParameterValueCount(AttributeData attribute, INa
/// The number of values.
///
/// Up to three values bind to the individual overloads and appear as one constructor argument each;
- /// more of them bind to the params overload and appear as a single array argument. An empty
+ /// more of them bind to the overload and appear as a single array argument. An empty
/// [Values] is a lower bound of one, because NUnit then derives the values from the type of the
/// parameter — every member of an enum, both values of a — which is a framework
/// behaviour this count does not reproduce.
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/BitwiseAndUnaryMutationTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/BitwiseAndUnaryMutationTests.cs
index 37f247e..9b6b874 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/BitwiseAndUnaryMutationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/BitwiseAndUnaryMutationTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using Microsoft.CodeAnalysis;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ConditionalAndLogicalMutationTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ConditionalAndLogicalMutationTests.cs
index 5a54444..2b5a154 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ConditionalAndLogicalMutationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ConditionalAndLogicalMutationTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using Microsoft.CodeAnalysis;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -350,7 +350,7 @@ public static bool Either(bool left, bool right)
///
/// Toggle.Invert removes an existing negation on line 15, while Guard.ClampNonNegative
- /// wraps the condition of an if statement on line 25. Guard.Fallback is a
+ /// wraps the condition of an statement on line 25. Guard.Fallback is a
/// field, so its literal never becomes a mutation point of its own and the
/// method returning it carries none either.
///
@@ -613,7 +613,7 @@ public async Task Analyze_CoveredEqualityComparison_ReportsOnlyTheRemainingOpera
///
/// Both directions of LogicalNegationMutator in one fixture: removing an existing negation on
- /// line 15, and wrapping the condition of an if statement that has none on line 25.
+ /// line 15, and wrapping the condition of an statement that has none on line 25.
///
[Test]
public async Task Analyze_UntestedNegationRemovalAndWrap_ReportsBothDirections()
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/CultureMutationTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/CultureMutationTests.cs
index 9536ef6..7fd30d0 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/CultureMutationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/CultureMutationTests.cs
@@ -6,7 +6,7 @@
using Microsoft.CodeAnalysis;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/GeneratorDriverBridgeIntegrationTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/GeneratorDriverBridgeIntegrationTests.cs
index 60cea09..db1836f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/GeneratorDriverBridgeIntegrationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/GeneratorDriverBridgeIntegrationTests.cs
@@ -1,11 +1,11 @@
-namespace NetEvolve.FrameShift.Tests.Integration;
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Text;
using NetEvolve.FrameShift.Generation;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using NetEvolve.FrameShift.TestSurface.Bridges;
using TUnit.Assertions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MSTestSurfaceAnalyzerTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MSTestSurfaceAnalyzerTests.cs
index e3393fb..ba3058b 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MSTestSurfaceAnalyzerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MSTestSurfaceAnalyzerTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Integration;
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using System.Globalization;
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Integration;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -55,7 +55,7 @@ public int Add(int left, int right)
///
/// The MSTest assembly under analysis. The local-only test deliberately touches neither the
- /// production assembly nor the framework: a predefined type keyword, a var or an operator
+ /// production assembly nor the framework: a predefined type keyword, a or an operator
/// would all bind to a member outside this assembly and would therefore count as a production
/// reference, which is exactly what the FSH0004 expectation is about.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MixedFrameworkTestSurfaceTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MixedFrameworkTestSurfaceTests.cs
index 43bc418..574e5f0 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MixedFrameworkTestSurfaceTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MixedFrameworkTestSurfaceTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Integration;
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using System.Globalization;
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Integration;
using Microsoft.CodeAnalysis.Diagnostics;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -871,7 +871,7 @@ private static CSharpCompilation CreateBothXunitVersionsTest() =>
/// Merges the reference sets of and adds the xUnit.net v3 assemblies
/// under , leaving out everything the merged set already carries so that
/// only the assemblies version 3 contributes of its own are aliased. Aliasing a runtime assembly would
- /// take object out of the global namespace and nothing would compile at all.
+ /// take out of the global namespace and nothing would compile at all.
///
/// The frameworks whose assemblies are referenced without an alias.
/// The merged references.
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MutationCoverageAnalyzerTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MutationCoverageAnalyzerTests.cs
index 2c42087..bccfe9f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MutationCoverageAnalyzerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/MutationCoverageAnalyzerTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using Microsoft.CodeAnalysis.CSharp;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -223,7 +223,7 @@ public static int Shrink(int value)
""";
///
- /// DateTime declares op_Subtraction and op_Addition, so the arithmetic
+ /// declares op_Subtraction and op_Addition, so the arithmetic
/// operator is offered the - to + mutation on line 17, but end + start does
/// not bind.
///
@@ -304,7 +304,7 @@ public static int Multiply(int left, int right)
""";
///
- /// Two members with identical shape, each a standalone void invocation statement - the
+ /// Two members with identical shape, each a standalone invocation statement - the
/// statement removal operator's invocation construct. Covered.Log sits on line 9,
/// Uncovered.Log on line 17.
///
@@ -364,7 +364,7 @@ public static int Gamma(int value)
///
/// Top-level statements, generics, local functions, lambdas, expression-bodied members, pattern
- /// matching, a switch expression and a record, all in one compilation. The body of
+ /// matching, a expression and a record, all in one compilation. The body of
/// Toolbox.Describe spans the lines 10 to 25.
///
private const string RobustSource = """
@@ -827,7 +827,7 @@ public async Task Analyze_TwoManifests_UnitesTheirRecordedMembers()
///
/// Top-level statements, generics, a local function, lambdas, an expression-bodied member, pattern
- /// matching, a switch expression and a record, all analysed at once. The snapshot is the whole
+ /// matching, a expression and a record, all analysed at once. The snapshot is the whole
/// diagnostic set, so it states the two things an enumeration of line numbers could only hint at: the
/// body of Toolbox.Describe on the lines 10 to 25 produces nothing, because the manifest covers
/// it, and every other construct is walked and reported instead of silently skipped or crashed on.
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/NUnitTestSurfaceAnalyzerTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/NUnitTestSurfaceAnalyzerTests.cs
index 665b6a5..dfb0519 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/NUnitTestSurfaceAnalyzerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/NUnitTestSurfaceAnalyzerTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Integration;
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using System.Globalization;
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Integration;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -77,7 +77,7 @@ public static int Twice(int value)
///
/// The test assembly under analysis. The local-only test deliberately touches neither the production
- /// assembly nor the framework: a predefined type keyword, a var or an operator would all bind
+ /// assembly nor the framework: a predefined type keyword, a or an operator would all bind
/// to a member outside this assembly and would therefore count as a production reference, which is
/// exactly what the FSH0004 expectation is about.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ReachabilityAndEquivalenceMutationTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ReachabilityAndEquivalenceMutationTests.cs
index 383b775..8650a26 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ReachabilityAndEquivalenceMutationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/ReachabilityAndEquivalenceMutationTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using Microsoft.CodeAnalysis;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -473,7 +473,7 @@ public static int Unrelated(int value)
///
/// Subscriber.Subscribe only ever adds a handler to Bell.Rung, never removes one, yet the
- /// remove accessor is a separate declaration that shares the reachability of the event it
+ /// accessor is a separate declaration that shares the reachability of the event it
/// belongs to, exactly like a property's setter shares the reachability of a getter-only caller.
///
private const string EventAccessorSource = """
@@ -603,7 +603,7 @@ public static int WithDefault(int amount = 1 + 2)
""";
///
- /// 1 + 2 sits inside a classic case label, the third and last constant-only position
+ /// 1 + 2 sits inside a classic label, the third and last constant-only position
/// exercised in this file.
///
private const string CaseLabelSource = """
@@ -863,7 +863,7 @@ public async Task Analyze_TestCallsOneInstantiationOfAGenericMethod_ReachesTheSh
}
///
- /// A test that only ever adds a handler to an event never removes one, yet the remove accessor
+ /// A test that only ever adds a handler to an event never removes one, yet the accessor
/// becomes reachable as well: like a property's getter and setter, both accessors are separate
/// declarations that share the reachability of the event they belong to.
///
@@ -965,7 +965,7 @@ public async Task Analyze_ArithmeticMutationInsideADefaultParameterValue_Reports
}
///
- /// The third and last constant-only position exercised in this file: a classic case label can
+ /// The third and last constant-only position exercised in this file: a classic label can
/// only ever be a compile-time constant as well.
///
[Test]
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexInfrastructureMutationTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexInfrastructureMutationTests.cs
index c1167f6..b09d5f0 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexInfrastructureMutationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexInfrastructureMutationTests.cs
@@ -8,7 +8,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
using NetEvolve.FrameShift.Mutations.Operators;
using NetEvolve.FrameShift.Mutations.RegularExpressions;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexPatternMutationAnalysisTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexPatternMutationAnalysisTests.cs
index d9d34fb..a36aabd 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexPatternMutationAnalysisTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/RegexPatternMutationAnalysisTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using Microsoft.CodeAnalysis;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/StringLinqMathMutationTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/StringLinqMathMutationTests.cs
index b3ab79a..15e3bd0 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/StringLinqMathMutationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/StringLinqMathMutationTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -314,10 +314,10 @@ public static double CustomAbs(double value)
/// Every construct recognises and every guard that keeps it
/// from firing, in one file: a nested return; (line 19, removed - it is not the trailing
/// statement of the method body), a trailing return; in LastReturn (kept - removing it
- /// would change nothing), a break and a continue inside a loop (removed), a nested
- /// throw in a method (removed), a trailing throw in a
+ /// would change nothing), a and a inside a loop (removed), a nested
+ /// in a method (removed), a trailing in a
/// non- method (kept - removing it would leave a code path without a required
- /// return) and a standalone invocation with a ref argument (kept - removing it would change
+ /// return) and a standalone invocation with a argument (kept - removing it would change
/// what the caller observes through the reference). Every condition is a bare identifier, so no other
/// operator has a mutation point on any of these lines.
///
@@ -410,9 +410,9 @@ public static void Increment(ref int value) { }
/// Arrays.Pair (line 17) empties a non-empty array initializer, Arrays.EmptyArray (line
/// 22) fills an empty collection expression converted to an array, Collections.Values (line 30)
/// empties a non-empty collection expression, and the remaining members of Collections probe
- /// every answer AllowsDefault can give for an empty one: int is a value type (line 35,
- /// filled), object is (line 40, filled), an
- /// annotated string? is a nullable reference type (line 45, filled), a plain string is
+ /// every answer AllowsDefault can give for an empty one: is a value type (line 35,
+ /// filled), is (line 40, filled), an
+ /// annotated string? is a nullable reference type (line 45, filled), a plain is
/// not annotated under this compilation's enabled nullable context (not filled), and an unconstrained
/// type parameter resolves to neither (not filled).
///
@@ -651,9 +651,9 @@ public async Task Analyze_UntestedMathMethods_ReportsRenamesAndTheAbsRemovalAndS
///
/// The flagship case of the family: every removable construct reports its removal, and every guard -
- /// the trailing return;, the trailing throw of a non- member and
- /// the invocation with a ref argument - keeps the analysis silent instead. Every if
- /// condition guarding a removable statement is itself a bool parameter, which
+ /// the trailing return;, the trailing of a non- member and
+ /// the invocation with a argument - keeps the analysis silent instead. Every
+ /// condition guarding a removable statement is itself a parameter, which
/// also reports a gap for at its own line - a second,
/// independent operator firing on the same fixture, not a mistake.
///
@@ -694,7 +694,7 @@ public async Task Analyze_UntestedStatementRemovalConstructs_ReportsRemovalsAndR
///
/// A non-empty collection expression reports its collapse to an empty one, an empty collection
/// expression reports the fill with for every element type
- /// AllowsDefault accepts - a value type, object, and an annotated nullable reference
+ /// AllowsDefault accepts - a value type, , and an annotated nullable reference
/// type - and reports nothing for the two it rejects: a non-annotated reference type and an
/// unconstrained type parameter. The old-style array initializer of Arrays.Pair
/// (new[] { first, second }) is deliberately included and reports nothing at all:
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TUnitTestSurfaceAnalyzerTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TUnitTestSurfaceAnalyzerTests.cs
index 644f963..4ed42f6 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TUnitTestSurfaceAnalyzerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TUnitTestSurfaceAnalyzerTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Integration;
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using System.Diagnostics.CodeAnalysis;
@@ -11,7 +11,7 @@ namespace NetEvolve.FrameShift.Tests.Integration;
using Microsoft.CodeAnalysis.Text;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -105,7 +105,7 @@ public static int Twice(int value)
///
/// The test assembly under analysis. The local-only test deliberately touches neither the
- /// production assembly nor the framework: a predefined type keyword, a var or an operator
+ /// production assembly nor the framework: a predefined type keyword, a or an operator
/// would all bind to a member outside this assembly and would therefore count as a production
/// reference, which is exactly what the FSH0004 expectation is about.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TestMarkerRecognitionTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TestMarkerRecognitionTests.cs
index 5700b2b..f8b4e66 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TestMarkerRecognitionTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/TestMarkerRecognitionTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Integration;
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
@@ -6,7 +6,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV2TestSurfaceAnalyzerTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV2TestSurfaceAnalyzerTests.cs
index ee42745..951e8d4 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV2TestSurfaceAnalyzerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV2TestSurfaceAnalyzerTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Integration;
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using System.Globalization;
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Integration;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -88,7 +88,7 @@ public static int Twice(int value)
///
/// The test assembly under analysis. The local-only test deliberately touches neither the production
- /// assembly nor the framework: a predefined type keyword, a var or an operator would all bind
+ /// assembly nor the framework: a predefined type keyword, a or an operator would all bind
/// to a member outside this assembly and would therefore count as a production reference, which is
/// exactly what the FSH0004 expectation is about.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV3TestSurfaceAnalyzerTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV3TestSurfaceAnalyzerTests.cs
index 82cc32d..316d31b 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV3TestSurfaceAnalyzerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Analyzers/XunitV3TestSurfaceAnalyzerTests.cs
@@ -1,5 +1,5 @@
-#if FRAMESHIFT_XUNIT_V3
-namespace NetEvolve.FrameShift.Tests.Integration;
+#if FRAMESHIFT_XUNIT_V3
+namespace NetEvolve.FrameShift.Tests.Integration.Analyzers;
using System.Collections.Immutable;
using System.Globalization;
@@ -8,7 +8,7 @@ namespace NetEvolve.FrameShift.Tests.Integration;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -91,7 +91,7 @@ public static int Twice(int value)
///
/// The test assembly under analysis. The local-only test deliberately touches neither the production
- /// assembly nor the framework: a predefined type keyword, a var or an operator would all bind
+ /// assembly nor the framework: a predefined type keyword, a or an operator would all bind
/// to a member outside this assembly and would therefore count as a production reference, which is
/// exactly what the FSH0004 expectation is about.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceEdgeCaseTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceEdgeCaseTests.cs
index c416498..f4ce9b7 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceEdgeCaseTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceEdgeCaseTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Generation;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Text;
using NetEvolve.FrameShift.Generation;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceManifestGeneratorTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceManifestGeneratorTests.cs
index ed7e35b..c2fffad 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceManifestGeneratorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/Generation/TestSurfaceManifestGeneratorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Integration.Generation;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Text;
using NetEvolve.FrameShift.Generation;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -614,7 +614,7 @@ public async Task Generate_AwkwardMemberNames_EmitsNoLineThatClosesTheBlockComme
///
/// The diagnostics are rendered into one string rather than snapshotted as a collection. Verify ships
/// a different assembly per target framework and they do not agree on how an empty collection is
- /// written — some omit the member, others write null — which would make the eight runs of the
+ /// written — some omit the member, others write — which would make the eight runs of the
/// matrix disagree about a snapshot none of them changed. A rendered string is the same everywhere and
/// still fails the day the generator starts reporting something.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Integration/MutationAnalysisRoundTripTests.cs b/tests/NetEvolve.FrameShift.Tests.Integration/MutationAnalysisRoundTripTests.cs
index 53bf820..e2d35c7 100644
--- a/tests/NetEvolve.FrameShift.Tests.Integration/MutationAnalysisRoundTripTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Integration/MutationAnalysisRoundTripTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Integration;
using Microsoft.CodeAnalysis.CSharp;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Diagnostics;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisCacheTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisCacheTests.cs
index 699f64d..9f5c3fe 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisCacheTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisCacheTests.cs
@@ -1,10 +1,10 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Analyzers;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using NetEvolve.FrameShift.Analyzers;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisDiscoveryTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisDiscoveryTests.cs
index 105004b..25f3b22 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisDiscoveryTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisDiscoveryTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Analyzers;
using System;
using System.Collections;
@@ -9,7 +9,7 @@ namespace NetEvolve.FrameShift.Tests.Unit;
using Microsoft.CodeAnalysis.Diagnostics;
using NetEvolve.FrameShift.Analyzers;
using NetEvolve.FrameShift.Configuration;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisTestMethodCacheTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisTestMethodCacheTests.cs
index e3ca34d..b030206 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisTestMethodCacheTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Analyzers/TestSurfaceAnalysisTestMethodCacheTests.cs
@@ -1,10 +1,10 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Analyzers;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using NetEvolve.FrameShift.Analyzers;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Configuration/FrameShiftOptionsTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Configuration/FrameShiftOptionsTests.cs
index 8e566c2..5990ae6 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Configuration/FrameShiftOptionsTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Configuration/FrameShiftOptionsTests.cs
@@ -3,7 +3,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Configuration;
using System.Globalization;
using NetEvolve.FrameShift.Configuration;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierBranchTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierBranchTests.cs
index 0f5907c..56f3304 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierBranchTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierBranchTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Equivalence;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Equivalence;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingOperatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingOperatorTests.cs
index 3ab2228..e87e3c3 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingOperatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingOperatorTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Equivalence;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Equivalence;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingTests.cs
index 1cd81f1..4c6b8c3 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierFoldingTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Equivalence;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Equivalence;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierRegexTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierRegexTests.cs
index 06bef00..fc2146e 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierRegexTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierRegexTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Equivalence;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Equivalence;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierTests.cs
index 8bc5bb5..4019114 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/EquivalenceClassifierTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Equivalence;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Equivalence;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -287,7 +287,7 @@ public async Task Classify_MutationOfUnrelatedBooleanLiteral_IsNotTrivial()
}
///
- /// A call through a dynamic receiver is late-bound: the semantic model reports no method
+ /// A call through a receiver is late-bound: the semantic model reports no method
/// symbol for it at all, since resolution only happens at run time. The check must treat that
/// exactly like any other invocation it cannot resolve, not assume it is ConfigureAwait.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/UnreachableCodeDiagnosticsCacheTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/UnreachableCodeDiagnosticsCacheTests.cs
index d7e007b..6b0e463 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/UnreachableCodeDiagnosticsCacheTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Equivalence/UnreachableCodeDiagnosticsCacheTests.cs
@@ -1,9 +1,8 @@
namespace NetEvolve.FrameShift.Tests.Unit.Equivalence;
-using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Equivalence;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/AnalyzerRunner.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/AnalyzerRunner.cs
index fe5ebc0..1c71e2f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/AnalyzerRunner.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/AnalyzerRunner.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Collections.Immutable;
using System.Diagnostics.CodeAnalysis;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CancellationTokenSourceExtensions.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CancellationTokenSourceExtensions.cs
index 63ec6e5..2f077d3 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CancellationTokenSourceExtensions.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CancellationTokenSourceExtensions.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Diagnostics.CodeAnalysis;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CompilationFactory.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CompilationFactory.cs
index ac6088a..7e3133c 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CompilationFactory.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/CompilationFactory.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Collections.Immutable;
using System.Text;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/DiagnosticAssertions.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/DiagnosticAssertions.cs
index 0197f44..fc14991 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/DiagnosticAssertions.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/DiagnosticAssertions.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Collections.Immutable;
using System.Globalization;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/GeneratorRunner.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/GeneratorRunner.cs
index b5e01ed..02d178f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/GeneratorRunner.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/GeneratorRunner.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Collections.Immutable;
using System.Globalization;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/InMemoryAdditionalText.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/InMemoryAdditionalText.cs
index 12fbc9c..b04c0d2 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/InMemoryAdditionalText.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/InMemoryAdditionalText.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Text;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/ReferenceAssemblies.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/ReferenceAssemblies.cs
index 4e8f1f9..223c791 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/ReferenceAssemblies.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/ReferenceAssemblies.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Collections.Immutable;
using System.Reflection;
@@ -55,7 +55,7 @@ internal static class ReferenceAssemblies
///
/// The compiler-support type .NET Framework never shipped, declared with the same name, namespace and
- /// accessibility the runtime uses on .NET. IsExternalInit is what an init accessor - and
+ /// accessibility the runtime uses on .NET. IsExternalInit is what an accessor - and
/// therefore every positional record - is compiled against; without it a fixture declaring a record
/// fails with CS0518, and the tests asserting that their own fixture compiles would fail for a reason
/// that has nothing to do with the analyzers. The declaration carries no behaviour at all: the compiler
@@ -73,10 +73,10 @@ public static class IsExternalInit
///
/// The .NET Framework runtime assemblies without which no fixture binds at all:
///
- /// - mscorlib - object and the primitives, Attribute with
+ ///
- mscorlib - and the primitives, Attribute with
/// AttributeUsage and AttributeTargets, Action, Func, EventHandler,
- /// EventArgs, Obsolete, Console, Math, Convert, DateTime,
- /// TimeSpan, IntPtr, the exceptions the fixtures throw, IEnumerable<T> and
+ /// EventArgs, Obsolete, Console, Math, Convert, ,
+ /// , IntPtr, the exceptions the fixtures throw, IEnumerable<T> and
/// the other generic collections, System.Threading.Tasks.Task and
/// System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute.
/// - System - System.CodeDom.Compiler.GeneratedCodeAttribute, which the generated-code
@@ -93,7 +93,7 @@ public static class IsExternalInit
///
- System.Runtime and netstandard - the type-forwarding facades a netstandard2.0
/// assembly is compiled against. TUnit reaches .NET Framework through netstandard2.0, and without the
/// facades none of its types can be bound by a fixture.
- /// - Microsoft.CSharp - the runtime binder. A fixture using dynamic is reported as
+ ///
- Microsoft.CSharp - the runtime binder. A fixture using is reported as
/// CS0656 missing compiler required member without it.
/// - System.Numerics - so that the namespace of the generic-math fixtures resolves; note
/// that INumber<T> itself does not exist on .NET Framework at all.
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/StringExtensions.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/StringExtensions.cs
index ac4f172..8445b61 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/StringExtensions.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/StringExtensions.cs
@@ -1,5 +1,5 @@
#if NETFRAMEWORK
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Text;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/SyntaxNodeLocator.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/SyntaxNodeLocator.cs
index 5c996b4..7f466d9 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/SyntaxNodeLocator.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/SyntaxNodeLocator.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestAnalyzerConfigOptions.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestAnalyzerConfigOptions.cs
index 8e98e7f..f86288d 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestAnalyzerConfigOptions.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestAnalyzerConfigOptions.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Collections.Immutable;
using System.Diagnostics.CodeAnalysis;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestFramework.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestFramework.cs
index 5f1aa1c..5850c45 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestFramework.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/TestFramework.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
///
/// The test framework whose assemblies a test compilation references.
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifyModuleInitializer.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifyModuleInitializer.cs
index 74f1d76..806729d 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifyModuleInitializer.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifyModuleInitializer.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Globalization;
using System.Runtime.CompilerServices;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifySnapshotSmokeTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifySnapshotSmokeTests.cs
index 638b0b8..b53c66f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifySnapshotSmokeTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Infrastructure/VerifySnapshotSmokeTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Infrastructure;
+namespace NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using System.Globalization;
using System.Reflection;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantCompilerTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantCompilerTests.cs
index f4ceb1a..53e0321 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantCompilerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantCompilerTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Text;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantGeneratorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantGeneratorTests.cs
index 625d68f..59e3e49 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantGeneratorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutantGeneratorTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations;
using NetEvolve.FrameShift.Configuration;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationOperatorGuardTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationOperatorGuardTests.cs
index 65dbad7..53cbd3a 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationOperatorGuardTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationOperatorGuardTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationTests.cs
index 0312b31..c1074ac 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/MutationTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Text;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticAssignmentMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticAssignmentMutatorTests.cs
index 6316c05..8021dd4 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticAssignmentMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticAssignmentMutatorTests.cs
@@ -7,7 +7,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -839,7 +839,7 @@ public async Task CreateMutations_EnumTarget_ProducesEveryCounterpart()
}
///
- /// A dynamic assignment binds to the built-in operator of dynamic rather than to a user defined
+ /// A dynamic assignment binds to the built-in operator of rather than to a user defined
/// one, so the user defined operator filter cannot narrow the result and every counterpart is offered.
///
[Test]
@@ -1080,7 +1080,7 @@ internal void Apply(int value)
///
/// Builds a fixture over a target and a value of the given types. The statement carries the marker
- /// itself, so that a case can wrap it into a checked or unchecked block.
+ /// itself, so that a case can wrap it into a or block.
///
/// The declared type of the assignment target.
/// The declared type of the assigned value.
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticOperatorMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticOperatorMutatorTests.cs
index 315d7ad..bcc915c 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticOperatorMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ArithmeticOperatorMutatorTests.cs
@@ -7,7 +7,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -697,7 +697,7 @@ public async Task CreateMutations_EnumOperand_ProducesEveryCounterpart()
}
///
- /// A dynamic expression binds to the built-in operator of dynamic rather than to a user defined
+ /// A dynamic expression binds to the built-in operator of rather than to a user defined
/// one, so the user defined operator filter cannot narrow the result and every counterpart is offered.
///
[Test]
@@ -937,7 +937,7 @@ internal static class Text
///
/// Builds a fixture over two operands of the same type. The expression carries the marker itself, so
- /// that a case can wrap the marked expression into a checked or unchecked context.
+ /// that a case can wrap the marked expression into a or context.
///
/// The declared type of both operands.
/// The declared result type of the fixture method.
@@ -957,7 +957,7 @@ internal static class Calculator
///
/// The operator identifiers of all four counterparts of .
///
- /// The name of the original operator, e.g. add.
+ /// The name of the original operator, e.g. .
/// The expected operator identifiers, sorted.
private static ImmutableArray AllCounterparts(string originalName) =>
Sorted(
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseAssignmentMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseAssignmentMutatorTests.cs
index 1ce304b..03d30b2 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseAssignmentMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseAssignmentMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -308,7 +308,7 @@ string expectedIds
}
///
- /// A char operand is one of the allowed integral special types, so it takes part in the
+ /// A operand is one of the allowed integral special types, so it takes part in the
/// bitwise assignment mutations just like the other narrow integral types.
///
[Test]
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseOperatorMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseOperatorMutatorTests.cs
index 60b83ca..de5e294 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseOperatorMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BitwiseOperatorMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BooleanLiteralMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BooleanLiteralMutatorTests.cs
index fbd8f72..67c235d 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BooleanLiteralMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/BooleanLiteralMutatorTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CaseConversionMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CaseConversionMutatorTests.cs
index d370b29..b88e972 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CaseConversionMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CaseConversionMutatorTests.cs
@@ -7,7 +7,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CheckedContextMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CheckedContextMutatorTests.cs
index be4db81..5248f3d 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CheckedContextMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CheckedContextMutatorTests.cs
@@ -5,13 +5,13 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
///
-/// Covers the checked/unchecked keyword swap, for both the expression form and the
+/// Covers the / keyword swap, for both the expression form and the
/// statement block form.
///
public class CheckedContextMutatorTests
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CollectionInitializerMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CollectionInitializerMutatorTests.cs
index 6b58d22..4843393 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CollectionInitializerMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CollectionInitializerMutatorTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ConditionalExpressionMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ConditionalExpressionMutatorTests.cs
index 5abd2ed..ac15f80 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ConditionalExpressionMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ConditionalExpressionMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CultureInfoMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CultureInfoMutatorTests.cs
index 6f14d5b..b94ca40 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CultureInfoMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/CultureInfoMutatorTests.cs
@@ -5,7 +5,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -670,7 +670,7 @@ public async Task CreateMutations_ConstantField_ReturnsEmpty()
}
///
- /// The remaining positions that only accept a compile time constant: a case label, a
+ /// The remaining positions that only accept a compile time constant: a label, a
/// goto case statement, a relational pattern and an enumeration member. A
/// culture is an object reference and never a constant, so every one of these fixtures deliberately does
/// not compile - they are still the only way to put a culture read in such a position, which is exactly
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/EqualityOperatorMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/EqualityOperatorMutatorTests.cs
index 90ea05e..9d79c17 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/EqualityOperatorMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/EqualityOperatorMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/FormatProviderArgumentMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/FormatProviderArgumentMutatorTests.cs
index b4a98d8..6506cf9 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/FormatProviderArgumentMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/FormatProviderArgumentMutatorTests.cs
@@ -7,7 +7,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -156,7 +156,7 @@ internal static class Formats
""";
///
- /// A provider passed as one element of an expanded params array. The parameter the argument
+ /// A provider passed as one element of an expanded array. The parameter the argument
/// belongs to is the array, not the provider, so there is no provider argument to remove.
///
private const string ParamsSource = """
@@ -528,7 +528,7 @@ public async Task CreateMutations_ForeignInterfaceOfTheSameName_ReturnsEmpty()
}
///
- /// The provider is one element of an expanded params array. The parameter it belongs to is the
+ /// The provider is one element of an expanded array. The parameter it belongs to is the
/// array, which is no format provider, so no argument qualifies for removal.
///
[Test]
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IncrementDecrementMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IncrementDecrementMutatorTests.cs
index 77f372f..37855e5 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IncrementDecrementMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IncrementDecrementMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -506,7 +506,7 @@ string expectedReplacement
}
///
- /// A checked or unchecked context changes what the mutant does at run time, but not
+ /// A or context changes what the mutant does at run time, but not
/// whether it is created: the swap is offered in both contexts.
///
[Test]
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IntegralTypeCheckTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IntegralTypeCheckTests.cs
index 89d212e..5cd4a72 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IntegralTypeCheckTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/IntegralTypeCheckTests.cs
@@ -3,7 +3,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LinqMethodMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LinqMethodMutatorTests.cs
index 9f86bf6..5aa090f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LinqMethodMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LinqMethodMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalNegationMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalNegationMutatorTests.cs
index 725dcb0..4d30642 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalNegationMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalNegationMutatorTests.cs
@@ -7,14 +7,14 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
///
/// Covers , which unwraps an existing !x and wraps the
-/// condition of an if, while or do statement and of a conditional expression into
+/// condition of an , or statement and of a conditional expression into
/// !(x).
///
public class LogicalNegationMutatorTests
@@ -416,7 +416,7 @@ public async Task CreateMutations_TypelessOperand_ReturnsEmpty()
}
///
- /// A type with true and false operators is a legal if condition, but its type is
+ /// A type with and operators is a legal condition, but its type is
/// not . Wrapping it into !(...) would require a ! operator the
/// type does not declare, so no mutation is offered.
///
@@ -436,7 +436,7 @@ public async Task CreateMutations_ConditionWithTrueAndFalseOperators_ReturnsEmpt
///
/// The wrapping guard rejects an already negated condition of every supported node, not only of an
- /// if statement, because !(!x) is no useful mutant.
+ /// statement, because !(!x) is no useful mutant.
///
[Test]
[Arguments(NegatedWhileSource)]
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalOperatorMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalOperatorMutatorTests.cs
index 27a1c10..c584e9a 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalOperatorMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/LogicalOperatorMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -263,7 +263,7 @@ public async Task ApplyTo_BooleanOperands_ProducesCompilableSource(string source
}
///
- /// A type with true and false operators may be used with && and
+ /// A type with and operators may be used with && and
/// ||, which resolve through its & and | operators. The conditional form is
/// mutated, because both underlying operators exist.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/MathMethodMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/MathMethodMutatorTests.cs
index 49bd657..ae120fb 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/MathMethodMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/MathMethodMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -139,7 +139,7 @@ public async Task Metadata_Always_IdentifiesTheMathMethodFamily()
///
/// Every trigonometric co-function is mutated into its counterpart. only
- /// declares these six as double overloads, so double is the only type exercised here.
+ /// declares these six as overloads, so is the only type exercised here.
///
[Test]
[Arguments("Sin", "Cos", "math.method.sin-to-cos")]
@@ -198,7 +198,7 @@ public async Task ApplyTo_TrigCoFunction_ProducesTheRenamedCall(string source, s
}
///
- /// Min and Max are mutated into each other for both double and decimal,
+ /// Min and Max are mutated into each other for both and ,
/// the two types declares overloads for that the issue asks to cover.
///
[Test]
@@ -245,8 +245,8 @@ public async Task ApplyTo_MinMax_ProducesTheRenamedCall(string type, string sour
}
///
- /// Floor and Ceiling are mutated into each other for both double and
- /// decimal.
+ /// Floor and Ceiling are mutated into each other for both and
+ /// .
///
[Test]
[Arguments("double", "Floor", "Ceiling")]
@@ -293,7 +293,7 @@ public async Task ApplyTo_FloorCeiling_ProducesTheRenamedCall(string type, strin
///
/// Math.Abs has no counterpart of its own: the whole call is dropped in favour of its single
- /// argument expression, for both double and decimal.
+ /// argument expression, for both and .
///
[Test]
[Arguments("double")]
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullCoalescingMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullCoalescingMutatorTests.cs
index 363ee3a..62b9042 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullCoalescingMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullCoalescingMutatorTests.cs
@@ -5,14 +5,14 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
///
/// Covers the null-coalescing operator: both operands replace the whole expression, unless the
-/// replacement would not convert to the expected type or would be a throw expression.
+/// replacement would not convert to the expected type or would be a expression.
///
public class NullCoalescingMutatorTests
{
@@ -40,7 +40,7 @@ internal static void Set(ref string? field, string value)
///
/// The two operands have nothing in common, so the whole expression has no type. The fixture
- /// deliberately does not compile, and the var initializer keeps the expression from being
+ /// deliberately does not compile, and the initializer keeps the expression from being
/// converted to anything, which is the only way to reach the unknown target type.
///
private const string NoCommonTypeSource = """
@@ -197,7 +197,7 @@ public async Task ApplyTo_CoalesceAssignment_RewritesOperatorAndKeepsTrivia()
}
///
- /// A throw right operand is legal for ??=, but not for a plain assignment: the
+ /// A right operand is legal for ??=, but not for a plain assignment: the
/// language only permits a throw expression as the second/third operand of ?:, an arm of a
/// switch expression, the right operand of ??/??=, or an expression-bodied member
/// body (see CS8115). The mutation is therefore skipped, the same way the ?? mutations skip
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullableLiteralMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullableLiteralMutatorTests.cs
index 9da15c5..3545773 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullableLiteralMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NullableLiteralMutatorTests.cs
@@ -6,14 +6,14 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
///
/// Covers the nullable literal operator: the mutations produced per source state for each supported
-/// underlying type (bool, an integral and floating type, char and Guid), the
+/// underlying type (, an integral and floating type, and ), the
/// rewritten source, and every position it must leave alone, which is a plain non-nullable type, a
/// reference type , a constant context, and a written
/// in place of a literal.
@@ -99,7 +99,7 @@ public async Task CreateMutations_TrueLiteral_ReplacesItByNullAndByDefault()
}
///
- /// already is the default value of bool, so mutating it to that same
+ /// already is the default value of , so mutating it to that same
/// default would not be a mutation at all; only the transition to fires.
///
[Test]
@@ -160,7 +160,7 @@ public async Task CreateMutations_NonZeroIntLiteral_ReplacesItByNullAndByDefault
}
///
- /// 0 already is the default value of int, so only the transition to
+ /// 0 already is the default value of , so only the transition to
/// fires.
///
[Test]
@@ -305,7 +305,7 @@ string expectedDefaultText
///
/// A negative literal in a plain, non-nullable context is left alone: the whole unary expression's
- /// converted type is int, not int?, so never offers
+ /// converted type is , not int?, so never offers
/// the /default mutants a non-nullable position could not compile.
///
[Test]
@@ -383,7 +383,7 @@ public async Task CreateMutations_NullCharLiteral_ReplacesItByDefault()
}
///
- /// Guid has no literal syntax, so null is the only state this operator ever meets for
+ /// has no literal syntax, so is the only state this operator ever meets for
/// it; the default it moves to is written fully qualified, so the mutant compiles whether or not the
/// mutated file has a using System;.
///
@@ -403,7 +403,7 @@ public async Task CreateMutations_NullGuidLiteral_ReplacesItByDefault()
///
/// The receiver is resolved semantically against System.Guid specifically, so a same-named
- /// Guid type declared in another namespace is never mistaken for it.
+ /// type declared in another namespace is never mistaken for it.
///
[Test]
public async Task CreateMutations_NullOtherNamespaceGuidLiteral_ReturnsEmpty()
@@ -414,7 +414,7 @@ public async Task CreateMutations_NullOtherNamespaceGuidLiteral_ReturnsEmpty()
}
///
- /// Guid has no literal syntax, so IsDefaultValue's Guid case can never actually
+ /// has no literal syntax, so IsDefaultValue's case can never actually
/// be reached through CreateMutations - it exists only to keep the switch exhaustive. This
/// invokes the private method directly to prove that defensive case still behaves as documented.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NumericLiteralMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NumericLiteralMutatorTests.cs
index d90319b..fa419f8 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NumericLiteralMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/NumericLiteralMutatorTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/OptionalArgumentRemovalMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/OptionalArgumentRemovalMutatorTests.cs
index 011a5c1..91f6de5 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/OptionalArgumentRemovalMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/OptionalArgumentRemovalMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ParenthesizationMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ParenthesizationMutatorTests.cs
index 143a6c8..f234050 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ParenthesizationMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/ParenthesizationMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAlternationMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAlternationMutatorTests.cs
index 147aee8..55656d2 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAlternationMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAlternationMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAnchorMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAnchorMutatorTests.cs
index 5fe0bda..af0d630 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAnchorMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexAnchorMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexBackreferenceMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexBackreferenceMutatorTests.cs
index a345350..68e49d0 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexBackreferenceMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexBackreferenceMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexCharacterClassMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexCharacterClassMutatorTests.cs
index f220da6..3044083 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexCharacterClassMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexCharacterClassMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexEscapeMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexEscapeMutatorTests.cs
index 3375ca2..c026224 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexEscapeMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexEscapeMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexGroupMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexGroupMutatorTests.cs
index 3fa8358..ade46c3 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexGroupMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexGroupMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexLookaroundMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexLookaroundMutatorTests.cs
index 7bd98f5..a915711 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexLookaroundMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexLookaroundMutatorTests.cs
@@ -8,7 +8,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
using NetEvolve.FrameShift.Mutations.RegularExpressions;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexOptionsMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexOptionsMutatorTests.cs
index 1a48922..2236c24 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexOptionsMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexOptionsMutatorTests.cs
@@ -5,7 +5,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexPatternMutatorBaseTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexPatternMutatorBaseTests.cs
index f06b4b4..d5fa02f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexPatternMutatorBaseTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexPatternMutatorBaseTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
using NetEvolve.FrameShift.Mutations.RegularExpressions;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexQuantifierMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexQuantifierMutatorTests.cs
index 154c633..64fc23e 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexQuantifierMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RegexQuantifierMutatorTests.cs
@@ -6,7 +6,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RelationalOperatorMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RelationalOperatorMutatorTests.cs
index 8423394..95f132c 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RelationalOperatorMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/RelationalOperatorMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StatementRemovalMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StatementRemovalMutatorTests.cs
index 37f8f57..e27de05 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StatementRemovalMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StatementRemovalMutatorTests.cs
@@ -1,18 +1,18 @@
-namespace NetEvolve.FrameShift.Mutations.Operators;
+namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
///
-/// Covers the statement removal operator: the bare return;, loop break/continue,
-/// throw statement and standalone invocation constructs, each with its removal happening when
+/// Covers the statement removal operator: the bare return;, loop /,
+/// statement and standalone invocation constructs, each with its removal happening when
/// safe and skipped when it would not compile or would be a no-op.
///
public class StatementRemovalMutatorTests
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerComparisonAxisParityTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerComparisonAxisParityTests.cs
index 69de3b6..26fb84b 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerComparisonAxisParityTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerComparisonAxisParityTests.cs
@@ -3,7 +3,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerMutatorTests.cs
index 6072a07..02940aa 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparerMutatorTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparisonMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparisonMutatorTests.cs
index 50e4b45..ba2f29b 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparisonMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringComparisonMutatorTests.cs
@@ -5,7 +5,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringLiteralMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringLiteralMutatorTests.cs
index 83dd435..1638c22 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringLiteralMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringLiteralMutatorTests.cs
@@ -5,14 +5,14 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
///
/// Covers the string literal operator: the two directions of the mutation, verbatim literals, the
-/// nameof exception, interpolated strings and the constant contexts.
+/// exception, interpolated strings and the constant contexts.
///
public class StringLiteralMutatorTests
{
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringMethodMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringMethodMutatorTests.cs
index 6a083da..eadfd4b 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringMethodMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/StringMethodMutatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
@@ -238,7 +238,7 @@ public async Task Metadata_Always_IdentifiesTheStringMethodFamily()
///
/// StartsWith and EndsWith are offered as each other's counterpart, whatever overload
/// was called: the plain string overload, the one carrying a StringComparison and the one
- /// carrying a bool and a CultureInfo.
+ /// carrying a and a CultureInfo.
///
[Test]
[Arguments("StartsWith", "EndsWith", PlainOverloadTemplate)]
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/UnaryOperatorMutatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/UnaryOperatorMutatorTests.cs
index 96cb63b..064dd50 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/UnaryOperatorMutatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/Operators/UnaryOperatorMutatorTests.cs
@@ -6,7 +6,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.Operators;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.Operators;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternCacheTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternCacheTests.cs
index 7490e59..59c601c 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternCacheTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternCacheTests.cs
@@ -2,7 +2,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.RegularExpressions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations.RegularExpressions;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternLocatorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternLocatorTests.cs
index 6922898..aab8bbb 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternLocatorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternLocatorTests.cs
@@ -7,7 +7,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.RegularExpressions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations;
using NetEvolve.FrameShift.Mutations.RegularExpressions;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternResolutionTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternResolutionTests.cs
index ee0b259..56292bc 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternResolutionTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternResolutionTests.cs
@@ -3,7 +3,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations.RegularExpressions;
using System.Text.RegularExpressions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Mutations.RegularExpressions;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternTokenizerAdversarialTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternTokenizerAdversarialTests.cs
index bb32946..a6e47a9 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternTokenizerAdversarialTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/RegularExpressions/RegexPatternTokenizerAdversarialTests.cs
@@ -1063,7 +1063,7 @@ private static string Reconstruct(ImmutableArray tokens)
///
/// Checks that the tokens tile the pattern and that every token's text is the substring its own span
/// names. A description rather than a boolean, so that a failure names the offending token instead of
- /// only saying false.
+ /// only saying .
///
/// The tokenized pattern.
/// The tokens of the pattern.
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/WellKnownTypeCacheTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/WellKnownTypeCacheTests.cs
index 8638f83..db111f3 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/WellKnownTypeCacheTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Mutations/WellKnownTypeCacheTests.cs
@@ -2,7 +2,7 @@ namespace NetEvolve.FrameShift.Tests.Unit.Mutations;
using Microsoft.CodeAnalysis;
using NetEvolve.FrameShift.Mutations;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureBehavioralTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureBehavioralTests.cs
index 0b7fc3b..7581962 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureBehavioralTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureBehavioralTests.cs
@@ -1,9 +1,9 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Reachability;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using NetEvolve.FrameShift.Reachability;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureMemberTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureMemberTests.cs
index c3d1472..7cdbe21 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureMemberTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureMemberTests.cs
@@ -1,11 +1,11 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Reachability;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Reachability;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosurePolymorphismTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosurePolymorphismTests.cs
index 8714ade..a5e3116 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosurePolymorphismTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosurePolymorphismTests.cs
@@ -1,10 +1,10 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Reachability;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using NetEvolve.FrameShift.Reachability;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -25,7 +25,7 @@
///
///
/// The negative cases matter just as much. A member that merely shares a name with the abstraction,
-/// a member that hides it with new instead of overriding it, and an override of a base that
+/// a member that hides it with instead of overriding it, and an override of a base that
/// nobody touched must all stay out of the reachable set, because a set that grows too eagerly hides
/// exactly the gaps the analysis exists to find.
///
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureTests.cs
index 25ba43d..28e02f9 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachabilityClosureTests.cs
@@ -1,11 +1,11 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Reachability;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Reachability;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachableSymbolSetTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachableSymbolSetTests.cs
index 08f31fa..69439f6 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachableSymbolSetTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/Reachability/ReachableSymbolSetTests.cs
@@ -1,9 +1,9 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.Reachability;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using NetEvolve.FrameShift.Reachability;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
using TUnit.Core;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/AssertionRecognitionTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/AssertionRecognitionTests.cs
index ea5dc78..ec79080 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/AssertionRecognitionTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/AssertionRecognitionTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/Bridges/GeneratorDriverBridgeTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/Bridges/GeneratorDriverBridgeTests.cs
index a7f1d7e..e123644 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/Bridges/GeneratorDriverBridgeTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/Bridges/GeneratorDriverBridgeTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface.Bridges;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using NetEvolve.FrameShift.TestSurface.Bridges;
using TUnit.Assertions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestFrameworkProbeTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestFrameworkProbeTests.cs
index e2fed3a..4f091a5 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestFrameworkProbeTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestFrameworkProbeTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestMethodRecognizerTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestMethodRecognizerTests.cs
index c446ed4..da39f5f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestMethodRecognizerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/MSTestMethodRecognizerTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestFrameworkProbeTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestFrameworkProbeTests.cs
index c071241..52a9cfd 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestFrameworkProbeTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestFrameworkProbeTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestMethodRecognizerTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestMethodRecognizerTests.cs
index 8af518a..2db184b 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestMethodRecognizerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/NUnitTestMethodRecognizerTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestFrameworkProbeTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestFrameworkProbeTests.cs
index 7b33113..01c0fc5 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestFrameworkProbeTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestFrameworkProbeTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestMethodRecognizerTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestMethodRecognizerTests.cs
index 7a60191..08878e6 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestMethodRecognizerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TUnitTestMethodRecognizerTests.cs
@@ -1,9 +1,9 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestCaseCountTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestCaseCountTests.cs
index 9e0733a..80f92dc 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestCaseCountTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestCaseCountTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestFrameworkProbeRegistryTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestFrameworkProbeRegistryTests.cs
index 1d40267..a0cb872 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestFrameworkProbeRegistryTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestFrameworkProbeRegistryTests.cs
@@ -1,9 +1,9 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestMethodDiscoveryTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestMethodDiscoveryTests.cs
index f3331b5..da52c30 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestMethodDiscoveryTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestMethodDiscoveryTests.cs
@@ -1,9 +1,9 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorBehavioralTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorBehavioralTests.cs
index 9e8baf9..e2231a4 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorBehavioralTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorBehavioralTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -14,7 +14,7 @@ namespace NetEvolve.FrameShift.Tests.Unit;
/// recognised, non-trivial assertion somewhere in its reachable code.
///
///
-/// The fixture, like , avoids var and predefined type
+/// The fixture, like , avoids and predefined type
/// keywords inside the walked test code, so that framework members do not pollute the ids under test.
///
public class TestSurfaceCollectorBehavioralTests
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorMemberTraversalTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorMemberTraversalTests.cs
index ba2d86e..953191b 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorMemberTraversalTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorMemberTraversalTests.cs
@@ -1,9 +1,9 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorTests.cs
index 1cf603c..55b14eb 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceCollectorTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
@@ -16,7 +16,7 @@ namespace NetEvolve.FrameShift.Tests.Unit;
/// that every recorded member is attributed to every test that reaches it.
///
///
-/// The fixture deliberately avoids var, predefined type keywords and operators inside the code
+/// The fixture deliberately avoids , predefined type keywords and operators inside the code
/// that is walked. Those all bind to members of the framework assemblies, which are outside the test
/// assembly and would therefore be recorded as production references, drowning the interesting ids in
/// noise.
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestReaderTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestReaderTests.cs
index dcb2ed5..968065a 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestReaderTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestReaderTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis.Text;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestTests.cs
index a691c14..120ed87 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using System.Collections.Immutable;
using NetEvolve.FrameShift.TestSurface;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestWriterTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestWriterTests.cs
index 453414b..4db0459 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestWriterTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/TestSurfaceManifestWriterTests.cs
@@ -1,4 +1,4 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis.Text;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestFrameworkProbeTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestFrameworkProbeTests.cs
index 59c5ff3..61b8ece 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestFrameworkProbeTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestFrameworkProbeTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestMethodRecognizerTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestMethodRecognizerTests.cs
index 8b75fb9..3ebbb0f 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestMethodRecognizerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV2TestMethodRecognizerTests.cs
@@ -1,8 +1,8 @@
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestFrameworkProbeTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestFrameworkProbeTests.cs
index b87bea0..6b04c7d 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestFrameworkProbeTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestFrameworkProbeTests.cs
@@ -1,9 +1,9 @@
#if FRAMESHIFT_XUNIT_V3
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;
diff --git a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestMethodRecognizerTests.cs b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestMethodRecognizerTests.cs
index 485bf99..1c8d68d 100644
--- a/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestMethodRecognizerTests.cs
+++ b/tests/NetEvolve.FrameShift.Tests.Unit/TestSurface/XunitV3TestMethodRecognizerTests.cs
@@ -1,9 +1,9 @@
#if FRAMESHIFT_XUNIT_V3
-namespace NetEvolve.FrameShift.Tests.Unit;
+namespace NetEvolve.FrameShift.Tests.Unit.TestSurface;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-using NetEvolve.FrameShift.Tests.Infrastructure;
+using NetEvolve.FrameShift.Tests.Unit.Infrastructure;
using NetEvolve.FrameShift.TestSurface;
using TUnit.Assertions;
using TUnit.Assertions.Extensions;