public ArrayList<AnalysisResult<T>> getOutliers(Track<T> track) {

        // the stream is wonky due to the raw type, probably could be improved

        return track.points().stream()
            .map(point -> analyzePoint(point, track))
            .filter(analysisResult -> analysisResult.isOutlier())
            .collect(toCollection(ArrayList::new));
    }
@Test
    public void testBuggedOutlier() {
        /*
         * This track contains an "outlier" that shouldn't really be an outlier. This test ensure
         * that future editions of VerticalOutlierDetector do not flag this track.
         */
        Track<NopHit> testTrack = createTrackFromResource(
            VerticalOutlierDetector.class,
            "outlierBug-A11-HAG75A-7.txt"
        );

        /*
         * An imperfect outlier detector can consider this point an Outlier:
         *
         * [RH],STARS,A11,10/18/2016,02:38:16.518,,,,2261,213,217,110,061.36202,-153.26353,0038,0000,-93.3379,13.3411,,,,A11,,,,,,ACT,IFR,,00000,,,,,,,1,,0,{RH}
         */
        Collection<AnalysisResult<NopHit>> outliers = (new VerticalOutlierDetector<NopHit>()).getOutliers(testTrack);

        confirmExactlyTheseOutliers(
            outliers,
            "[RH],STARS,A11,10/18/2016,02:25:16.460,,,,2261,000,000,xxx,061.64543,-154.94138,0038,0000,-140.2090,33.3177,,,,A11,,,,,,ACT,IFR,,00000,,,,,,,1,,0,{RH}"
        );

    }