1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.metrics;
20
21 import junit.framework.Assert;
22
23 import com.yammer.metrics.stats.ExponentiallyDecayingSample;
24 import com.yammer.metrics.stats.Snapshot;
25
26 import org.apache.hadoop.hbase.SmallTests;
27
28 import org.junit.Test;
29 import org.junit.experimental.categories.Category;
30
31 @Category(SmallTests.class)
32 public class TestExponentiallyDecayingSample {
33
34 @Test
35 public void testBasic() {
36 final ExponentiallyDecayingSample sample =
37 new ExponentiallyDecayingSample(100, 0.99);
38
39 for (int i = 0; i < 1000; i++) {
40 sample.update(i);
41 }
42 Assert.assertEquals(100, sample.size());
43
44 final Snapshot snapshot = sample.getSnapshot();
45 Assert.assertEquals(100, snapshot.size());
46
47 for (double i : snapshot.getValues()) {
48 Assert.assertTrue(i >= 0.0 && i < 1000.0);
49 }
50 }
51
52 @Test
53 public void testTooBig() throws Exception {
54 final ExponentiallyDecayingSample sample =
55 new ExponentiallyDecayingSample(100, 0.99);
56 for (int i = 0; i < 10; i++) {
57 sample.update(i);
58 }
59 Assert.assertEquals(10, sample.size());
60
61 final Snapshot snapshot = sample.getSnapshot();
62 Assert.assertEquals(10, sample.size());
63
64 for (double i : snapshot.getValues()) {
65 Assert.assertTrue(i >= 0.0 && i < 1000.0);
66 }
67 }
68 }