Create { public static <T> TimestampedValues<T> timestamped(Iterable<TimestampedValue<T>> elems) { return new TimestampedValues<>(elems, Optional.absent(), Optional.absent()); }  static Values<T> of(Iterable<T> elems); @SafeVarargs static Values<T> of(@Nullable T elem, @Nullable T... elems); @Experimental(Kind.SCHEMAS) static Values<Row> empty(Schema schema); static Values<T> empty(Coder<T> coder); static Values<T> empty(TypeDescriptor<T> type); static Values<KV<K, V>> of(Map<K, V> elems); static OfValueProvider<T> ofProvider(ValueProvider<T> provider, Coder<T> coder); static TimestampedValues<T> timestamped(Iterable<TimestampedValue<T>> elems); @SafeVarargs static TimestampedValues<T> timestamped(
      TimestampedValue<T> elem, @SuppressWarnings("unchecked") TimestampedValue<T>... elems); static TimestampedValues<T> timestamped(
      Iterable<T> values, Iterable<Long> timestamps);  }
@Test public void testCreateTimestampedEmptyUnspecifiedCoder() { 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.timestamped(new ArrayList<>())); }