code: def compare_python_to_reference_murmur3_32(data: Any, seed: int = 0) -> None:
      
      assert mmh3, "Need mmh3 module"
      c_data = to_str(data)
      c_signed = mmh3.hash(c_data, seed=seed)  # 32 bit
      py_data = to_bytes(c_data)
      py_unsigned = murmur3_x86_32(py_data, seed=seed)
      py_signed = twos_comp_to_signed(py_unsigned, n_bits=32)
      preamble = "Hashing {data} with MurmurHash3/32-bit/seed={seed}".format(
          data=repr(data), seed=seed)
      if c_signed == py_signed:
          print(preamble + " -> {result}: OK".format(result=c_signed))
      else:
          raise AssertionError(
              preamble + "; mmh3 says "
              "{c_data} -> {c_signed}, Python version says {py_data} -> "
              "{py_unsigned} = {py_signed}".format(
                  c_data=repr(c_data),
                  c_signed=c_signed,
                  py_data=repr(py_data),
                  py_unsigned=py_unsigned,
                  py_signed=py_signed))
docs: Checks the pure Python implementation of 32-bit murmur3 against the
      ``mmh3`` C-based module.
  
      Args:
          data: data to hash
          seed: seed
  
      Raises:
          AssertionError: if the two calculations don't match