code: def make_futures_info(cls):
      trading_sessions = cls.trading_sessions["us_futures"]
      return pd.DataFrame(
          {
              "sid": [10000, 10001],
              "root_symbol": ["BAR", "BUZ"],
              "symbol": ["BARA", "BUZZ"],
              "start_date": [trading_sessions[1], trading_sessions[0]],
              "end_date": [cls.END_DATE, cls.END_DATE],
              # TODO: Make separate from 'end_date'
              "notice_date": [cls.END_DATE, cls.END_DATE],
              "expiration_date": [cls.END_DATE, cls.END_DATE],
              "tick_size": [0.01, 0.0001],
              "multiplier": [500, 50000],
              "exchange": ["CMES", "CMES"],
          }
      )
  
imports: from collections import OrderedDict
  from numpy import array, append, nan, full
  from numpy.testing import assert_almost_equal
  import pandas
  from pandas import Timedelta
  from six import iteritems
  from zipline.assets import Equity, Future
  from zipline.data.data_portal import HISTORY_FREQUENCIES, OHLCV_FIELDS
  from zipline.data.minute_bars import FUTURES_MINUTES_PER_DAY, US_EQUITIES_MINUTES_PER_DAY
  from zipline.testing import parameter_space
  from zipline.testing.fixtures import ZiplineTestCase, WithTradingSessions, WithDataPortal, alias
  from zipline.testing.predicates import assert_equal
  from zipline.utils.numpy_utils import float64_dtype
label_desc: Use image node_id 2 for calling the DataPortalTestBase obj's underlying member method code with example usage: obj.make_futures_info(cls) and returns: pd