private ModelMatcher<double[],Double> createModel(int minPoints, double fitThreshold) { DoubleArrayManager manager = new DoubleArrayManager(1); DistanceFromMeanModel dist = new DistanceFromMeanModel(); MeanModelFitter fitter = new MeanModelFitter(); return createModelMatcher(manager,dist, fitter,fitter, minPoints, fitThreshold); }
@Test public void metric_and_prune() { LinkedList<PointIndex<Double>> inliers = new LinkedList<PointIndex<Double>>(); for (int i = 0; i < 200; i++) { inliers.add(new PointIndex<Double>((double) i,i)); } // randomize the inputs Collections.shuffle(inliers, rand); FitByMedianStatistics<double[],Double> fit = new FitByMedianStatistics<double[],Double>(0.90); fit.init(new DistanceFromMeanModel(), inliers); fit.computeStatistics(); assertEquals(100, fit.getErrorMetric(), 1e-8); fit.prune(); assertEquals(180, inliers.size()); }
@Test public void metric_and_prune() { LinkedList<PointIndex<Double>> inliers = new LinkedList<PointIndex<Double>>(); for (int i = 0; i < 200; i++) { inliers.add(new PointIndex<Double>((double) i,i)); } // randomize the inputs Collections.shuffle(inliers,rand); FitByMeanStatistics<double[],Double> fit = new FitByMeanStatistics<double[],Double>(1); fit.init(new DistanceFromMeanModel(), inliers); fit.computeStatistics(); assertEquals(99.5, fit.getErrorMetric(), 1e-8); fit.prune(); assertEquals(158, inliers.size()); } }