code: def test_bitwise_operations(self):
      from pyspark.sql import functions
  
      row = Row(a=170, b=75)
      df = self.spark.createDataFrame([row])
      result = df.select(df.a.bitwiseAND(df.b)).collect()[0].asDict()
      self.assertEqual(170 & 75, result["(a & b)"])
      result = df.select(df.a.bitwiseOR(df.b)).collect()[0].asDict()
      self.assertEqual(170 | 75, result["(a | b)"])
      result = df.select(df.a.bitwiseXOR(df.b)).collect()[0].asDict()
      self.assertEqual(170 ^ 75, result["(a ^ b)"])
      result = (
          df.select(functions.bitwiseNOT(df.b)).collect()[0].asDict()
      )
      self.assertEqual(~75, result["~b"])
      result = (
          df.select(functions.bitwise_not(df.b)).collect()[0].asDict()
      )
      self.assertEqual(~75, result["~b"])
  
imports: from itertools import chain
  from pyspark.sql import Column, Row
  from pyspark.sql import functions
  from pyspark.sql.types import StructType, StructField, LongType
  from pyspark.errors import AnalysisException, PySparkTypeError, PySparkValueError
  from pyspark.testing.sqlutils import ReusedSQLTestCase
label_desc: Use image node_id 10 for calling the ColumnTestsMixin obj's underlying member method code with example usage: obj.test_bitwise_operations() without return types