public static <InputT> UsingBuilder<InputT> of(PCollection<InputT> input) {
    return new UsingBuilder<>(DEFAULT_NAME, input);
  }
@SuppressWarnings("unchecked")
  @Test
  public void testBuild_NegatedPredicate() {
    final PCollection<Integer> dataset = TestUtils.createMockDataset(TypeDescriptors.integers());
    final Split.Output<Integer> split =
        Split.of(dataset).using((UnaryPredicate<Integer>) what -> what % 2 == 0).output();

    final Filter<Integer> oddNumbers = (Filter) TestUtils.getProducer(split.negative());
    assertFalse(oddNumbers.getPredicate().apply(0));
    assertFalse(oddNumbers.getPredicate().apply(2));
    assertFalse(oddNumbers.getPredicate().apply(4));
    assertTrue(oddNumbers.getPredicate().apply(1));
    assertTrue(oddNumbers.getPredicate().apply(3));
    assertTrue(oddNumbers.getPredicate().apply(5));
  }