### Question:
HarmonicCentralityProc extends AlgoBaseProc<HarmonicCentrality, HarmonicCentrality, HarmonicCentralityConfig> { @Procedure(value = "gds.alpha.closeness.harmonic.write", mode = WRITE) @Description(DESCRIPTION) public Stream<CentralityScore.Stats> write( @Name(value = "graphName") Object graphNameOrConfig, @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration ) { var computationResult = compute(graphNameOrConfig, configuration); var algorithm = computationResult.algorithm(); var config = computationResult.config(); var graph = computationResult.graph(); AbstractResultBuilder<CentralityScore.Stats> builder = new CentralityScore.Stats.Builder() .withNodeCount(graph.nodeCount()) .withConfig(config) .withComputeMillis(computationResult.computeMillis()) .withCreateMillis(computationResult.createMillis()); if (graph.isEmpty()) { graph.release(); return Stream.of(builder.build()); } try (ProgressTimer ignore = ProgressTimer.start(builder::withWriteMillis)) { NodePropertyExporter exporter = NodePropertyExporter.builder(api, graph, algorithm.getTerminationFlag()) .withLog(log) .parallel(Pools.DEFAULT, computationResult.config().writeConcurrency()) .build(); exporter.write( config.writeProperty(), (DoubleNodeProperties) computationResult.result()::getCentralityScore ); } return Stream.of(builder.build()); }  @Procedure(name = "gds.alpha.closeness.harmonic.stream", mode = READ) @Description(DESCRIPTION) Stream<StreamResult> stream(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Procedure(value = "gds.alpha.closeness.harmonic.write", mode = WRITE) @Description(DESCRIPTION) Stream<CentralityScore.Stats> write(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    );  }### Answer:
@Test void testWrite() { var query = GdsCypher.call() .withAnyLabel() .withAnyRelationshipType() .algo("gds.alpha.closeness.harmonic") .writeMode() .addParameter("writeProperty", "centralityScore") .yields(); runQueryWithRowConsumer(query, row -> { assertEquals(5L, row.getNumber("nodes").longValue()); assertEquals("centralityScore", row.getString("writeProperty")); }); var resultQuery = "MATCH (n) RETURN id(n) AS id, n.centralityScore AS centrality"; var resultMap = new HashMap<Long, Double>(); runQueryWithRowConsumer(resultQuery, row -> { resultMap.put( row.getNumber("id").longValue(), row.getNumber("centrality").doubleValue() ); }); validateResult(resultMap); }