code: def test_dataframe_func_decorator(dummy_data):
      # Create undecorated dataframe function
      def drop_nans(df: pd.DataFrame) -> pd.DataFrame:
          return df.dropna()
  
      # Create decorated dataframe function
      @dataframe_func
      def drop_nans_decorated(df: pd.DataFrame) -> pd.DataFrame:
          return df.dropna()
  
      # Insert some NANs into the dummy_data
      assert not np.any(
          pd.isna(dummy_data)
      )  # Check that there are no NANs present
      dummy_data.iloc[:10] = pd.NA
  
      # Undecorated datframe function
      dataframe_f = drop_nans
      assert np.any(
          pd.isna(dummy_data)
      )  # Check if there are some NANs present
      res = dataframe_f(dummy_data)
      assert isinstance(res, pd.DataFrame)
      assert (
          res.shape
          == (dummy_data.shape[0] - 10,) + dummy_data.shape[1:]
      )
      assert not np.any(
          pd.isna(res)
      )  # Check that there are no NANs present
  
      # Decorated datframe function
      decorated_dataframe_f = drop_nans_decorated
      assert np.any(
          pd.isna(dummy_data)
      )  # Check if there are some NANs present
      res = decorated_dataframe_f(dummy_data["EDA"], dummy_data["TMP"])
      assert isinstance(res, pd.DataFrame)
      assert res.shape == (dummy_data.shape[0] - 10,) + (2,)
      assert not np.any(pd.isna(res))
  
imports: from typing import List
  import numpy
  import pandas
  import pytest
  from pandas.testing import assert_index_equal, assert_series_equal
  from tsflex.processing import SeriesProcessor, dataframe_func
  from .utils import dataframe_to_series_dict, dummy_data, series_to_series_dict
label_desc: Use image node_id 1 for calling a global function with example usage: test_dataframe_func_decorator(dummy_data) and returns: df, df