Table of Contents

Namespace MathAssertions.TUnit

Classes

ArrayAssertions

Fluent double[] / float[] array assertions delegating to the MathTolerance span overloads. Arrays are used at the adapter surface rather than spans because TUnit's assertion-builder infrastructure cannot capture ref-struct values across an await boundary; ReadOnlySpan<T> remains accessible to callers via MathTolerance.IsApproximatelyEqual directly when zero-allocation matters.

ComplexAssertions

Fluent Complex assertions delegating to MathTolerance.

Geometry3DAssertions

Fluent assertions over the MathAssertions.Geometry3D primitives: triangle / point-set property predicates, containment, closest-point distance, intersection, and pointcloud aggregates.

LinearAlgebraAssertions

Fluent LinearAlgebra assertions for Vector3 pair properties and Vector3-array linear independence. Matrix-side invariants live on MatrixAssertions.

MatrixAssertions

Fluent Matrix4x4 assertions covering element-wise equality and the matrix invariants from LinearAlgebra.

NumberTheoryAssertions

Fluent NumberTheory assertions over long integers. The non-predicate helpers (GreatestCommonDivisor, LeastCommonMultiple) are not exposed as fluent assertions in 0.1.0; consumers can call them statically and apply ScalarAssertions on the result.

PlaneAssertions

Fluent Plane assertions. Distinguishes component-wise equality (treats (n, d) and (-n, -d) as different) from geometric equivalence (treats them as the same plane).

PoseAssertions

Fluent pose / rigid-transform assertions. A pose is a position and an orientation together; these assertions compare the two halves with separate tolerances (position as a Euclidean distance in the caller's length unit, rotation as a geodesic angle in degrees) and report one combined diagnostic that names which half missed. A single shared tolerance would be wrong because the two quantities carry different units.

QuaternionAssertions

Fluent Quaternion assertions. Distinguishes component-wise equality (treats q and -q as different) from rotational equivalence (treats them as the same rotation, the SO(3) double-cover view).

ScalarAssertions

Fluent scalar (double / float) assertions delegating to MathTolerance. The wrappers exist so consumers can write await Assert.That(value).IsApproximatelyEqualTo(expected, tolerance) rather than await Assert.That(MathTolerance.IsApproximatelyEqual(value, expected, tolerance)).IsTrue().

SequencesAssertions

Fluent Sequences assertions over double arrays plus the generic length predicates over any T[]. Arrays are used at the adapter surface for the same ref-struct reason documented on ArrayAssertions; null arrays are rejected at entry.

StatisticsAssertions

Fluent Statistics assertions over double arrays. Null arrays are rejected at entry.

VectorAssertions

Fluent System.Numerics vector assertions delegating to MathTolerance. Component values widen to double internally so a tight tolerance is honored at full precision.