code: def test_between_time(self):
      idx = pd.date_range("2018-04-09", periods=4, freq="1D20min")
      pdf = pd.DataFrame({"A": [1, 2, 3, 4]}, index=idx)
      psdf = ps.from_pandas(pdf)
      self.assert_eq(
          pdf.between_time("0:15", "0:45").sort_index(),
          psdf.between_time("0:15", "0:45").sort_index(),
      )
  
      pdf.index.name = "ts"
      psdf = ps.from_pandas(pdf)
      self.assert_eq(
          pdf.between_time("0:15", "0:45").sort_index(),
          psdf.between_time("0:15", "0:45").sort_index(),
      )
  
      # Column label is 'index'
      pdf.columns = pd.Index(["index"])
      psdf = ps.from_pandas(pdf)
      self.assert_eq(
          pdf.between_time("0:15", "0:45").sort_index(),
          psdf.between_time("0:15", "0:45").sort_index(),
      )
  
      # Both index name and column label are 'index'
      pdf.index.name = "index"
      psdf = ps.from_pandas(pdf)
      self.assert_eq(
          pdf.between_time("0:15", "0:45").sort_index(),
          psdf.between_time("0:15", "0:45").sort_index(),
      )
  
      # Index name is 'index', column label is ('X', 'A')
      pdf.columns = pd.MultiIndex.from_arrays([["X"], ["A"]])
      psdf = ps.from_pandas(pdf)
      self.assert_eq(
          pdf.between_time("0:15", "0:45").sort_index(),
          psdf.between_time("0:15", "0:45").sort_index(),
      )
  
      with self.assertRaisesRegex(
          NotImplementedError,
          "between_time currently only works for axis=0",
      ):
          psdf.between_time("0:15", "0:45", axis=1)
  
      psdf = ps.DataFrame({"A": [1, 2, 3, 4]})
      with self.assertRaisesRegex(
          TypeError, "Index must be DatetimeIndex"
      ):
          psdf.between_time("0:15", "0:45")
  
      psdf = ps.from_pandas(pdf)
      self.assert_eq(
          pdf.between_time(
              "0:15", "0:45", inclusive="neither"
          ).sort_index(),
          psdf.between_time(
              "0:15", "0:45", inclusive="neither"
          ).sort_index(),
      )
  
      self.assert_eq(
          pdf.between_time(
              "0:15", "0:45", inclusive="left"
          ).sort_index(),
          psdf.between_time(
              "0:15", "0:45", inclusive="left"
          ).sort_index(),
      )
  
      self.assert_eq(
          pdf.between_time(
              "0:15", "0:45", inclusive="right"
          ).sort_index(),
          psdf.between_time(
              "0:15", "0:45", inclusive="right"
          ).sort_index(),
      )
  
      with self.assertRaises(PySparkValueError) as ctx:
          psdf.between_time("0:15", "0:45", inclusive="")
  
      self.check_error(
          exception=ctx.exception,
          error_class="VALUE_NOT_ALLOWED",
          message_parameters={
              "arg_name": "inclusive",
              "allowed_values": str(
                  ["left", "right", "both", "neither"]
              ),
          },
      )
  
imports: import unittest
  import numpy
  import pandas
  from pandas.tseries.offsets import DateOffset
  from pyspark import pandas
  from pyspark.errors import PySparkValueError
  from pyspark.pandas.config import option_context
  from pyspark.testing.pandasutils import ComparisonTestBase
  from pyspark.testing.sqlutils import SQLTestUtils
label_desc: Use image node_id 4 for calling the FrameReindexingMixin obj's underlying member method code with example usage: obj.test_between_time() without return types