code: def test_ewm_error(self):
      with self.assertRaisesRegex(
          TypeError,
          "psdf_or_psser must be a series or dataframe; however, got:.*int",
      ):
          ExponentialMoving(1, 2)
  
      psdf = ps.range(10)
  
      with self.assertRaisesRegex(
          ValueError, "min_periods must be >= 0"
      ):
          psdf.ewm(min_periods=-1, alpha=0.5).mean()
  
      with self.assertRaisesRegex(ValueError, "com must be >= 0"):
          psdf.ewm(com=-0.1).mean()
  
      with self.assertRaisesRegex(ValueError, "span must be >= 1"):
          psdf.ewm(span=0.7).mean()
  
      with self.assertRaisesRegex(ValueError, "halflife must be > 0"):
          psdf.ewm(halflife=0).mean()
  
      with self.assertRaisesRegex(ValueError, "alpha must be in"):
          psdf.ewm(alpha=1.7).mean()
  
      with self.assertRaisesRegex(
          ValueError, "Must pass one of com, span, halflife, or alpha"
      ):
          psdf.ewm().mean()
  
      with self.assertRaisesRegex(
          ValueError,
          "com, span, halflife, and alpha are mutually exclusive",
      ):
          psdf.ewm(com=0.5, alpha=0.7).mean()
  
      with self.assertRaisesRegex(
          ValueError, "min_periods must be >= 0"
      ):
          psdf.groupby(psdf.id).ewm(min_periods=-1, alpha=0.5).mean()
  
      with self.assertRaisesRegex(ValueError, "com must be >= 0"):
          psdf.groupby(psdf.id).ewm(com=-0.1).mean()
  
      with self.assertRaisesRegex(ValueError, "span must be >= 1"):
          psdf.groupby(psdf.id).ewm(span=0.7).mean()
  
      with self.assertRaisesRegex(ValueError, "halflife must be > 0"):
          psdf.groupby(psdf.id).ewm(halflife=0).mean()
  
      with self.assertRaisesRegex(ValueError, "alpha must be in"):
          psdf.groupby(psdf.id).ewm(alpha=1.7).mean()
  
      with self.assertRaisesRegex(
          ValueError, "Must pass one of com, span, halflife, or alpha"
      ):
          psdf.groupby(psdf.id).ewm().mean()
  
      with self.assertRaisesRegex(
          ValueError,
          "com, span, halflife, and alpha are mutually exclusive",
      ):
          psdf.groupby(psdf.id).ewm(com=0.5, alpha=0.7).mean()
  
file_path: spark/python/pyspark/pandas/tests/window/test_ewm_error.py
imports: import pyspark.pandas
  from pyspark.testing.pandasutils import PandasOnSparkTestCase, TestUtils
  from pyspark.pandas.window import ExponentialMoving
label_desc: Use image node_id 1 for calling the EWMErrorMixin obj's underlying member method code with example usage: obj.test_ewm_error() without return types