code: def test_history_close_minute_adjusted(self):
      cf = self.data_portal.asset_finder.create_continuous_future(
          "FO", 0, "calendar", None
      )
      cf_mul = self.data_portal.asset_finder.create_continuous_future(
          "FO", 0, "calendar", "mul"
      )
      cf_add = self.data_portal.asset_finder.create_continuous_future(
          "FO", 0, "calendar", "add"
      )
      window = self.data_portal.get_history_window(
          [cf, cf_mul, cf_add],
          Timestamp("2016-02-25 18:01", tz="US/Eastern").tz_convert(
              "UTC"
          ),
          30,
          "1m",
          "close",
          "minute",
      )
  
      # Unadjusted: 115231.412
      # Adjustment based on roll:
      # 2016-02-25 23:00:00+00:00
      # front: 115231.440
      # back:  125231.440
      # Ratio: ~0.920
      # Difference: 10000.00
      self.assertEqual(
          window.loc["2016-02-25 22:32", cf_mul],
          125231.41,
          "Should be FOG16 at beginning of window. A minute "
          "which is in the 02-25 session, before the roll.",
      )
  
      self.assertEqual(
          window.loc["2016-02-25 22:32", cf_add],
          125231.412,
          "Should be FOG16 at beginning of window. A minute "
          "which is in the 02-25 session, before the roll.",
      )
  
      # Unadjusted: 115231.44
      # Should use same ratios as above.
      self.assertEqual(
          window.loc["2016-02-25 23:00", cf_mul],
          125231.44,
          "Should be FOG16 on on minute before roll minute, "
          "adjusted.",
      )
  
      self.assertEqual(
          window.loc["2016-02-25 23:00", cf_add],
          125231.44,
          "Should be FOG16 on on minute before roll minute, "
          "adjusted.",
      )
  
      self.assertEqual(
          window.loc["2016-02-25 23:01", cf_mul],
          125240.001,
          "Should be FOH16 on minute after roll, unadjusted.",
      )
  
      self.assertEqual(
          window.loc["2016-02-25 23:01", cf_add],
          125240.001,
          "Should be FOH16 on minute after roll, unadjusted.",
      )
  
      # Advance the window a session.
      window = self.data_portal.get_history_window(
          [cf, cf_mul, cf_add],
          Timestamp("2016-02-28 18:01", tz="US/Eastern").tz_convert(
              "UTC"
          ),
          30,
          "1m",
          "close",
          "minute",
      )
  
      # No adjustments in this window.
      self.assertEqual(
          window.loc["2016-02-26 22:32", cf_mul],
          125241.412,
          "Should be FOH16 at beginning of window.",
      )
  
      self.assertEqual(
          window.loc["2016-02-28 23:01", cf_mul],
          125250.001,
          "Should remain FOH16 on next session.",
      )
  
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 21 for calling the ContinuousFuturesTestCase obj's underlying member method code with example usage: obj.test_history_close_minute_adjusted() without return types