Skip to content

Commit 1b81a91

Browse files
Add unit tests for cn.hutool.bloomfilter.BitSetBloomFilter
These tests were written using Diffblue Cover.
1 parent 8d5204c commit 1b81a91

File tree

2 files changed

+340
-0
lines changed

2 files changed

+340
-0
lines changed
Lines changed: 326 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,326 @@
1+
package cn.hutool.bloomfilter;
2+
3+
import static org.mockito.Matchers.anyDouble;
4+
5+
import com.diffblue.deeptestutils.Reflector;
6+
import org.junit.Assert;
7+
import org.junit.Rule;
8+
import org.junit.Test;
9+
import org.junit.rules.ExpectedException;
10+
import org.junit.rules.Timeout;
11+
import org.junit.runner.RunWith;
12+
import org.powermock.api.mockito.PowerMockito;
13+
import org.powermock.core.classloader.annotations.PrepareForTest;
14+
import org.powermock.modules.junit4.PowerMockRunner;
15+
16+
import java.lang.reflect.InvocationTargetException;
17+
import java.util.BitSet;
18+
19+
@RunWith(PowerMockRunner.class)
20+
public class BitSetBloomFilterTest {
21+
22+
@Rule public final ExpectedException thrown = ExpectedException.none();
23+
@Rule public final Timeout globalTimeout = new Timeout(10000);
24+
25+
/* testedClasses: BitSetBloomFilter */
26+
// Test written by Diffblue Cover.
27+
@PrepareForTest({BitSetBloomFilter.class, Math.class})
28+
@Test
29+
public void addInputNotNullOutputFalse() throws Exception {
30+
31+
// Setup mocks
32+
PowerMockito.mockStatic(Math.class);
33+
34+
// Arrange
35+
final BitSetBloomFilter objectUnderTest = new BitSetBloomFilter(0, 0, 0);
36+
final String str = "Bar";
37+
PowerMockito.when(Math.ceil(anyDouble())).thenReturn(-0.5);
38+
39+
// Act
40+
final boolean retval = objectUnderTest.add(str);
41+
42+
// Assert result
43+
Assert.assertFalse(retval);
44+
}
45+
46+
// Test written by Diffblue Cover.
47+
48+
@Test
49+
public void addInputNotNullOutputFalse2() throws InvocationTargetException {
50+
51+
// Arrange
52+
final BitSetBloomFilter objectUnderTest =
53+
(BitSetBloomFilter)Reflector.getInstance("cn.hutool.bloomfilter.BitSetBloomFilter");
54+
Reflector.setField(objectUnderTest, "hashFunctionNumber", 1);
55+
Reflector.setField(objectUnderTest, "addedElements", 0);
56+
Reflector.setField(objectUnderTest, "bitSetSize", 1);
57+
final BitSet bitSet = new BitSet(2);
58+
bitSet.set(0, true);
59+
Reflector.setField(objectUnderTest, "bitSet", bitSet);
60+
final String str = "\'";
61+
62+
// Act
63+
final boolean retval = objectUnderTest.add(str);
64+
65+
// Assert result
66+
Assert.assertFalse(retval);
67+
}
68+
69+
// Test written by Diffblue Cover.
70+
@PrepareForTest({BitSetBloomFilter.class, Math.class})
71+
@Test
72+
public void constructorInputZeroZeroZeroOutputVoid() throws Exception {
73+
74+
// Setup mocks
75+
PowerMockito.mockStatic(Math.class);
76+
77+
// Arrange
78+
final int c = 0;
79+
final int n = 0;
80+
final int k = 0;
81+
PowerMockito.when(Math.ceil(anyDouble())).thenReturn(-0.5).thenReturn(-0.5);
82+
83+
// Act, creating object to test constructor
84+
final BitSetBloomFilter objectUnderTest = new BitSetBloomFilter(c, n, k);
85+
86+
// Method returns void, testing that no exception is thrown
87+
}
88+
89+
// Test written by Diffblue Cover.
90+
@PrepareForTest({BitSetBloomFilter.class, Math.class})
91+
@Test
92+
public void containsInputNotNullOutputTrue() throws Exception {
93+
94+
// Setup mocks
95+
PowerMockito.mockStatic(Math.class);
96+
97+
// Arrange
98+
final BitSetBloomFilter objectUnderTest = new BitSetBloomFilter(0, 0, 0);
99+
final String str = "foo";
100+
PowerMockito.when(Math.ceil(anyDouble())).thenReturn(-0.5);
101+
102+
// Act
103+
final boolean retval = objectUnderTest.contains(str);
104+
105+
// Assert result
106+
Assert.assertTrue(retval);
107+
}
108+
109+
// Test written by Diffblue Cover.
110+
111+
@Test
112+
public void containsInputNotNullOutputTrue2() throws InvocationTargetException {
113+
114+
// Arrange
115+
final BitSetBloomFilter objectUnderTest =
116+
(BitSetBloomFilter)Reflector.getInstance("cn.hutool.bloomfilter.BitSetBloomFilter");
117+
Reflector.setField(objectUnderTest, "hashFunctionNumber", 1);
118+
Reflector.setField(objectUnderTest, "addedElements", 0);
119+
Reflector.setField(objectUnderTest, "bitSetSize", 1);
120+
final BitSet bitSet = new BitSet();
121+
bitSet.set(0);
122+
Reflector.setField(objectUnderTest, "bitSet", bitSet);
123+
final String str = "2";
124+
125+
// Act
126+
final boolean retval = objectUnderTest.contains(str);
127+
128+
// Assert result
129+
Assert.assertTrue(retval);
130+
}
131+
132+
// Test written by Diffblue Cover.
133+
134+
@Test
135+
public void createHashesInputNotNullPositiveOutput1() {
136+
137+
// Arrange
138+
final String str = "1";
139+
final int hashNumber = 1;
140+
141+
// Act
142+
final int[] retval = BitSetBloomFilter.createHashes(str, hashNumber);
143+
144+
// Assert result
145+
Assert.assertArrayEquals(new int[] {49}, retval);
146+
}
147+
148+
// Test written by Diffblue Cover.
149+
150+
@Test
151+
public void createHashesInputNotNullZeroOutput0() {
152+
153+
// Arrange
154+
final String str = "foo";
155+
final int hashNumber = 0;
156+
157+
// Act
158+
final int[] retval = BitSetBloomFilter.createHashes(str, hashNumber);
159+
160+
// Assert result
161+
Assert.assertArrayEquals(new int[] {}, retval);
162+
}
163+
164+
// Test written by Diffblue Cover.
165+
@PrepareForTest({BitSetBloomFilter.class, Math.class})
166+
@Test
167+
public void getFalsePositiveProbabilityOutputZero() throws Exception, InvocationTargetException {
168+
169+
// Setup mocks
170+
PowerMockito.mockStatic(Math.class);
171+
172+
// Arrange
173+
final BitSetBloomFilter objectUnderTest =
174+
(BitSetBloomFilter)Reflector.getInstance("cn.hutool.bloomfilter.BitSetBloomFilter");
175+
Reflector.setField(objectUnderTest, "hashFunctionNumber", -1_073_741_825);
176+
Reflector.setField(objectUnderTest, "addedElements", 1);
177+
Reflector.setField(objectUnderTest, "bitSetSize", 0);
178+
final BitSet bitSet = new BitSet();
179+
Reflector.setField(objectUnderTest, "bitSet", bitSet);
180+
PowerMockito.when(Math.ceil(anyDouble())).thenReturn(-0x1.000038ep-974 /* -6.26305e-294 */);
181+
PowerMockito.when(Math.pow(anyDouble(), anyDouble())).thenReturn(0.0);
182+
PowerMockito.when(Math.exp(anyDouble())).thenReturn(-0.0);
183+
184+
// Act
185+
final double retval = objectUnderTest.getFalsePositiveProbability();
186+
187+
// Assert result
188+
Assert.assertEquals(0.0, retval, 0.0);
189+
}
190+
191+
// Test written by Diffblue Cover.
192+
@Test
193+
public void hashInputNotNullPositiveOutputPositive() {
194+
195+
// Arrange
196+
final String str = "/";
197+
final int k = 5;
198+
199+
// Act
200+
final int retval = BitSetBloomFilter.hash(str, k);
201+
202+
// Assert result
203+
Assert.assertEquals(177_620, retval);
204+
}
205+
206+
// Test written by Diffblue Cover.
207+
@Test
208+
public void hashInputNotNullPositiveOutputPositive2() {
209+
210+
// Arrange
211+
final String str = "/";
212+
final int k = 7;
213+
214+
// Act
215+
final int retval = BitSetBloomFilter.hash(str, k);
216+
217+
// Assert result
218+
Assert.assertEquals(47, retval);
219+
}
220+
221+
// Test written by Diffblue Cover.
222+
@Test
223+
public void hashInputNotNullPositiveOutputPositive3() {
224+
225+
// Arrange
226+
final String str = "/";
227+
final int k = 6;
228+
229+
// Act
230+
final int retval = BitSetBloomFilter.hash(str, k);
231+
232+
// Assert result
233+
Assert.assertEquals(47, retval);
234+
}
235+
236+
// Test written by Diffblue Cover.
237+
@Test
238+
public void hashInputNotNullPositiveOutputPositive4() {
239+
240+
// Arrange
241+
final String str = "/";
242+
final int k = 4;
243+
244+
// Act
245+
final int retval = BitSetBloomFilter.hash(str, k);
246+
247+
// Assert result
248+
Assert.assertEquals(47, retval);
249+
}
250+
251+
// Test written by Diffblue Cover.
252+
@Test
253+
public void hashInputNotNullPositiveOutputPositive5() {
254+
255+
// Arrange
256+
final String str = "/";
257+
final int k = 3;
258+
259+
// Act
260+
final int retval = BitSetBloomFilter.hash(str, k);
261+
262+
// Assert result
263+
Assert.assertEquals(47, retval);
264+
}
265+
266+
// Test written by Diffblue Cover.
267+
@Test
268+
public void hashInputNotNullPositiveOutputPositive6() {
269+
270+
// Arrange
271+
final String str = "/";
272+
final int k = 2;
273+
274+
// Act
275+
final int retval = BitSetBloomFilter.hash(str, k);
276+
277+
// Assert result
278+
Assert.assertEquals(47, retval);
279+
}
280+
281+
// Test written by Diffblue Cover.
282+
@Test
283+
public void hashInputNotNullPositiveOutputPositive7() {
284+
285+
// Arrange
286+
final String str = "/";
287+
final int k = 1;
288+
289+
// Act
290+
final int retval = BitSetBloomFilter.hash(str, k);
291+
292+
// Assert result
293+
Assert.assertEquals(787_808_287, retval);
294+
}
295+
296+
// Test written by Diffblue Cover.
297+
@Test
298+
public void hashInputNotNullPositiveOutputZero() {
299+
300+
// Arrange
301+
final String str = "foo";
302+
final int k = 14;
303+
304+
// Act
305+
final int retval = BitSetBloomFilter.hash(str, k);
306+
307+
// Assert result
308+
Assert.assertEquals(0, retval);
309+
}
310+
311+
// Test written by Diffblue Cover.
312+
@Test
313+
public void hashInputNotNullZeroOutputPositive() {
314+
315+
// Arrange
316+
final String str = ",";
317+
final int k = 0;
318+
319+
// Act
320+
final int retval = BitSetBloomFilter.hash(str, k);
321+
322+
// Assert result
323+
Assert.assertEquals(44, retval);
324+
}
325+
}
326+

pom.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,20 @@
5252
<version>${junit.version}</version>
5353
<scope>test</scope>
5454
</dependency>
55+
56+
<dependency>
57+
<groupId>org.powermock</groupId>
58+
<artifactId>powermock-module-junit4</artifactId>
59+
<version>1.6.5</version>
60+
<scope>test</scope>
61+
</dependency>
62+
63+
<dependency>
64+
<groupId>com.diffblue</groupId>
65+
<artifactId>deeptestutils</artifactId>
66+
<version>1.9.0</version>
67+
<scope>test</scope>
68+
</dependency>
5569
</dependencies>
5670

5771
<issueManagement>

0 commit comments

Comments
 (0)