code: def wait_for_containers_in_trash(
      self,
      expected_run_count: int,
      expected_model_count: int,
      project: Project,
  ):
      trashed_runs = project.fetch_runs_table(trashed=True).to_rows()
      trashed_models = project.fetch_models_table(
          trashed=True
      ).to_rows()
      assert len(trashed_models) == expected_model_count
      assert len(trashed_runs) == expected_run_count
  
imports: import time
  from typing import Callable, Dict, List
  import backoff
  import pytest
  from neptune import Project, init_model_version
  from neptune.internal.container_type import ContainerType
  from neptune.management import ProjectVisibility, add_project_member, add_project_service_account, clear_trash, create_project, delete_project, get_project_list, get_project_member_list, get_project_service_account_list, get_workspace_member_list, get_workspace_service_account_list, invite_to_workspace, remove_project_member, remove_project_service_account, trash_objects
  from neptune.management.exceptions import ProjectPrivacyRestrictedException, UserAlreadyInvited, UserNotExistsOrWithoutAccess, WorkspaceOrUserNotFound
  from neptune.management.internal.utils import normalize_project_name
  from neptune.metadata_containers.metadata_containers_table import Table
  from tests.e2e.base import BaseE2ETest, fake
  from tests.e2e.utils import Environment, a_project_name, initialize_container
label_desc: Use image node_id 2 for calling the TestDeleteFromTrash obj's underlying member method code with example usage: obj.wait_for_containers_in_trash(expected_run_count, expected_model_count, project) without return types