code: def make_future_minute_bar_data(cls):
      m_opens = [
          cls.trading_calendar.open_and_close_for_session(session)[0]
          for session in cls.trading_sessions["us_futures"]
      ]
      yield 10001, DataFrame(
          {
              "open": [10000.5, 10001.5, nan],
              "high": [10000.9, 10001.9, nan],
              "low": [10000.1, 10001.1, nan],
              "close": [10000.3, 10001.3, nan],
              "volume": [1000, 1001, 0],
          },
          index=m_opens,
      )
      yield 10002, DataFrame(
          {
              "open": [20000.5, nan, 20002.5],
              "high": [20000.9, nan, 20002.9],
              "low": [20000.1, nan, 20002.1],
              "close": [20000.3, nan, 20002.3],
              "volume": [2000, 0, 2002],
          },
          index=m_opens,
      )
      yield 10003, DataFrame(
          {
              "open": [nan, 30001.5, 30002.5],
              "high": [nan, 30001.9, 30002.9],
              "low": [nan, 30001.1, 30002.1],
              "close": [nan, 30001.3, 30002.3],
              "volume": [0, 3001, 3002],
          },
          index=m_opens,
      )
  
imports: from numpy import array, nan
  from numpy.testing import assert_almost_equal
  from pandas import DataFrame, Timestamp
  from zipline.assets import Equity, Future
  from zipline.data.dispatch_bar_reader import AssetDispatchMinuteBarReader, AssetDispatchSessionBarReader
  from zipline.data.resample import MinuteResampleSessionBarReader, ReindexMinuteBarReader, ReindexSessionBarReader
  from zipline.testing.fixtures import WithBcolzEquityMinuteBarReader, WithBcolzEquityDailyBarReader, WithBcolzFutureMinuteBarReader, WithTradingSessions, ZiplineTestCase
label_desc: Use image node_id 1 for calling the AssetDispatchSessionBarTestCase obj's underlying member method code with example usage: obj.make_future_minute_bar_data(cls) without return types