code: def test_dropna(self):
      pidx = pd.Index([np.nan, 2, 4, 1, None, 3])
      psidx = ps.from_pandas(pidx)
  
      self.assert_eq(psidx.dropna(), pidx.dropna())
      self.assert_eq((psidx + 1).dropna(), (pidx + 1).dropna())
  
      self.assert_eq(psidx.dropna(how="any"), pidx.dropna(how="any"))
      self.assert_eq(psidx.dropna(how="all"), pidx.dropna(how="all"))
  
      pmidx = pd.MultiIndex.from_tuples(
          [(np.nan, 1.0), (2.0, 2.0), (np.nan, None), (3.0, np.nan)]
      )
      psmidx = ps.from_pandas(pmidx)
      self.assert_eq(psmidx.dropna(), pmidx.dropna())
      self.assert_eq(psmidx.dropna(how="any"), pmidx.dropna(how="any"))
      self.assert_eq(psmidx.dropna(how="all"), pmidx.dropna(how="all"))
  
      invalid_how = "none"
      with self.assertRaisesRegex(
          ValueError, "invalid how option: %s" % invalid_how
      ):
          psmidx.dropna(invalid_how)
  
file_path: spark/python/pyspark/pandas/tests/indexes/test_drop.py
imports: import unittest
  import numpy
  import pandas
  import pyspark.pandas
  from pyspark.testing.pandasutils import ComparisonTestBase, TestUtils
label_desc: Use image node_id 2 for calling the IndexesDropMixin obj's underlying member method code with example usage: obj.test_dropna() without return types