1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.hadoop.hbase.util;
21
22 import static org.junit.Assert.assertEquals;
23
24 import org.apache.hadoop.hbase.testclassification.MiscTests;
25 import org.apache.hadoop.hbase.testclassification.SmallTests;
26
27 import org.junit.ClassRule;
28 import org.junit.Test;
29 import org.junit.experimental.categories.Category;
30
31 @Category({MiscTests.class, SmallTests.class})
32 public class TestLossyCounting {
33
34 @Test
35 public void testBucketSize() {
36 LossyCounting lossyCounting = new LossyCounting(0.01);
37 assertEquals(100L, lossyCounting.getBuketSize());
38 LossyCounting lossyCounting2 = new LossyCounting();
39 assertEquals(50L, lossyCounting2.getBuketSize());
40 }
41
42 @Test
43 public void testAddByOne() {
44 LossyCounting lossyCounting = new LossyCounting(0.01);
45 for(int i = 0; i < 100; i++){
46 String key = "" + i;
47 lossyCounting.addByOne(key);
48 }
49 assertEquals(100L, lossyCounting.getDataSize());
50 for(int i = 0; i < 100; i++){
51 String key = "" + i;
52 assertEquals(true, lossyCounting.contains(key));
53 }
54 }
55
56 @Test
57 public void testSweep1() {
58 LossyCounting lossyCounting = new LossyCounting(0.01);
59 for(int i = 0; i < 400; i++){
60 String key = "" + i;
61 lossyCounting.addByOne(key);
62 }
63 assertEquals(4L, lossyCounting.getCurrentTerm());
64 assertEquals(0L, lossyCounting.getDataSize());
65 }
66
67 @Test
68 public void testSweep2() {
69 LossyCounting lossyCounting = new LossyCounting(0.1);
70 for(int i = 0; i < 10; i++){
71 String key = "" + i;
72 lossyCounting.addByOne(key);
73 }
74 assertEquals(10L, lossyCounting.getDataSize());
75 for(int i = 0; i < 10; i++){
76 String key = "1";
77 lossyCounting.addByOne(key);
78 }
79 assertEquals(1L, lossyCounting.getDataSize());
80 }
81
82
83 }