code: def test_arrow_block_select():
      df = pd.DataFrame(
          {
              "one": [10, 11, 12],
              "two": [11, 12, 13],
              "three": [14, 15, 16],
          }
      )
      table = pa.Table.from_pandas(df)
      block_accessor = BlockAccessor.for_block(table)
  
      block = block_accessor.select(["two"])
      assert block.schema == pa.schema([("two", pa.int64())])
      assert block.to_pandas().equals(df[["two"]])
  
      block = block_accessor.select(["two", "one"])
      assert block.schema == pa.schema(
          [("two", pa.int64()), ("one", pa.int64())]
      )
      assert block.to_pandas().equals(df[["two", "one"]])
  
      with pytest.raises(ValueError):
          block = block_accessor.select([lambda x: x % 3, "two"])
  
imports: import os
  import numpy
  import pandas
  import pyarrow
  import pytest
  import ray
  from ray.data._internal.arrow_ops.transform_pyarrow import concat, unify_schemas
  from ray.data.block import BlockAccessor
  from ray.data.extensions import ArrowTensorArray, ArrowTensorType, ArrowVariableShapedTensorType
label_desc: Use image node_id 10 for calling a global function with example usage: test_arrow_block_select() without return types