From e5e0c96fee705d8604cd74bd7bf78857cbb9bef5 Mon Sep 17 00:00:00 2001 From: Jakob Jordan Date: Fri, 8 Jan 2021 16:05:33 +0100 Subject: [PATCH] Check number of objectives matches number of specified hurdle percentiles --- cgp/ea/mu_plus_lambda.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cgp/ea/mu_plus_lambda.py b/cgp/ea/mu_plus_lambda.py index 883b2b4a..1027827c 100644 --- a/cgp/ea/mu_plus_lambda.py +++ b/cgp/ea/mu_plus_lambda.py @@ -27,7 +27,7 @@ def __init__( local_search: Callable[[IndividualBase], None] = lambda combined: None, k_local_search: Union[int, None] = None, reorder_genome: bool = False, - hurdle_percentile: List = [0.0] + hurdle_percentile: List = [0.0], ): """Init function @@ -207,6 +207,12 @@ def compute_fitness_hurdle(ind_evaluating: List[IndividualBase]) -> float: if callable(objective): objective = [objective] + else: + if len(objective) != len(self.hurdle_percentile): + raise ValueError( + f"{len(objective)} objectives found, but hurdle percentile" + " defined for {len(self.hurdle_percentile)} objectives." + ) ind_evaluating = list(combined) ind_done_evaluating = []