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