def test_experiment_sum_of_squares_zeros_test(self):
        the_data_manager = DataManager()
        an_array_of_all_ones = np.ones((37, 397))
        the_model = svm.SVR()
        the_data_manager.set_data(an_array_of_all_ones)
        the_data_manager.split_data(test_split=0.19, train_split=0.62)
        exp = Experiment(the_data_manager, the_model)

        exp.run_experiment()
        sum_of_squares_test = exp.get_sum_of_squares(SplitTypes.Test)

        expected = 0
        self.assertEquals(expected, sum_of_squares_test)
    def test_experiment_sum_of_squares_real37_test(self):
        file_path = "../Datasets/HIV_37_Samples/MergedDataset.csv"
        loaded_data = FileLoader.load_file(file_path)
        the_data_manager = DataManager()
        the_data_manager.set_data(loaded_data)
        the_model = svm.SVR()
        the_data_manager.split_data(test_split=0.19, train_split=0.62)
        exp = Experiment(the_data_manager, the_model)

        exp.run_experiment()
        sum_of_squares_test = exp.get_sum_of_squares(SplitTypes.Test)

        expected = 6.708898437500002

        self.assertAlmostEqual(expected, sum_of_squares_test)
                and exp.get_r2(SplitTypes.Test) > 0
            ):
                print(
                    feature_eliminator.get_support(indices=True),
                    type(normalizer).__name__,
                    type(feature_eliminator).__name__,
                    type(the_model).__name__,
                    "Fitness",
                    exp.fitness_matrix[0],
                    "Train",
                    exp.get_r2(SplitTypes.Train),
                    "Valid",
                    exp.get_r2(SplitTypes.Valid),
                    "Test",
                    exp.get_r2(SplitTypes.Test),
                    exp.get_sum_of_squares(SplitTypes.Test),
                )

                FileLoader.write_model_in_file(
                    output_filename,
                    type(normalizer).__name__,
                    type(feature_eliminator).__name__,
                    type(the_model).__name__,
                    feature_eliminator.get_support(indices=True),
                    exp.fitness_matrix[0],
                    exp.get_r2(SplitTypes.Train),
                    exp.get_r2(SplitTypes.Valid),
                    exp.get_r2(SplitTypes.Test),
                )

            # exp.plot_true_vs_predicted(SplitTypes.Train)