code: def test_requires_deletion_max_models(
      builder: EnsembleBuilder,
      max_models: int,
      make_run: Callable[..., Run],
  ) -> None:
      """
      Expects
      -------
      * Should keep exactly as many models as `max_models`
      * Should not have any in common between keep and delete
      """
      runs = [make_run() for _ in range(10)]
      keep, delete = builder.requires_deletion(
          runs=runs, max_models=max_models
      )
  
      assert len(keep) == max_models
      assert len(delete) == len(runs) - max_models
  
      assert not any(set(keep) & set(delete))
  
imports: from __future__ import annotations
  from typing import Callable
  import random
  import time
  from pathlib import Path
  import numpy
  from autosklearn.automl_common.common.utils.backend import Backend
  from autosklearn.ensemble_building import EnsembleBuilder, Run
  from autosklearn.metrics import Scorer, accuracy, make_scorer
  from autosklearn.util.functional import bound, pairs
  import pytest
  from pytest_cases import fixture, parametrize
  from unittest.mock import Mock, patch
  from test.conftest import DEFAULT_SEED
  from test.fixtures.metrics import acc_with_X_data
label_desc: Use image node_id 16 for calling a global function with example usage: test_requires_deletion_max_models(builder, max_models, make_run) without return types