### Question:
FilterFn extends DoFn<T, T> { public static <S> FilterFn<S> or(FilterFn<S>...fns) { return new OrFn<S>(fns); }  abstract boolean accept(T input); @Override void process(T input, Emitter<T> emitter); @Override float scaleFactor(); static FilterFn<S> and(FilterFn<S>...fns); static FilterFn<S> or(FilterFn<S>...fns); static FilterFn<S> not(FilterFn<S> fn);  }### Answer:
@Test public void testOr() { assertFalse(FilterFn.or(FALSE).accept("foo")); assertTrue(FilterFn.or(FALSE, TRUE).accept("foo")); assertTrue(FilterFn.or(TRUE, FALSE, TRUE).accept("foo")); assertFalse(FilterFn.or(FALSE, FALSE, FALSE).accept("foo")); }