Repository: evidentlyai/evidently
Issue: Error when applying custom test for ClassificationPreset
Root cause: Documentation Deficiency

Hello,
When trying to set custom test for recall in ClassificationPreset I am getting error:
```
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
File <timed exec>:5

File [/opt/conda/lib/python3.12/site-packages/evidently/presets/classification.py:293](http://localhost:10000/opt/conda/lib/python3.12/site-packages/evidently/presets/classification.py#line=292), in ClassificationPreset.__init__(self, probas_threshold, accuracy_tests, precision_tests, recall_tests, f1score_tests, rocauc_tests, logloss_tests, tpr_tests, tnr_tests, fpr_tests, fnr_tests, f1score_by_label_tests, precision_by_label_tests, recall_by_label_tests, rocauc_by_label_tests, include_tests)
    274 def __init__(
    275     self,
    276     probas_threshold: Optional[float] = None,
   (...)
    291     include_tests: bool = True,
    292 ):
--> 293     super().__init__(
    294         include_tests=include_tests,
    295         probas_threshold=probas_threshold,
    296         accuracy_tests=accuracy_tests,
    297         precision_tests=precision_tests,
    298         recall_tests=recall_tests,
    299         f1score_tests=f1score_tests,
    300         rocauc_tests=rocauc_tests,
    301         logloss_tests=logloss_tests,
    302         tpr_tests=tpr_tests,
    303         tnr_tests=tnr_tests,
    304         fpr_tests=fpr_tests,
    305         fnr_tests=fnr_tests,
    306         f1score_by_label_tests=f1score_by_label_tests,
    307         precision_by_label_tests=precision_by_label_tests,
    308         recall_by_label_tests=recall_by_label_tests,
    309         rocauc_by_label_tests=rocauc_by_label_tests,
    310     )
    311     self._quality = ClassificationQuality(
    312         probas_threshold=probas_threshold,
    313         conf_matrix=True,
   (...)
    326         include_tests=include_tests,
    327     )
    328     self._quality_by_label = ClassificationQualityByLabel(
    329         probas_threshold=probas_threshold,
    330         f1score_tests=f1score_by_label_tests,
   (...)
    334         include_tests=include_tests,
    335     )

File [/opt/conda/lib/python3.12/site-packages/evidently/core/container.py:34](http://localhost:10000/opt/conda/lib/python3.12/site-packages/evidently/core/container.py#line=33), in MetricContainer.__init__(self, include_tests, **data)
     32 def __init__(self, include_tests: bool = True, **data):
     33     self.include_tests = include_tests
---> 34     super().__init__(**data)

File [/opt/conda/lib/python3.12/site-packages/evidently/pydantic_utils.py:87](http://localhost:10000/opt/conda/lib/python3.12/site-packages/evidently/pydantic_utils.py#line=86), in FrozenBaseModel.__init__(self, **data)
     86 def __init__(self, **data: Any):
---> 87     super().__init__(**self.__init_values__, **data)
     88     for private_attr in self.__private_attributes__:
     89         if private_attr in self.__init_values__:

File [/opt/conda/lib/python3.12/site-packages/pydantic/v1/main.py:347](http://localhost:10000/opt/conda/lib/python3.12/site-packages/pydantic/v1/main.py#line=346), in BaseModel.__init__(__pydantic_self__, **data)
    345 values, fields_set, validation_error = validate_model(__pydantic_self__.__class__, data)
    346 if validation_error:
--> 347     raise validation_error
    348 try:
    349     object_setattr(__pydantic_self__, '__dict__', values)

ValidationError: 1 validation error for ClassificationPreset
recall_tests -> 0
  value is not a valid dict (type=type_error.dict)
```

This is my code, which is working without `recall_tests` parameter:

```
value_drift = ValueDrift(column="value",
                         method="psi")

classification_preset = ClassificationPreset(recall_tests=[eq(0, is_critical=False)])

report = Report(metrics=[value_drift, classification_preset])

report.run(cur, ref)
```

Hi @jankogasic, 

Check this docs page on configuring tests https://docs.evidentlyai.com/docs/library/tests

There are only two possible parameters you can use to set the value conditions: `tests` (will apply in this case) or `share_tests` (will apply if you want to test the percentage/proportion of a certain value). You can pass these tests to the specific metric like

`Recall(tests=[eq(0)])`


Thanks Elena, 

I appended `Recall(tests=[eq(0)])` to metrics in Report object, and it is working now.


In addition, I am struggling to understand [this parameter](https://github.com/evidentlyai/evidently/blob/d5501160d7550736239665cc3889fa7d16c123e9/src/evidently/presets/classification.py#L260). How exactly is it intended to be used?