anchor.diff:    });
   }
   
  -SequenceElementsDistributionCalculator createDistributionCalculator<T>(
  -    Iterable<T> values, HashMap<T, double> distribution) {
  +SequenceElementsDistributionCalculator createDistributionCalculator(
  +    Iterable<num> values, HashMap<double, double> distribution) {
     final distributionCalculator = DistributionCalculatorMock();
   
  -  when(distributionCalculator.calculate<T>(argThat(equals(values)), any))
  +  when(distributionCalculator.calculate<double>(argThat(equals(values)), any))
         .thenReturn(distribution);
   
     return distributionCalculator;
  
positive.code:         'labels are vectors and the observations contain only one class '
          'label', () {
        final observations = Matrix.fromList([
          [10, 20, 30, 0, 1, 0],
        ]);
        final outcomesColumnRange = ZRange.closed(3, 5);
  
        final classLabel = Vector.fromList([0, 0, 1]);
        final classProbability = 1.0;
  
        final distribution = HashMap<Vector, double>.from(<Vector, double>{
          classLabel: classProbability,
        });
  
        final distributionCalculator = createDistributionCalculator<Vector>(
          [Vector.fromList([0, 1, 0])],
          distribution,
        );
        final labelFactory = MajorityLeafLabelFactory(distributionCalculator);
        final label = labelFactory.create(observations, outcomesColumnRange,
            true);
  
        expect(label.nominalValue, equals(classLabel));
        expect(label.numericalValue, isNull);
  
negative.code:         [17, 10, 32, 3],
          [70, 80, 90, 3],
        ]);
  
        final classLabel = 3.0;
        final classProbability = 1.0;
  