code: def test_get_last_traded_future_minute(self):
      asset = self.asset_finder.retrieve_asset(10000)
      trading_calendar = self.trading_calendars[Future]
      # Case: Missing data at front of data set, and request dt is before
      # first value.
      dts = trading_calendar.minutes_for_session(self.trading_days[0])
      self.assertTrue(
          pd.isnull(
              self.data_portal.get_last_traded_dt(
                  asset, dts[0], "minute"
              )
          )
      )
  
      # Case: Data on requested dt.
      dts = trading_calendar.minutes_for_session(self.trading_days[3])
  
      self.assertEqual(
          dts[1],
          self.data_portal.get_last_traded_dt(asset, dts[1], "minute"),
      )
  
      # Case: No data on dt, but data occuring before dt.
      self.assertEqual(
          dts[4],
          self.data_portal.get_last_traded_dt(asset, dts[5], "minute"),
      )
  
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 7 for calling the DataPortalTestBase obj's underlying member method code with example usage: obj.test_get_last_traded_future_minute() without return types