public static <MapT extends Map<K, V>, K, V> Encoder<MapT> mapEncoder(
      Encoder<K> key, Encoder<V> value, Class<MapT> cls) {
    Expression serializer = mapSerializer(rootRef(new ObjectType(cls), true), key, value);
    Expression deserializer = mapDeserializer(rootCol(serializer.dataType()), key, value, cls);
    return EncoderFactory.create(serializer, deserializer, cls);
  }
@Test
  public void testMapEncoder() {
    testMapEncoder(Map.class, identity());
  }