code: def data():
      np.random.seed(9208)
      levels = [[3]]
      tree = HierarchicalRelationship(levels)
      m = tree.num_nodes
      n = 150  # number of observations per timeseries
      # Each row is a timeseries, generally increasing.
      Ya = 100 * np.random.uniform(
          0.0, 2.0, size=(m, n)
      ).cumsum().reshape((m, n))
      Ya = tree.bottom_up_transform @ Ya  # makes values consistent
      scale = Ya.mean()
      Yf = (
          Ya + np.random.rand(m, n) * scale / 20 + scale / 2
      )  # adds forecast error and bias to increase the constraint violation
      forecasts = pd.DataFrame(Yf.T, columns=["root", "c1", "c2", "c3"])
      actuals = pd.DataFrame(Ya.T, columns=["root", "c1", "c2", "c3"])
      # Reorders columns to test `order_dict`
      forecasts = forecasts[["c1", "c3", "root", "c2"]]
      actuals = actuals[["c1", "c3", "root", "c2"]]
      order_dict = {
          "root": 0,  # hierarchy order
          "c1": 1,
          "c2": 2,
          "c3": 2,
      }
      return {
          "forecasts": forecasts,
          "actuals": actuals,
          "tree": tree,
          "levels": levels,
          "order_dict": order_dict,
          "Yf": Yf,
          "Ya": Ya,
          "m": m,
      }
  
imports: import math
  import os
  import warnings
  import cvxpy
  import numpy
  import pandas
  import pytest
  from scipy.linalg import sqrtm
  from sklearn.exceptions import NotFittedError
  from greykite.algo.reconcile.convex.reconcile_forecasts import ReconcileAdditiveForecasts
  from greykite.algo.reconcile.convex.reconcile_forecasts import TraceInfo
  from greykite.algo.reconcile.convex.reconcile_forecasts import apply_method_defaults
  from greykite.algo.reconcile.convex.reconcile_forecasts import evaluation_plot
  from greykite.algo.reconcile.convex.reconcile_forecasts import get_fit_params
  from greykite.algo.reconcile.convex.reconcile_forecasts import get_weight_matrix
  from greykite.algo.reconcile.hierarchical_relationship import HierarchicalRelationship
  from greykite.common.constants import TIME_COL
  from greykite.common.data_loader import DataLoader
  from greykite.common.evaluation import mean_absolute_percent_error
  from greykite.common.evaluation import median_absolute_percent_error
  from greykite.common.evaluation import root_mean_squared_error
  from greykite.common.python_utils import assert_equal
  from greykite.common.python_utils import reorder_columns
label_desc: Use image node_id 1 for calling a global function with example usage: data() and returns: dict