import mir.math.sum: Summation; import mir.ndslice.slice: sliced; import mir.test: shouldApprox; auto x = [ 0.0, 1.0, 1.5, 2.0, 3.5, 4.25, 2.0, 7.5, 5.0, 1.0, 1.5, 0.0].sliced; auto y = [-0.75, 6.0, -0.25, 8.25, 5.75, 3.5, 9.25, -0.75, 2.5, 1.25, -1, 2.25].sliced; auto v = CovarianceAccumulator!(double, CovarianceAlgo.twoPass, Summation.naive)(x, y); v.covariance(true).shouldApprox == -5.5 / 12; v.covariance(false).shouldApprox == -5.5 / 11;