code: def test_bitwise(dtype):
      left = pd.array([1, None, 3, 4], dtype=dtype)
      right = pd.array([None, 3, 5, 4], dtype=dtype)
  
      result = left | right
      expected = pd.array([None, None, 3 | 5, 4 | 4], dtype=dtype)
      tm.assert_extension_array_equal(result, expected)
  
      result = left & right
      expected = pd.array([None, None, 3 & 5, 4 & 4], dtype=dtype)
      tm.assert_extension_array_equal(result, expected)
  
      result = left ^ right
      expected = pd.array([None, None, 3 ^ 5, 4 ^ 4], dtype=dtype)
      tm.assert_extension_array_equal(result, expected)
  
      # TODO: desired behavior when operating with boolean?  defer?
  
      floats = right.astype("Float64")
      with pytest.raises(TypeError, match="unsupported operand type"):
          left | floats
      with pytest.raises(TypeError, match="unsupported operand type"):
          left & floats
      with pytest.raises(TypeError, match="unsupported operand type"):
          left ^ floats
  
imports: import operator
  import numpy
  import pytest
  import pandas
  import pandas._testing
  from pandas.core import ops
  from pandas.core.arrays import FloatingArray
label_desc: Use image node_id 19 for calling a global function with example usage: test_bitwise(dtype) without return types