def gbmClassificationFittingTest(self, nRows, nColumns, depth, nThreads, maxBoosts):
        s3 = InMemoryS3Interface.InMemoryS3InterfaceFactory()

        result, simulation = InMemoryCumulusSimulation.computeUsingSeveralWorkers(
                        self.dataGenerationScript(nRows, nColumns),
                        s3,
                        1,
                        timeout = 360,
                        memoryLimitMb = 30 * 1024,
                        threadCount = nThreads,
                        returnSimulation = True,
                        useInMemoryCache = False
                        )
        try:
            self.assertTrue(result.isResult())

            dfPredictors, dfResponse = result.asResult.result

            fitter = simulation.compute(
                self.classificationScript(depth, 1),
                timeout = 360,
                dfResponse = dfResponse,
                dfPredictors = dfPredictors
                ).asResult.result


            t0 = time.time()

            for nBoosts in range(1, maxBoosts):
                testName = self.getTestName(nRows, nColumns, depth, nBoosts, nThreads)

                predictions = simulation.compute(
                    "fitter.pseudoResidualsAndRegressionValues()",
                    timeout = 360,
                    fitter = fitter
                    )

                logging.info("predictions = %s" % predictions)
                logging.info("predictions.asResult.result = %s" % predictions.asResult.result)

                predictions = predictions.asResult.result
                totalTimeToReturnResult = time.time() - t0

                PerformanceTestReporter.recordTest(
                    testName + "_predict", totalTimeToReturnResult, None)

                fitter = simulation.compute(
                    "fitter.nextGivenPseudoResidualsAndRegressionValues(predictions)",
                    timeout = 360,
                    fitter=fitter,
                    predictions = predictions
                    )

                logging.info("fitter = %s" % fitter)
                logging.info("fitter.asResult.result = %s" + fitter.asResult.result)

                fitter = fitter.asResult.result
                totalTimeToReturnResult = time.time() - t0

                PerformanceTestReporter.recordTest(
                    testName, totalTimeToReturnResult, None)

        finally:
            simulation.teardown()
dataset/ETHPy150Open ufora/ufora/test_scripts/bigbox_perf/gradientBoostingClassification/testGbmClassification.py/GbmClassificationPerformanceTest.gbmClassificationFittingTest/operator `%` -> `+`