code: def test_dataframe_getitem_bool():
      data = pd.DataFrame(
          np.random.rand(10, 5),
          columns=["c1", "c2", "c3", "c4", "c5"],
          index=pd.RangeIndex(10, name="i"),
      )
      df = md.DataFrame(data, chunk_size=2)
  
      mask_data1 = data.c1 > 0.5
      mask_data2 = data.c1 < 0.5
      mask1 = md.Series(mask_data1, chunk_size=2)
      mask2 = md.Series(mask_data2, chunk_size=2)
  
      r1 = df[mask1]
      r2 = df[mask2]
      r3 = df[mask1]
  
      assert r1.index_value.key != df.index_value.key
      assert r1.index_value.key != mask1.index_value.key
      assert r1.columns_value.key == df.columns_value.key
      assert r1.columns_value is df.columns_value
      assert r1.index_value.name == "i"
  
      assert r1.index_value.key != r2.index_value.key
      assert r1.columns_value.key == r2.columns_value.key
      assert r1.columns_value is r2.columns_value
  
      assert r1.index_value.key == r3.index_value.key
      assert r1.columns_value.key == r3.columns_value.key
      assert r1.columns_value is r3.columns_value
  
imports: import numpy
  import pandas
  import pytest
  from ....None import dataframe
  from ....None import tensor
  from ....core import tile
  from ....tensor.core import TENSOR_CHUNK_TYPE, TENSOR_TYPE, Tensor
  from ...core import SERIES_CHUNK_TYPE, SERIES_TYPE, Series, DATAFRAME_TYPE, DataFrame, DATAFRAME_CHUNK_TYPE
  from ...datasource.from_tensor import dataframe_from_tensor
  from ..iloc import DataFrameIlocGetItem, DataFrameIlocSetItem, IndexingError, HeadTailOptimizedOperandMixin
  from ..loc import DataFrameLocGetItem
label_desc: Use image node_id 7 for calling a global function with example usage: test_dataframe_getitem_bool() without return types