public static <InputT> UsingBuilder<InputT> of(PCollection<InputT> input) {
    return new UsingBuilder<>(DEFAULT_NAME, input);
  }
@Test
  public void testBuild_ImplicitName() {
    final PCollection<String> dataset = TestUtils.createMockDataset(TypeDescriptors.strings());
    final Split.Output<String> split =
        Split.of(dataset).using((UnaryPredicate<String>) what -> true).output();

    final Filter positive = (Filter) TestUtils.getProducer(split.positive());
    assertTrue(positive.getName().isPresent());
    assertEquals(Split.DEFAULT_NAME + Split.POSITIVE_FILTER_SUFFIX, positive.getName().get());
    final Filter negative = (Filter) TestUtils.getProducer(split.negative());
    assertTrue(negative.getName().isPresent());
    assertEquals(Split.DEFAULT_NAME + Split.NEGATIVE_FILTER_SUFFIX, negative.getName().get());
  }