Skip to content

SpaceCertainty

Namespace Nfty.Core.Generation in assembly Nfty.Core.

public enum SpaceCertainty

What a counted space actually tells you: an answer, a bound in a stated direction, or nothing.

Remarks

This used to be a bool IsExact, and the bool was wrong in one case. Three of the four outcomes below reported false together, and every surface rendered that one way - "more than N" - because two of them really are floors. The third is not: when a recipe has rules and too many combinations to walk, the count gave up and reported the BUDGET as the total, so a book whose rules exclude all but four hundred selections announced "more than 1,000,000". Rules can only REMOVE, so that number was not a lower bound at all; it was an upper one wearing the wrong label.

Naming the direction fixes it by construction. It is the rule this codebase already applies to colour specs and passphrase sources: state which kind of thing you have rather than leaving a reader to infer it from a flag that cannot carry the distinction.

Values

  • Exact = 0 - The total IS the figure. Nothing gave up and nothing saturated.
  • AtLeast = 1 - The real figure is LARGER than the total: a colorization filled more buckets than the enumeration budget allowed collecting, so every product built on it is short. Renders as "more than N".
  • AtMost = 2 - The real figure is NO LARGER than the total — the recipe has rules and more combinations than the enumeration budget allows walking, so the unconstrained product is reported.
  • Unknown = 3 - Nothing is known and the total means nothing. The book is invalid in a way that makes the question meaningless (a layerOrder entry naming no ingredient, a Dynamic layer with no colorization), or the two bounds above contradict each other.