code: def test_mqf2_loss(data_with_covariates, tmp_path):
      data_with_covariates = data_with_covariates.assign(
          volume=lambda x: x.volume.round()
      )
      dataloaders_with_covariates = make_dataloaders(
          data_with_covariates,
          target="volume",
          time_varying_known_reals=["price_actual"],
          time_varying_unknown_reals=["volume"],
          static_categoricals=["agency"],
          add_relative_time_idx=True,
          target_normalizer=GroupNormalizer(
              groups=["agency", "sku"],
              center=False,
              transformation="log1p",
          ),
      )
  
      prediction_length = dataloaders_with_covariates[
          "train"
      ].dataset.min_prediction_length
  
      _integration(
          dataloaders_with_covariates,
          tmp_path,
          loss=MQF2DistributionLoss(
              prediction_length=prediction_length
          ),
          learning_rate=1e-3,
          trainer_kwargs=dict(accelerator="cpu"),
      )
  
imports: import pickle
  import shutil
  import sys
  import lightning.pytorch
  from lightning.pytorch.callbacks import EarlyStopping, ModelCheckpoint
  from lightning.pytorch.loggers import TensorBoardLogger
  import numpy
  import pytest
  import torch
  from pytorch_forecasting import TimeSeriesDataSet
  from pytorch_forecasting.data import NaNLabelEncoder
  from pytorch_forecasting.data.encoders import GroupNormalizer, MultiNormalizer
  from pytorch_forecasting.metrics import CrossEntropy, MQF2DistributionLoss, MultiLoss, NegativeBinomialDistributionLoss, PoissonLoss, QuantileLoss, TweedieLoss
  from pytorch_forecasting.models import TemporalFusionTransformer
  from pytorch_forecasting.models.temporal_fusion_transformer.tuning import optimize_hyperparameters
  from test_models.conftest import make_dataloaders
label_desc: Use image node_id 4 for calling a global function with example usage: test_mqf2_loss(data_with_covariates, tmp_path) without return types