### Question:
StatisticAggregationsDescriptor { public static <B> Builder<B> builder() { return new Builder<>(); } @JsonCreator  StatisticAggregationsDescriptor(
            @JsonProperty("grouping") Map<String, T> grouping,
            @JsonProperty("tableStatistics") Map<TableStatisticType, T> tableStatistics,
            @JsonProperty("columnStatistics") Map<ColumnStatisticMetadata, T> columnStatistics); static StatisticAggregationsDescriptor<T> empty(); @JsonProperty Map<String, T> getGrouping(); @JsonProperty Map<TableStatisticType, T> getTableStatistics(); @JsonProperty @JsonSerialize(keyUsing = ColumnStatisticMetadataKeySerializer.class) @JsonDeserialize(keyUsing = ColumnStatisticMetadataKeyDeserializer.class) Map<ColumnStatisticMetadata, T> getColumnStatistics(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static Builder<B> builder(); StatisticAggregationsDescriptor<T2> map(Function<T, T2> mapper);  }### Answer:
@Test public void testSerializationRoundTrip() { JsonCodec<StatisticAggregationsDescriptor<Symbol>> codec = JsonCodec.jsonCodec(new TypeToken<>() {}); assertSerializationRoundTrip(codec, StatisticAggregationsDescriptor.<Symbol>builder().build()); assertSerializationRoundTrip(codec, createTestDescriptor()); }