public static <K, V> KvCoder<K, V> of(Coder<K> keyCoder, Coder<V> valueCoder) {
    return new KvCoder<>(keyCoder, valueCoder);
  }
@Test
  @SuppressWarnings("rawtypes")
  public void testDecodeEncodeEqual() throws Exception {
    for (AnyCoderAndData keyCoderAndData : TEST_DATA) {
      Coder keyCoder = keyCoderAndData.coderAndData.coder;
      for (Object key : keyCoderAndData.coderAndData.data) {
        for (AnyCoderAndData valueCoderAndData : TEST_DATA) {
          Coder valueCoder = valueCoderAndData.coderAndData.coder;
          for (Object value : valueCoderAndData.coderAndData.data) {
            CoderProperties.coderDecodeEncodeEqual(
                KvCoder.of(keyCoder, valueCoder), KV.of(key, value));
          }
        }
      }
    }
  }