anchor.diff:  [[constraintStreamsTestingSpringBoot]]
   === Testing in Spring Boot
   
  -If you are using the `optaplanner-spring-boot-starter` module, you can autowire the `ConstraintVerifier` in your tests.
  +If you are using the `optaplanner-spring-boot-starter` module, autowire the `ConstraintVerifier` in your tests:
   
   [source,java,options="nowrap"]
   ----
  
positive.code: [[constraintStreamsDealingWithDuplicateTuplesUsingDistinct]]
  ==== Dealing with duplicate tuples using `distinct()`
  
  As a general rule, tuples in constraint streams will be distinct.
  That is, no two tuples that equal one another.
  However, certain operations such as <<constraintStreamsMappingTuples,tuple mapping>> may produce constraint streams
  where that is not true.
  
negative.code:     }
  ----
  
  The sum is collected in an `int`. Variants of this collector:
  
  * `sumLong()` collects a `long` value instead of an `int` value.
  * `sumBigDecimal()` collects a `java.math.BigDecimal` value instead of an `int` value.
  * `sumBigInteger()` collects a `java.math.BigInteger` value instead of an `int` value.
  * `sumDuration()` collects a `java.time.Duration` value instead of an `int` value.
  * `sumPeriod()` collects a `java.time.Period` value instead of an `int` value.
  * a generic `sum()` variant for summing up custom types
  
  
  [[collectorsMinMax]]
  ===== `min()` and `max()` collectors
  
  To extract the minimum or maximum per group, use the `ConstraintCollectors.min(...)` and
  `ConstraintCollectors.max(...)` collectors respectively.
  
  These collectors operate on values of properties which are `Comparable` (such as `Integer`, `String` or `Duration`),
  