public static <T> MutationDetector forValueWithCoder(T value, Coder<T> coder)
      throws CoderException {
    if (value == null) {
      return noopMutationDetector();
    } else {
      return new CodedValueMutationDetector<>(value, coder);
    }
  }
@Test
  public void testImmutableIterable() throws Exception {
    Iterable<Integer> value = FluentIterable.from(Arrays.asList(1, 2, 3, 4)).cycle().limit(50);
    MutationDetector detector =
        MutationDetectors.forValueWithCoder(value, IterableCoder.of(VarIntCoder.of()));
    detector.verifyUnmodified();
  }