code: def test_validate_batch_log_limits():
      too_many_metrics = [
          Metric(f"metric-key-{i}", 1, 0, i * 2) for i in range(1001)
      ]
      too_many_params = [
          Param(f"param-key-{i}", "b") for i in range(101)
      ]
      too_many_tags = [RunTag(f"tag-key-{i}", "b") for i in range(101)]
  
      good_kwargs = {"metrics": [], "params": [], "tags": []}
      bad_kwargs = {
          "metrics": [too_many_metrics],
          "params": [too_many_params],
          "tags": [too_many_tags],
      }
      match = r"A batch logging request can contain at most \d+"
      for arg_name, arg_values in bad_kwargs.items():
          for arg_value in arg_values:
              final_kwargs = copy.deepcopy(good_kwargs)
              final_kwargs[arg_name] = arg_value
              with pytest.raises(MlflowException, match=match):
                  _validate_batch_log_limits(**final_kwargs)
      # Test the case where there are too many entities in aggregate
      with pytest.raises(MlflowException, match=match):
          _validate_batch_log_limits(
              too_many_metrics[:900],
              too_many_params[:51],
              too_many_tags[:50],
          )
      # Test that we don't reject entities within the limit
      _validate_batch_log_limits(too_many_metrics[:1000], [], [])
      _validate_batch_log_limits([], too_many_params[:100], [])
      _validate_batch_log_limits([], [], too_many_tags[:100])
  
imports: import copy
  import pytest
  from mlflow.entities import Metric, Param, RunTag
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE, ErrorCode
  from mlflow.utils.validation import _is_numeric, _validate_batch_log_data, _validate_batch_log_limits, _validate_db_type_string, _validate_experiment_artifact_location, _validate_experiment_name, _validate_metric_name, _validate_model_alias_name, _validate_param_name, _validate_run_id, _validate_tag_name, path_not_unique
label_desc: Use image node_id 13 for calling a global function with example usage: test_validate_batch_log_limits() without return types