code: def test_history_sid_session_volume_roll(self):
      cf = self.data_portal.asset_finder.create_continuous_future(
          "FO", 0, "volume", None
      )
      window = self.data_portal.get_history_window(
          [cf],
          Timestamp("2016-03-04 18:01", tz="US/Eastern").tz_convert(
              "UTC"
          ),
          30,
          "1d",
          "sid",
          "minute",
      )
  
      # Volume cuts out for FOF16 on 2016-01-25
      self.assertEqual(
          window.loc["2016-01-26", cf],
          0,
          "Should be FOF16 at beginning of window.",
      )
  
      self.assertEqual(
          window.loc["2016-01-27", cf],
          1,
          "Should have rolled to FOG16.",
      )
  
      self.assertEqual(
          window.loc["2016-02-26", cf],
          1,
          "Should be FOG16 on session before roll.",
      )
  
      self.assertEqual(
          window.loc["2016-02-29", cf],
          2,
          "Should be FOH16 on session with roll.",
      )
  
      self.assertEqual(
          window.loc["2016-03-01", cf],
          2,
          "Should be FOH16 on session after roll.",
      )
  
      # Advance the window a month.
      window = self.data_portal.get_history_window(
          [cf],
          Timestamp("2016-04-06 18:01", tz="US/Eastern").tz_convert(
              "UTC"
          ),
          30,
          "1d",
          "sid",
          "minute",
      )
  
      self.assertEqual(
          window.loc["2016-02-26", cf],
          1,
          "Should be FOG16 at beginning of window.",
      )
  
      self.assertEqual(
          window.loc["2016-02-29", cf],
          2,
          "Should be FOH16 on roll session.",
      )
  
      self.assertEqual(
          window.loc["2016-03-01", cf], 2, "Should remain FOH16."
      )
  
      self.assertEqual(
          window.loc["2016-03-17", cf],
          2,
          "Should be FOH16 on session before volume cuts out.",
      )
  
      self.assertEqual(
          window.loc["2016-03-18", cf],
          2,
          "Should be FOH16 on session where the volume of "
          "FOH16 cuts out, the roll is upcoming.",
      )
  
      self.assertEqual(
          window.loc["2016-03-24", cf],
          3,
          "Should have rolled to FOJ16.",
      )
  
      self.assertEqual(
          window.loc["2016-03-28", cf], 3, "Should have remained FOJ16."
      )
  
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 15 for calling the ContinuousFuturesTestCase obj's underlying member method code with example usage: obj.test_history_sid_session_volume_roll() without return types