code: def test_end_before_auto_close(self):
      # Test that we correctly roll from CLJ17 (1003) to CLK17 (1004) even
      # though CLJ17 has an auto close date after its end date.
      rolls = self.volume_roll_finder.get_rolls(
          root_symbol="CL",
          start=self.fourth_start_date,
          end=self.fourth_auto_close_date,
          offset=0,
      )
      self.assertEqual(
          rolls,
          [
              (1002, pd.Timestamp("2017-03-16", tz="UTC")),
              (1003, pd.Timestamp("2017-04-18", tz="UTC")),
              (1004, None),
          ],
      )
  
imports: from collections import deque
  from functools import partial
  from textwrap import dedent
  from numpy import arange, array, int64, full, repeat, tile
  from numpy.testing import assert_almost_equal
  import pandas
  from pandas import Timestamp, DataFrame
  from zipline.assets.continuous_futures import OrderedContracts, delivery_predicate
  from zipline.assets.roll_finder import ROLL_DAYS_FOR_CURRENT_CONTRACT, VolumeRollFinder
  from zipline.data.minute_bars import FUTURES_MINUTES_PER_DAY
  from zipline.errors import SymbolNotFound
  import zipline.testing.fixtures
label_desc: Use image node_id 7 for calling the RollFinderTestCase obj's underlying member method code with example usage: obj.test_end_before_auto_close() without return types