### Question:
RangeJsonSerde { private RangeJsonSerde() {} private  RangeJsonSerde();   }### Answer:
@Test public void testRangeJsonSerde() throws JsonProcessingException { TestingTypeManager typeManager = new TestingTypeManager(); TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(); ObjectMapper mapper = new ObjectMapperProvider().get() .registerModule(new SimpleModule() .addSerializer(Range.class, new RangeJsonSerde.Serializer()) .addDeserializer(Range.class, new RangeJsonSerde.Deserializer()) .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager)) .addSerializer(Block.class, new TestingBlockJsonSerde.Serializer(blockEncodingSerde)) .addDeserializer(Block.class, new TestingBlockJsonSerde.Deserializer(blockEncodingSerde))); Range singleValueRange = Range.equal(BIGINT, 1L); Range range = Range.range(BIGINT, 12L, true, 42L, true); Range unboundedRange = Range.greaterThan(BIGINT, 123L); String serializedRanges = mapper.writeValueAsString(ImmutableList.of(singleValueRange, range, unboundedRange, singleValueRange)); assertEquals(serializedRanges, "[" + "1,\"bigint\",\"CgAAAExPTkdfQVJSQVkBAAAAAAEAAAAAAAAA\"," + "0,{\"type\":\"bigint\",\"valueBlock\":\"CgAAAExPTkdfQVJSQVkBAAAAAAwAAAAAAAAA\",\"bound\":\"EXACTLY\"},{\"type\":\"bigint\",\"valueBlock\":\"CgAAAExPTkdfQVJSQVkBAAAAACoAAAAAAAAA\",\"bound\":\"EXACTLY\"}," + "0,{\"type\":\"bigint\",\"valueBlock\":\"CgAAAExPTkdfQVJSQVkBAAAAAHsAAAAAAAAA\",\"bound\":\"ABOVE\"},{\"type\":\"bigint\",\"bound\":\"BELOW\"}," + "1,\"bigint\",\"CgAAAExPTkdfQVJSQVkBAAAAAAEAAAAAAAAA\"]"); assertEquals(mapper.readValue(serializedRanges, new TypeReference<List<Range>>() {}), ImmutableList.of(singleValueRange, range, unboundedRange, singleValueRange)); }