@@ -0,0 +1,867 @@
+package io.sigpipe.sing.dataset;%0A%0Aimport java.util.HashMap;%0Aimport java.util.List;%0Aimport java.util.Map;%0A%0Aimport io.sigpipe.sing.dataset.feature.Feature;%0Aimport io.sigpipe.sing.stat.RunningStatistics;%0A%0Apublic class TickEvaluator %7B%0A%0A    private Quantizer quantizer;%0A    private Map%3CFeature, RunningStatistics%3E statMap = new HashMap%3C%3E();%0A%0A    public TickEvaluator(Quantizer quantizer) %7B%0A        this.quantizer = quantizer;%0A    %7D%0A%0A    public void train(List%3CFeature%3E features) %7B%0A        for (Feature feature : features) %7B%0A            Feature q = quantizer.quantize(feature);%0A            RunningStatistics rs = statMap.get(q);%0A            if (rs == null) %7B%0A                rs = new RunningStatistics();%0A                statMap.put(q, rs);%0A            %7D%0A            rs.put(feature.getDouble());%0A        %7D%0A    %7D%0A%0A    public void evaluate(List%3CFeature%3E features) %7B%0A%0A    %7D%0A%7D%0A

Add class to evaluate tick mark errors