code: def test_neg_raises(self, df_data, using_infer_string):
      df = pd.DataFrame({"a": df_data})
      msg = (
          "bad operand type for unary -: 'str'|"
          r"bad operand type for unary -: 'DatetimeArray'"
      )
      if using_infer_string and df.dtypes.iloc[0] == "string":
          import pyarrow as pa
  
          msg = "has no kernel"
          with pytest.raises(
              pa.lib.ArrowNotImplementedError, match=msg
          ):
              (-df)
          with pytest.raises(
              pa.lib.ArrowNotImplementedError, match=msg
          ):
              (-df["a"])
  
      else:
          with pytest.raises(TypeError, match=msg):
              (-df)
          with pytest.raises(TypeError, match=msg):
              (-df["a"])
  
file_path: pandas/pandas/tests/frame/test_unary.py
imports: from decimal import Decimal
  import numpy
  import pytest
  from pandas.compat.numpy import np_version_gte1p25
  import pandas
  import pandas._testing
label_desc: Use image node_id 3 for calling the TestDataFrameUnaryOperators obj's underlying member method code with example usage: obj.test_neg_raises(df_data, using_infer_string) without return types