anchor.diff:  [[invalidScoreDetection]]
   === Invalid Score Detection
   
  -
  -Put the `environmentMode` in `FULL_ASSERT` (or ``FAST_ASSERT``) to detect corruption in the <<incrementalScoreCalculation,incremental score calculation>>.
  -For more information, <<environmentMode,see the section about `environmentMode`>>.
  -However, that will not verify that your score calculator implements your score constraints as your business actually desires.
  -
  -A piece of incremental score calculator code can be difficult to write and to review.
  -Assert its correctness by using a different implementation (for example a ``EasyScoreCalculator``) to do the assertions triggered by the ``environmentMode``.
  -Just configure the different implementation as a ``assertionScoreDirectorFactory``:
  +When you put <<environmentMode,the `environmentMode`>>in `FULL_ASSERT` (or ``FAST_ASSERT``),
  +it will detect score corruption in the <<incrementalScoreCalculation,incremental score calculation>>.
  +However, that will not verify that your score calculator actually implements your score constraints as your business desires.
  +For example, one score rule might consistently match the wrong pattern.
  +To verify the score rules against an independent implementation, configure a ``assertionScoreDirectorFactory``:
   
   [source,xml,options="nowrap"]
   ----
  
positive.code:   </scoreDirectorFactory>
  ----
  
  
  Optionally, to explain a score with `ScoreDirector.getConstraintMatchTotals()` or to get better output when the `IncrementalScoreCalculator` is corrupted in `FAST_ASSERT` or ``FULL_ASSERT environmentMode``, implement also the `ConstraintMatchAwareIncrementalScoreCalculator` interface:
  
  
negative.code: 
  There is a `ScoreVerifier` implementation for each `Score` implementation.
  In the `assertHardWeight()` and `assertSoftWeight()` methods, the weight of the other score rules is ignored (even those of the same score level).
  
  [NOTE]
  ====
  A ScoreVerifier does not work well to isolate score corruption,
  use <<invalidScoreDetection, an `assertionScoreDirectorFactory`>> instead.
  ====
  