code: def test_dataframe_getitem_bool(setup):
      data = pd.DataFrame(
          np.random.rand(10, 5), columns=["c1", "c2", "c3", "c4", "c5"]
      )
      df = md.DataFrame(data, chunk_size=2)
  
      mask_data = data.c1 > 0.5
      mask = md.Series(mask_data, chunk_size=2)
  
      # getitem by mars series
      assert df[mask].execute().fetch().shape == data[mask_data].shape
      pd.testing.assert_frame_equal(
          df[mask].execute().fetch(), data[mask_data]
      )
  
      # getitem by pandas series
      pd.testing.assert_frame_equal(
          df[mask_data].execute().fetch(), data[mask_data]
      )
  
      # getitem by mars series with alignment but no shuffle
      mask_data = pd.Series(
          [
              True,
              True,
              True,
              False,
              False,
              True,
              True,
              False,
              False,
              True,
          ],
          index=range(9, -1, -1),
      )
      mask = md.Series(mask_data, chunk_size=2)
      pd.testing.assert_frame_equal(
          df[mask].execute().fetch(), data[mask_data]
      )
  
      # getitem by mars series with shuffle alignment
      mask_data = pd.Series(
          [
              True,
              True,
              True,
              False,
              False,
              True,
              True,
              False,
              False,
              True,
          ],
          index=[0, 3, 6, 2, 9, 8, 5, 7, 1, 4],
      )
      mask = md.Series(mask_data, chunk_size=2)
      pd.testing.assert_frame_equal(
          df[mask].execute().fetch().sort_index(), data[mask_data]
      )
  
      # getitem by mars series with shuffle alignment and extra element
      mask_data = pd.Series(
          [
              True,
              True,
              True,
              False,
              False,
              True,
              True,
              False,
              False,
              True,
              False,
          ],
          index=[0, 3, 6, 2, 9, 8, 5, 7, 1, 4, 10],
      )
      mask = md.Series(mask_data, chunk_size=2)
      pd.testing.assert_frame_equal(
          df[mask].execute().fetch().sort_index(), data[mask_data]
      )
  
      # getitem by DataFrame with all bool columns
      r = df[df > 0.5]
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(result, data[data > 0.5])
  
      # getitem by tensor mask
      r = df[(df["c1"] > 0.5).to_tensor()]
      result = r.execute().fetch()
      pd.testing.assert_frame_equal(result, data[data["c1"] > 0.5])
  
      # test input data with unknown shape
      data = pd.DataFrame(np.random.rand(10, 2), columns=["c1", "c2"])
      mask_data = data[data["c2"] > 0.5]
      df = md.DataFrame(data, chunk_size=2)
      s = md.Series(mask_data["c1"] > 0.5, chunk_size=2)
      df1 = df[df["c2"] > 0.5]
      s._index_value = df1.index_value
      r = df1[s]
      pd.testing.assert_frame_equal(
          r.execute().fetch(), mask_data[mask_data["c1"] > 0.5]
      )
  
imports: import os
  import tempfile
  import mars
  import numpy
  import pandas
  import pytest
  from ....None import dataframe
  from ....None import tensor
  from ....utils import pd_release_version
  from ...datasource.read_csv import DataFrameReadCSV
  from ...datasource.read_sql import DataFrameReadSQL
  from ...datasource.read_parquet import DataFrameReadParquet
label_desc: Use image node_id 6 for calling a global function with example usage: test_dataframe_getitem_bool(setup) without return types