code: def default_synthetic() -> Tuple[DatasetInfo, Dataset, Dataset]:
      recipe = [
          (FieldName.TARGET, LinearTrend() + RandomGaussian()),
          (FieldName.FEAT_STATIC_CAT, RandomCat([10])),
          (
              FieldName.FEAT_STATIC_REAL,
              ForEachCat(
                  RandomGaussian(1, (10,)), FieldName.FEAT_STATIC_CAT
              )
              + RandomGaussian(0.1, (10,)),
          ),
      ]
  
      data = RecipeDataset(
          recipe=recipe,
          metadata=MetaData(
              freq="D",
              feat_static_real=[
                  BasicFeatureInfo(name=FieldName.FEAT_STATIC_REAL)
              ],
              feat_static_cat=[
                  CategoricalFeatureInfo(
                      name=FieldName.FEAT_STATIC_CAT, cardinality="10"
                  )
              ],
              feat_dynamic_real=[
                  BasicFeatureInfo(name=FieldName.FEAT_DYNAMIC_REAL)
              ],
          ),
          max_train_length=20,
          prediction_length=10,
          num_timeseries=10,
          trim_length_fun=lambda x, **kwargs: np.minimum(
              int(
                  np.random.geometric(1 / (kwargs["train_length"] / 2))
              ),
              kwargs["train_length"],
          ),
      )
  
      generated = data.generate()
      assert generated.test is not None
      info = data.dataset_info(generated.train, generated.test)
  
      return info, generated.train, generated.test
  
imports: import math
  import random
  from abc import abstractmethod
  from typing import Callable, Dict, List, NamedTuple, Optional, Tuple, Union, cast
  import numpy
  import pandas
  from pandas.tseries.frequencies import to_offset
  from pandas.tseries.offsets import BaseOffset, Week
  from gluonts.dataset.artificial.recipe import BinaryHolidays, BinaryMarkovChain, Constant, ForEachCat, Lag, LinearTrend, RandomCat, RandomGaussian, Stack, generate, take_as_list
  from gluonts.dataset.common import BasicFeatureInfo, CategoricalFeatureInfo, DataEntry, Dataset, ListDataset, MetaData, TrainDatasets
  from gluonts.dataset.field_names import FieldName
  from gluonts.dataset.stat import DatasetStatistics, calculate_dataset_statistics
label_desc: Use image node_id 1 for calling a global function with example usage: default_synthetic() and returns: info,  generated,  generated