code: def test_mock_univariate_forecaster_log(y, X_train, X_pred, fh):
      """Tests the log of the MockUnivariateForecasterLogger.
  
      Tests the following:
      - log format and content
      - All the private methods that have logging enabled are in the log
      - the correct inner mtypes are preserved, according to the forecaster tags
      """
      forecaster = MockUnivariateForecasterLogger()
      forecaster.fit(y, X_train, fh)
      forecaster.predict(fh, X_pred)
      forecaster.update(y, X_train, fh)
      forecaster.predict_quantiles(fh=fh, X=X_pred, alpha=[0.1, 0.9])
  
      _X_train = (
          deepcopy(X_frame_train) if X_train is not None else None
      )
      _X_pred = deepcopy(X_frame_pred) if X_pred is not None else None
  
      expected_log = [
          ("_fit", {"y": y_series, "X": _X_train, "fh": fh}),
          ("_predict", {"fh": fh, "X": _X_pred}),
          (
              "_update",
              {"y": y_series, "X": _X_train, "update_params": fh},
          ),
          (
              "_predict_quantiles",
              {"fh": fh, "X": _X_pred, "alpha": [0.1, 0.9]},
          ),
      ]
  
      equals, msg = deep_equals(
          forecaster.log, expected_log, return_msg=True
      )
      assert equals, msg
  
imports: from copy import deepcopy
  import pytest
  from sktime.datasets import load_airline
  from sktime.forecasting.base import ForecastingHorizon
  from sktime.utils._testing.deep_equals import deep_equals
  from sktime.utils.estimators import MockUnivariateForecasterLogger
label_desc: Use image node_id 1 for calling a global function with example usage: test_mock_univariate_forecaster_log(y, X_train, X_pred, fh) without return types