code: def verify_get_candles_df(
      cls,
      assets,
      candles,
      end_fixed_dt,
      expected_df,
      check_next_candle=False,
  ):
      # run on all the fields
      for field in ["volume", "open", "close", "high", "low"]:
          field_dt = cls.get_specific_field_from_df(
              expected_df, field, assets[0]
          )
          # run on several timestamps
          for delta in range(5):
              end_dt = end_fixed_dt + timedelta(minutes=delta)
              assert field_dt.equals(
                  get_candles_df(
                      {assets[0]: candles},
                      field,
                      "5T",
                      3,
                      end_dt=end_dt,
                  )
              )
  
              field_dt_a1 = cls.get_specific_field_from_df(
                  expected_df, field, assets[0]
              )
              field_dt_a2 = cls.get_specific_field_from_df(
                  expected_df, field, assets[1]
              )
              observed_df = get_candles_df(
                  {assets[0]: candles, assets[1]: candles},
                  field,
                  "5T",
                  3,
                  end_dt=end_dt,
              )
  
              assert observed_df.equals(
                  concat([field_dt_a1, field_dt_a2], axis=1)
              )
  
          if check_next_candle:
              # one candle forward
              end_dt = end_fixed_dt + timedelta(minutes=6)
              observed_df = get_candles_df(
                  {assets[0]: candles, assets[1]: candles},
                  field,
                  "5T",
                  3,
                  end_dt=end_dt,
              )
  
              assert not observed_df.equals(
                  concat([field_dt_a1, field_dt_a2], axis=1)
              )
              assert concat([field_dt_a1, field_dt_a2], axis=1)[
                  1:
              ].equals(observed_df[:-1])
  
file_path: catalyst/tests/exchange/test_exchange_utils.py
imports: from catalyst.exchange.utils.exchange_utils import transform_candles_to_df, forward_fill_df_if_needed, get_candles_df
  from catalyst.testing.fixtures import WithLogger, CatalystTestCase
  from datetime import timedelta
  from pandas import Timestamp, DataFrame, concat
  import numpy
label_desc: Use image node_id 3 for calling the TestExchangeUtils obj's underlying member method code with example usage: obj.verify_get_candles_df(cls, assets, candles, end_fixed_dt, expected_df, check_next_candle) without return types