$ java CollectorVsGatherer      (JDK 25)
Collectors.groupingBy totals = {amy=19.75, bo=23.99}
CHECK ok   : amy's total via groupingBy/summingDouble is 19.75
CHECK ok   : bo's total via groupingBy/summingDouble is 23.99
scan -> filter -> map, one pipeline = [total=30, total=50, total=75]
CHECK ok   : scan feeding straight into filter/map in the same pipeline gives [total=30, total=50, total=75]
windowFixed(2) over 7 elements, then collect(counting()) = 4
CHECK ok   : collect(counting()) after gather() proves the gather result is still a Stream you can collect further: 4 windows
exit=0
