public static <T> WindowedValues<T> windowedValues(Iterable<WindowedValue<T>> elems) {
    return new WindowedValues<>(elems, Optional.absent(), Optional.absent(), Optional.absent());
  }
@Test
  public void testCreateWindowedValuesEmptyUnspecifiedCoder() {
    p.enableAbandonedNodeEnforcement(false);

    thrown.expect(IllegalArgumentException.class);
    thrown.expectMessage("determine a default Coder");
    thrown.expectMessage("Create.empty(Coder)");
    thrown.expectMessage("Create.empty(TypeDescriptor)");
    thrown.expectMessage("withCoder(Coder)");
    thrown.expectMessage("withType(TypeDescriptor)");
    p.apply(Create.windowedValues(new ArrayList<>()));
  }