### Question:
LabelPropagationStreamProc extends StreamProc<LabelPropagation, LabelPropagation, LabelPropagationStreamProc.StreamResult, LabelPropagationStreamConfig> { @Procedure(value = "gds.labelPropagation.stream.estimate", mode = READ) @Description(ESTIMATE_DESCRIPTION) public Stream<MemoryEstimateResult> estimate( @Name(value = "graphName") Object graphNameOrConfig, @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration ) { return computeEstimate(graphNameOrConfig, configuration); }  @Procedure(value = "gds.labelPropagation.stream", mode = READ) @Description(LABEL_PROPAGATION_DESCRIPTION) Stream<StreamResult> stream(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Procedure(value = "gds.labelPropagation.stream.estimate", mode = READ) @Description(ESTIMATE_DESCRIPTION) Stream<MemoryEstimateResult> estimate(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Override LabelPropagationStreamConfig newConfig(
        String username,
        Optional<String> graphName,
        Optional<GraphCreateConfig> maybeImplicitCreate,
        CypherMapWrapper config
    );  }### Answer:
@Test void testEstimate() { String query = GdsCypher .call() .explicitCreation(TEST_GRAPH_NAME) .algo("labelPropagation") .streamEstimation() .addAllParameters(createMinimalConfig(CypherMapWrapper.create(MapUtil.map("concurrency", 4))).toMap()) .yields(Arrays.asList("bytesMin", "bytesMax", "nodeCount", "relationshipCount")); assertCypherResult(query, Arrays.asList(MapUtil.map( "nodeCount", 12L, "relationshipCount", 10L, "bytesMin", 1656L, "bytesMax", 2168L ))); }