### Question:
FastRPStatsProc extends StatsProc<FastRP, FastRP, FastRPStatsProc.StatsResult, FastRPStatsConfig> { @Procedure(value = "gds.fastRP.stats", mode = READ) @Description("Random Projection produces node embeddings via the fastrp algorithm") public Stream<StatsResult> stats( @Name(value = "graphName") Object graphNameOrConfig, @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration ) { ComputationResult<FastRP, FastRP, FastRPStatsConfig> computationResult = compute( graphNameOrConfig, configuration ); return stats(computationResult); }  @Procedure(value = "gds.fastRP.stats", mode = READ) @Description("Random Projection produces node embeddings via the fastrp algorithm") Stream<StatsResult> stats(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Procedure(value = "gds.fastRP.stats.estimate", mode = READ) @Description(DESCRIPTION) Stream<MemoryEstimateResult> estimate(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    );  }### Answer:
@Test void testStats() { var query = GdsCypher.call() .loadEverything(Orientation.UNDIRECTED) .algo("fastRP") .statsMode() .addParameter("embeddingSize", 2) .yields(); assertCypherResult(query, List.of(Map.of( "nodeCount", 5L, "createMillis", greaterThan(-1L), "computeMillis", greaterThan(-1L), "configuration", isA(Map.class) ))); }