### Question:
ModularityOptimizationMutateProc extends MutatePropertyProc<ModularityOptimization, ModularityOptimization, ModularityOptimizationMutateProc.MutateResult, ModularityOptimizationMutateConfig> { @Procedure(value = "gds.beta.modularityOptimization.mutate", mode = READ) @Description(MODULARITY_OPTIMIZATION_DESCRIPTION) public Stream<MutateResult> mutate( @Name(value = "graphName") Object graphNameOrConfig, @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration ) { return mutate(compute(graphNameOrConfig, configuration)); }  @Procedure(value = "gds.beta.modularityOptimization.mutate", mode = READ) @Description(MODULARITY_OPTIMIZATION_DESCRIPTION) Stream<MutateResult> mutate(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Procedure(value = "gds.beta.modularityOptimization.mutate.estimate", mode = READ) @Description(ESTIMATE_DESCRIPTION) Stream<MemoryEstimateResult> mutateEstimate(
        @Name(value = "graphName") Object graphNameOrConfig,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    );  }### Answer:
@Test void testMutate() { String query = explicitAlgoBuildStage() .mutateMode() .addParameter("mutateProperty", mutateProperty()) .yields(); runQueryWithRowConsumer(query, row -> { assertEquals(true, row.getBoolean("didConverge")); assertEquals(0.12244, row.getNumber("modularity").doubleValue(), 0.001); assertEquals(2, row.getNumber("communityCount").longValue()); assertTrue(row.getNumber("ranIterations").longValue() <= 3); }); }