@Override
    public Class<? extends HistogramFunctionBuilder> builder() {
        return HistogramFunctionBuilder.class;
    }
@Test
    public void testBuilder() throws IllegalAccessException, InstantiationException {
        HistogramFunctionInst inst = new HistogramFunctionInst();
        inst.accept(
            MeterEntity.newService("service-test", Layer.GENERAL),
            new BucketedValues(
                BUCKETS, new long[] {
                1,
                4,
                10,
                10
            })
        );

        final StorageBuilder storageBuilder = inst.builder().newInstance();

        // Simulate the storage layer do, convert the datatable to string.
        final HashMapConverter.ToStorage hashMapConverter = new HashMapConverter.ToStorage();
        storageBuilder.entity2Storage(inst, hashMapConverter);
        final Map<String, Object> map = hashMapConverter.obtain();
        map.put(DATASET, ((DataTable) map.get(DATASET)).toStorageData());

        final HistogramFunction inst2 = (HistogramFunction) storageBuilder.storage2Entity(
            new HashMapConverter.ToEntity(map));
        Assertions.assertEquals(inst, inst2);
        // HistogramFunction equal doesn't include dataset.
        Assertions.assertEquals(inst.getDataset(), inst2.getDataset());
    }