def test_update(
    outputs_list: Iterable[torch.Tensor],
    targets_list: Iterable[torch.Tensor],
    num_classes: int,
    zero_division: int,
    true_values: Dict[str, float],
) -> None:
    """
    Test if metric works correctly while updating.
    Args:
        outputs_list: list of tensors of predictions
        targets_list: list of tensors of targets
        num_classes: number of classes to score
        zero_division: zero division policy flag
        true_values: true values of metrics
    """
    metric = MulticlassPrecisionRecallF1SupportMetric(
        num_classes=num_classes, zero_division=zero_division
    )
    for outputs, targets in zip(outputs_list, targets_list):
        metric.update(outputs=outputs, targets=targets)
    metrics = metric.compute_key_value()
    for key in true_values:
        assert key in metrics
        assert abs(metrics[key] - true_values[key]) < EPS

    Test if metric works correctly while updating.
    Args:
        outputs_list: list of tensors of predictions
        targets_list: list of tensors of targets
        num_classes: number of classes to score
        zero_division: zero division policy flag
        true_values: true values of metrics
    
tests/catalyst/metrics/test_classification.py