evaluate#

Types for scoring alternative change sets against the accepted baseline of a Project. You pass a list of Candidate objects and EvaluateOptions to Project.Evaluate, or to Project.EvaluateWith together with an Execution mode. Each candidate runs on a disposable copy, so the project itself doesn't change.

The call returns an EvaluateResult: baseline Metrics plus one CandidateResult per candidate. The rest of the folder holds the parts of those metrics: LeveledMetrics for the leveled stage, Finish, TaskFinish and Shift for finish dates, and Overload with ResourceOverload, FocusOverload and Amount.

Execution is a readonly record struct and Amount is a record struct. The other types are sealed classes, and the result types implement IEquatable<T> with value equality. Every type here is in the Plen namespace. For how to compare candidates, see Evaluating alternatives.

  • CandidateOne alternative change set, identified by an id, that Project.Evaluate scores against the baseline
  • CandidateResultThe score of one candidate from Project.Evaluate, either its stage metrics and cost or the error that rejected it
  • EvaluateOptionsOptions for Project.Evaluate - baseline guard, leveling stage, focus tasks and cleared reference
  • EvaluateResultThe result of Project.Evaluate - baseline metrics and one scored result per candidate
  • ExecutionSelects whether Project.EvaluateWith scores candidates one after another or on worker threads
  • LeveledMetricsMetrics of the leveled stage plus a summary of the leveling run
  • MetricsFinish dates, overload, conflict and cycle counts and the cost of one evaluated stage, measured against the baseline
  • OverloadResource overload of one evaluated stage - in total, per resource and per focus task, each with its difference from the baseline