|
19 | 19 | */ |
20 | 20 | package org.neo4j.gds.betweenness; |
21 | 21 |
|
| 22 | +import org.junit.jupiter.api.Test; |
22 | 23 | import org.junit.jupiter.params.ParameterizedTest; |
23 | 24 | import org.junit.jupiter.params.provider.Arguments; |
24 | 25 | import org.junit.jupiter.params.provider.MethodSource; |
25 | 26 | import org.junit.jupiter.params.provider.ValueSource; |
| 27 | +import org.neo4j.gds.TestProgressTracker; |
| 28 | +import org.neo4j.gds.compat.Neo4jProxy; |
| 29 | +import org.neo4j.gds.compat.TestLog; |
26 | 30 | import org.neo4j.gds.core.CypherMapWrapper; |
27 | 31 | import org.neo4j.gds.core.concurrency.Pools; |
28 | 32 | import org.neo4j.gds.core.utils.mem.MemoryRange; |
29 | 33 | import org.neo4j.gds.core.utils.paged.HugeAtomicDoubleArray; |
| 34 | +import org.neo4j.gds.core.utils.progress.EmptyTaskRegistryFactory; |
30 | 35 | import org.neo4j.gds.core.utils.progress.tasks.ProgressTracker; |
31 | 36 | import org.neo4j.gds.extension.TestGraph; |
32 | 37 |
|
33 | 38 | import java.util.Map; |
34 | 39 | import java.util.Optional; |
35 | 40 | import java.util.stream.Stream; |
36 | 41 |
|
| 42 | +import static org.assertj.core.api.Assertions.assertThat; |
37 | 43 | import static org.junit.jupiter.api.Assertions.assertEquals; |
38 | 44 | import static org.neo4j.gds.Orientation.UNDIRECTED; |
39 | 45 | import static org.neo4j.gds.TestSupport.assertMemoryEstimation; |
40 | 46 | import static org.neo4j.gds.TestSupport.crossArguments; |
41 | 47 | import static org.neo4j.gds.TestSupport.fromGdl; |
| 48 | +import static org.neo4j.gds.assertj.Extractors.removingThreadId; |
| 49 | +import static org.neo4j.gds.assertj.Extractors.replaceTimings; |
42 | 50 |
|
43 | 51 | class BetweennessCentralityTest { |
44 | 52 |
|
@@ -182,4 +190,59 @@ void testMemoryEstimation(int concurrency, long expectedMinBytes, long expectedM |
182 | 190 | MemoryRange.of(expectedMinBytes, expectedMaxBytes) |
183 | 191 | ); |
184 | 192 | } |
| 193 | + |
| 194 | + @Test |
| 195 | + void testShouldLogProgress() { |
| 196 | + var config = BetweennessCentralityStreamConfigImpl.builder().samplingSize(2L).build(); |
| 197 | + var factory = new BetweennessCentralityFactory<>(); |
| 198 | + var log = Neo4jProxy.testLog(); |
| 199 | + var testGraph = fromGdl(DIAMOND, "diamond"); |
| 200 | + var progressTracker = new TestProgressTracker( |
| 201 | + factory.progressTask(testGraph, config), |
| 202 | + log, |
| 203 | + 4, |
| 204 | + EmptyTaskRegistryFactory.INSTANCE |
| 205 | + ); |
| 206 | + factory.build(testGraph, config, progressTracker).compute(); |
| 207 | + |
| 208 | + assertThat(log.getMessages(TestLog.INFO)) |
| 209 | + .extracting(removingThreadId()) |
| 210 | + .extracting(replaceTimings()) |
| 211 | + .containsExactly( |
| 212 | + "BetweennessCentrality :: Start", |
| 213 | + "BetweennessCentrality 50%", |
| 214 | + "BetweennessCentrality 100%", |
| 215 | + "BetweennessCentrality :: Finished" |
| 216 | + ); |
| 217 | + } |
| 218 | + |
| 219 | + @Test |
| 220 | + void testShouldLogProgressNoSampling() { |
| 221 | + var config = BetweennessCentralityStreamConfigImpl.builder().build(); |
| 222 | + var factory = new BetweennessCentralityFactory<>(); |
| 223 | + var log = Neo4jProxy.testLog(); |
| 224 | + var testGraph = fromGdl(DIAMOND, "diamond"); |
| 225 | + var progressTracker = new TestProgressTracker( |
| 226 | + factory.progressTask(testGraph, config), |
| 227 | + log, |
| 228 | + 4, |
| 229 | + EmptyTaskRegistryFactory.INSTANCE |
| 230 | + ); |
| 231 | + factory.build(testGraph, config, progressTracker).compute(); |
| 232 | + |
| 233 | + assertThat(log.getMessages(TestLog.INFO)) |
| 234 | + .extracting(removingThreadId()) |
| 235 | + .extracting(replaceTimings()) |
| 236 | + .containsExactly( |
| 237 | + "BetweennessCentrality :: Start", |
| 238 | + "BetweennessCentrality 14%", |
| 239 | + "BetweennessCentrality 28%", |
| 240 | + "BetweennessCentrality 42%", |
| 241 | + "BetweennessCentrality 57%", |
| 242 | + "BetweennessCentrality 71%", |
| 243 | + "BetweennessCentrality 85%", |
| 244 | + "BetweennessCentrality 100%", |
| 245 | + "BetweennessCentrality :: Finished" |
| 246 | + ); |
| 247 | + } |
185 | 248 | } |
0 commit comments