### Question:
DriftDetector { public static DriftDetectorTransformer detectDrift() { return new DriftDetectorTransformer(Options.instance()); }  static Observable<DriftCandidate> getCandidates(Observable<HasFix> o, Options options); static DriftDetectorTransformer detectDrift(); static DriftDetectorTransformer detectDrift(Options options);  }### Answer:
@Test public void testBackpressure() { TestSubscriber<DriftCandidate> ts = new TestSubscriber<DriftCandidate>(1) { @Override public void onNext(DriftCandidate t) { super.onNext(t); request(1); } }; long t = 0; Fix f1 = createFix(1, DRIFT_SPEED_KNOTS, t += 1); Fix f2 = createFix(1, DRIFT_SPEED_KNOTS, t += 1); Fix f3 = createFix(91, DRIFT_SPEED_KNOTS, t += 1); Fix f4 = createFix(92, DRIFT_SPEED_KNOTS, t += 1); Fix f5 = createFix(92, DRIFT_SPEED_KNOTS, t += 1); Observable.just(f1, f2, f3, f4, f5).compose(DriftDetector.detectDrift(testOptions)) .subscribe(ts); ts.awaitTerminalEvent(); ts.assertCompleted(); ts.assertNoErrors(); assertEquals(3, ts.getOnNextEvents().size()); }