<PackageReference Include="NUnit" Version="4.3.2" />

ConstraintBuilder

public sealed class ConstraintBuilder : IResolveConstraint
ConstraintBuilder maintains the stacks that are used in processing a ConstraintExpression. An OperatorStack is used to hold operators that are waiting for their operands to be reorganized. a ConstraintStack holds input constraints as well as the results of each operator applied.
public sealed class ConstraintStack

ConstraintStack is a type-safe stack for holding Constraints

Initializes a new instance of the ConstraintBuilder class.

public void Append(ConstraintOperator op)

Appends the specified operator to the expression by first reducing the operator stack and then pushing the new operator on the stack.

public void Append(Constraint constraint)

Appends the specified constraint to the expression by pushing it on the constraint stack.

public void Replace(Constraint constraint)

Replaces the last pushed constraint with the specified constraint.

Resolves this instance, returning a Constraint. If the Builder is not currently in a resolvable state, an exception is thrown.