code: public static <T1, T2, T3> Predicate<Tuple3<T1, T2, T3>> predicate(Predicate3<T1, T2, T3> predicate) {
          return tuple -> predicate.test(tuple.getT1(), tuple.getT2(), tuple.getT3());
      }
docs: Returns a {@link Predicate} of {@link Tuple3} that wraps a predicate of the component values of the tuple
  
  @param predicate the component value predicate
  @param <T1>      the type of the first value
  @param <T2>      the type of the second value
  @param <T3>      the type of the third value
  @return the wrapper predicate