public static DataCleaner<Track<NopHit>> simpleSmoothing() {

        NopEncoder nopEncoder = new NopEncoder();

        DataCleaner<Track<NopHit>> cleaner = coreSmoothing();
        ToStringFunction<Track<NopHit>> toString = track -> nopEncoder.asRawNop(track);
        ExceptionHandler exceptionHandler = new SequentialFileWriter("trackCleaningExceptions");

        return new ExceptionCatchingCleaner<>(cleaner, toString, exceptionHandler);
    }
@Test
    public void trackSmoothingShouldRemoveMirages() {

        //this garabage track is generated by fake radar returns off of radio towers and skyscrapers
        Track<NopHit> trackFromDataThatDoesntMove = erroneousTrackFromRadarMirage();

        DataCleaner<Track<NopHit>> basicSmoothing = TrackSmoothing.simpleSmoothing();
        Optional<Track<NopHit>> result = basicSmoothing.clean(trackFromDataThatDoesntMove);
        assertFalse(result.isPresent(), "This track should not make it through the filter");
    }