Skip to content

Commit 1fd4af2

Browse files
committed
Refactor tests
1 parent 3d3f7e4 commit 1fd4af2

File tree

1 file changed

+47
-49
lines changed

1 file changed

+47
-49
lines changed

core/src/test/java/org/neo4j/gds/core/utils/paged/HugeAtomicPagedBitSetTest.java

Lines changed: 47 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
*/
2020
package org.neo4j.gds.core.utils.paged;
2121

22-
import org.junit.jupiter.api.Test;
2322
import org.junit.jupiter.params.ParameterizedTest;
2423
import org.junit.jupiter.params.provider.Arguments;
2524
import org.junit.jupiter.params.provider.MethodSource;
@@ -39,7 +38,7 @@
3938

4039
class HugeAtomicPagedBitSetTest {
4140

42-
public static Stream<Arguments> bitsets() {
41+
static Stream<Arguments> bitsets() {
4342
return Stream.of(
4443
// empty bit set
4544
Arguments.of(HugeAtomicPagedBitSet.create(0)),
@@ -50,106 +49,105 @@ public static Stream<Arguments> bitsets() {
5049

5150
@ParameterizedTest
5251
@MethodSource("bitsets")
53-
void testSet(HugeAtomicPagedBitSet atomicBitSet) {
52+
void testSet(HugeAtomicPagedBitSet bitSet) {
5453
// page 0
5554
long index = 23;
56-
assertThat(atomicBitSet.get(index)).isFalse();
57-
atomicBitSet.set(index);
58-
assertThat(atomicBitSet.get(index)).isTrue();
55+
assertThat(bitSet.get(index)).isFalse();
56+
bitSet.set(index);
57+
assertThat(bitSet.get(index)).isTrue();
5958
// page 1
6059
index = (1L << PAGE_SHIFT_BITS) + 23;
61-
assertThat(atomicBitSet.get(index)).isFalse();
62-
atomicBitSet.set(index);
63-
assertThat(atomicBitSet.get(index)).isTrue();
60+
assertThat(bitSet.get(index)).isFalse();
61+
bitSet.set(index);
62+
assertThat(bitSet.get(index)).isTrue();
6463
// page 2
6564
index = 2 * (1L << PAGE_SHIFT_BITS) + 23;
66-
assertThat(atomicBitSet.get(index)).isFalse();
67-
atomicBitSet.set(index);
68-
assertThat(atomicBitSet.get(index)).isTrue();
65+
assertThat(bitSet.get(index)).isFalse();
66+
bitSet.set(index);
67+
assertThat(bitSet.get(index)).isTrue();
6968
}
7069

7170
@ParameterizedTest
7271
@MethodSource("bitsets")
73-
void testGetAndSet(HugeAtomicPagedBitSet atomicBitSet) {
72+
void testGetAndSet(HugeAtomicPagedBitSet bitSet) {
7473
// page 0
7574
// getAndSet a bit that is currently false
7675
long index = 23;
77-
assertThat(atomicBitSet.get(index)).isFalse();
78-
assertThat(atomicBitSet.getAndSet(index)).isFalse();
79-
assertThat(atomicBitSet.get(index)).isTrue();
76+
assertThat(bitSet.get(index)).isFalse();
77+
assertThat(bitSet.getAndSet(index)).isFalse();
78+
assertThat(bitSet.get(index)).isTrue();
8079
// getAndSet a bit that is currently true
8180
index = 42;
82-
atomicBitSet.set(index);
83-
assertThat(atomicBitSet.get(index)).isTrue();
84-
assertThat(atomicBitSet.getAndSet(index)).isTrue();
85-
assertThat(atomicBitSet.get(index)).isTrue();
81+
bitSet.set(index);
82+
assertThat(bitSet.get(index)).isTrue();
83+
assertThat(bitSet.getAndSet(index)).isTrue();
84+
assertThat(bitSet.get(index)).isTrue();
8685
// page 1
8786
// getAndSet a bit that is currently false
8887
index = (1L << PAGE_SHIFT_BITS) + 23;
89-
assertThat(atomicBitSet.get(index)).isFalse();
90-
assertThat(atomicBitSet.getAndSet(index)).isFalse();
91-
assertThat(atomicBitSet.get(index)).isTrue();
88+
assertThat(bitSet.get(index)).isFalse();
89+
assertThat(bitSet.getAndSet(index)).isFalse();
90+
assertThat(bitSet.get(index)).isTrue();
9291
// getAndSet a bit that is currently true
9392
index = (1L << PAGE_SHIFT_BITS) + 42;
94-
atomicBitSet.set(index);
95-
assertThat(atomicBitSet.get(index)).isTrue();
96-
assertThat(atomicBitSet.getAndSet(index)).isTrue();
97-
assertThat(atomicBitSet.get(index)).isTrue();
93+
bitSet.set(index);
94+
assertThat(bitSet.get(index)).isTrue();
95+
assertThat(bitSet.getAndSet(index)).isTrue();
96+
assertThat(bitSet.get(index)).isTrue();
9897
// page 2
9998
// getAndSet a bit that is currently false
10099
index = 2 * (1L << PAGE_SHIFT_BITS) + 23;
101-
assertThat(atomicBitSet.get(index)).isFalse();
102-
assertThat(atomicBitSet.getAndSet(index)).isFalse();
103-
assertThat(atomicBitSet.get(index)).isTrue();
100+
assertThat(bitSet.get(index)).isFalse();
101+
assertThat(bitSet.getAndSet(index)).isFalse();
102+
assertThat(bitSet.get(index)).isTrue();
104103
// getAndSet a bit that is currently true
105104
index = 2 * (1L << PAGE_SHIFT_BITS) + 42;
106-
atomicBitSet.set(index);
107-
assertThat(atomicBitSet.get(index)).isTrue();
108-
assertThat(atomicBitSet.getAndSet(index)).isTrue();
109-
assertThat(atomicBitSet.get(index)).isTrue();
105+
bitSet.set(index);
106+
assertThat(bitSet.get(index)).isTrue();
107+
assertThat(bitSet.getAndSet(index)).isTrue();
108+
assertThat(bitSet.get(index)).isTrue();
110109
}
111110

112111
@ParameterizedTest
113112
@MethodSource("bitsets")
114-
void testCardinality(HugeAtomicPagedBitSet atomicBitSet) {
115-
assertThat(atomicBitSet.cardinality()).isEqualTo(0);
113+
void testCardinality(HugeAtomicPagedBitSet bitSet) {
114+
assertThat(bitSet.cardinality()).isEqualTo(0);
116115
// page 0
117-
atomicBitSet.set(23);
118-
assertThat(atomicBitSet.cardinality()).isEqualTo(1);
116+
bitSet.set(23);
117+
assertThat(bitSet.cardinality()).isEqualTo(1);
119118
// page 1
120-
atomicBitSet.set((1L << PAGE_SHIFT_BITS) + 23);
121-
assertThat(atomicBitSet.cardinality()).isEqualTo(2);
119+
bitSet.set((1L << PAGE_SHIFT_BITS) + 23);
120+
assertThat(bitSet.cardinality()).isEqualTo(2);
122121
// page 2
123-
atomicBitSet.set(2 * (1L << PAGE_SHIFT_BITS) + 23);
124-
assertThat(atomicBitSet.cardinality()).isEqualTo(3);
122+
bitSet.set(2 * (1L << PAGE_SHIFT_BITS) + 23);
123+
assertThat(bitSet.cardinality()).isEqualTo(3);
125124
}
126125

127126
@ParameterizedTest
128127
@MethodSource("bitsets")
129-
void testForEachSetBit(HugeAtomicPagedBitSet atomicBitSet) {
128+
void testForEachSetBit(HugeAtomicPagedBitSet bitSet) {
130129
var rng = ThreadLocalRandom.current();
131130
long bound = 42 * (1L << PAGE_SHIFT_BITS) + 42;
132131

133132
var expected = IntStream
134133
.range(0, 10_000)
135134
.mapToLong(__ -> rng.nextLong(0, bound))
136135
.boxed()
137-
.peek(atomicBitSet::set)
136+
.peek(bitSet::set)
138137
.collect(Collectors.toSet());
139138

140139
var actual = new HashSet<Long>();
141-
atomicBitSet.forEachSetBit(actual::add);
140+
bitSet.forEachSetBit(actual::add);
142141

143142
assertThat(actual).isEqualTo(expected);
144143
}
145144

146-
@Test
147-
void writingAndGrowingShouldBeThreadSafe() {
145+
@ParameterizedTest
146+
@MethodSource("bitsets")
147+
void testSetParallel(HugeAtomicPagedBitSet bitSet) {
148148
int concurrency = 8;
149149
int nodeCount = 1_000_000;
150150

151-
var bitSet = HugeAtomicPagedBitSet.create(0);
152-
153151
List<Runnable> tasks = PartitionUtils.rangePartition(concurrency, nodeCount, (partition) -> () -> {
154152
long startNode = partition.startNode();
155153
long endNode = partition.startNode() + partition.nodeCount();

0 commit comments

Comments
 (0)