code: def _assert_sent_received_data(
      metrics_sent,
      params_sent,
      tags_sent,
      received_metrics,
      received_params,
      received_tags,
  ):
      for num in range(1, len(metrics_sent)):
          assert metrics_sent[num].key == received_metrics[num].key
          assert metrics_sent[num].value == received_metrics[num].value
          assert (
              metrics_sent[num].timestamp
              == received_metrics[num].timestamp
          )
          assert metrics_sent[num].step == received_metrics[num].step
  
      for num in range(1, len(tags_sent)):
          assert tags_sent[num].key == received_tags[num].key
          assert tags_sent[num].value == received_tags[num].value
  
      for num in range(1, len(params_sent)):
          assert params_sent[num].key == received_params[num].key
          assert params_sent[num].value == received_params[num].value
  
imports: import io
  import pickle
  import random
  import threading
  import time
  import uuid
  import pytest
  from mlflow import MlflowException
  from mlflow.entities.metric import Metric
  from mlflow.entities.param import Param
  from mlflow.entities.run_tag import RunTag
  from mlflow.utils.async_logging.async_logging_queue import AsyncLoggingQueue
label_desc: Use image node_id 8 for calling a global function with example usage: _assert_sent_received_data(metrics_sent, params_sent, tags_sent, received_metrics, received_params, received_tags) without return types