def METHOD_NAME(
    sine7, base_model, reconciler, model_params, reconciler_params
):
    train_datasets = sine7(
        prediction_length=PREDICTION_LENGTH,
        nonnegative=True,
        seq_length=25,
        bias=1,
    )
    (train_dataset, test_dataset, metadata) = (
        train_datasets.train,
        train_datasets.test,
        train_datasets.metadata,
    )
    S = metadata.S
    predictor = HierarchicalForecastPredictor(
        prediction_length=PREDICTION_LENGTH,
        base_model=base_model,
        reconciler=reconciler,
        S=S,
        tags=TAGS,
        ts_names=TS_NAMES,
        quantile_levels=QUANTILE_LEVELS,
        model_params=model_params,
        reconciler_params=reconciler_params,
    )
    agg_metrics, item_metrics = backtest_metrics(
        test_dataset=test_dataset,
        predictor=predictor,
        evaluator=MultivariateEvaluator(
            quantiles=(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)
        ),
    )
    assert agg_metrics["mean_wQuantileLoss"] < TOLERANCE
    assert agg_metrics["NRMSE"] < TOLERANCE
    assert agg_metrics["RMSE"] < TOLERANCE