def runExperiment(self, classifier: Classifier, parameter: Parameter,
                   experimentPerformance: ExperimentPerformance,
                   crossValidation: CrossValidation, testSet: InstanceList):
     for i in range(self.K):
         trainSet = InstanceList(crossValidation.getTrainFold(i))
         classifier.train(trainSet, parameter)
         experimentPerformance.add(classifier.test(testSet))
    def execute(self, experiment: Experiment) -> ExperimentPerformance:
        """
        Execute the bootstrap run with the given classifier on the given data set using the given parameters.

        PARAMETERS
        ----------
        experiment : Experiment
            Experiment to be run.

        RETURNS
        -------
        ExperimentPerformance
            An ExperimentPerformance instance.
        """
        result = ExperimentPerformance()
        for i in range(self.__numberOfBootstraps):
            bootstrap = Bootstrap(experiment.getDataSet().getInstances(),
                                  i + experiment.getParameter().getSeed())
            bootstrapSample = InstanceList(bootstrap.getSample())
            experiment.getClassifier().train(bootstrapSample,
                                             experiment.getParameter())
            result.add(experiment.getClassifier().test(
                experiment.getDataSet().getInstanceList()))
        return result