[docs]defis_cardinality_fulfilled(df:pd.DataFrame,subspace_continuous:SubspaceContinuous,*,check_minimum:bool=True,check_maximum:bool=True,)->bool:"""Validate cardinality constraints in a dataframe of parameter configurations. Args: df: The dataframe to be checked. subspace_continuous: The subspace spanned by the considered parameters. check_minimum: If ``True``, minimum cardinality constraints are validated. check_maximum: If ``True``, maximum cardinality constraints are validated. Returns: ``True`` if all cardinality constraints are fulfilled, ``False`` otherwise. """forcinsubspace_continuous.constraints_cardinality:# Get the activity thresholds for all parameterscols=df[c.parameters]thresholds={p.name:c.get_absolute_thresholds(p.bounds)forpinsubspace_continuous.get_parameters_by_name(c.parameters)}lower_thresholds=[thresholds[p].lowerforpincols.columns]upper_thresholds=[thresholds[p].upperforpincols.columns]# Count the number of active values per dataframe rowinactives=is_inactive(cols,lower_thresholds,upper_thresholds)n_zeros=inactives.sum(axis=1)n_active=len(c.parameters)-n_zeros# Check if cardinality is violatedifcheck_minimumandnp.any(n_active<c.min_cardinality):returnFalseifcheck_maximumandnp.any(n_active>c.max_cardinality):returnFalsereturnTrue