### Question:
PropertiesQuantilesCallback extends QuantilesCallback { @Override protected Buckets createBuckets(Stopwatch stopwatch) { BucketsType type = bucketsTypeEnumPropertyType.get(stopwatch, "type"); Long min = longPropertyType.get(stopwatch, "min"); Long max = longPropertyType.get(stopwatch, "max"); Integer nb = integerPropertyType.get(stopwatch, "nb"); Buckets buckets = type.createBuckets(stopwatch, min, max, nb); buckets.setLogTemplate(createLogTemplate(stopwatch)); return buckets; } PropertiesQuantilesCallback(Properties properties);   }### Answer:
@Test public void testCreateBuckets() throws IOException { Properties properties = new Properties(); properties.load(getClass().getResourceAsStream("quantiles.properties")); LocalPropertiesQuantilesCallback callback = new LocalPropertiesQuantilesCallback(properties); Buckets buckets = callback.createBuckets("org.test.Test"); assertEquals(buckets.getMin(), 0); assertEquals(buckets.getMax(), 60000); assertEquals(buckets.getBucketNb(), 5); assertEquals(buckets.getClass(), LinearBuckets.class); buckets = callback.createBuckets("org.javasimon.Test"); assertEquals(buckets.getMin(), 0); assertEquals(buckets.getMax(), 60000); assertEquals(buckets.getBucketNb(), 10); assertEquals(buckets.getClass(), LinearBuckets.class); buckets = callback.createBuckets("org.javasimon.slow.SlowClass"); assertEquals(buckets.getMin(), 0); assertEquals(buckets.getMax(), 300000); assertEquals(buckets.getBucketNb(), 10); assertEquals(buckets.getClass(), LinearBuckets.class); buckets = callback.createBuckets("org.javasimon.special.Test"); assertEquals(buckets.getMin(), 0); assertEquals(buckets.getMax(), 60000); assertEquals(buckets.getBucketNb(), 10); assertEquals(buckets.getClass(), ExponentialBuckets.class); }