code: def test_df_stability_report():
      # generate report directly from dataframe
      features = ["date:isActive", "date:eyeColor", "date:latitude"]
      bin_specs = {
          "date": {
              # Note that 2000 is a leap year (366 days), timedelta cannot account for this
              # if this is important for the analysis, use an IDs for each year
              "bin_width": pd.Timedelta("365d").value,
              "bin_offset": pd.Timestamp("2000-1-1").value,
          },
          "latitude": {"bin_width": 5.0, "bin_offset": 0.0},
      }
      rep = df_stability_report(
          pytest.test_df,
          time_axis="date",
          features=features,
          binning="unit",
          bin_specs=bin_specs,
      )
  
      settings = Settings()
      settings.report.last_n = 4
  
      # regenerate report, changing the plot window settings
      rep.regenerate(settings=settings)
  
      settings.report.last_n = 0
      settings.report.skip_first_n = 1
      settings.report.skip_last_n = 1
  
      rep.regenerate(settings=settings)
  
file_path: popmon/tests/popmon/pipeline/test_report.py
imports: import pandas
  import pytest
  from popmon import resources
  from popmon.base import Pipeline
  from popmon.config import Settings
  from popmon.hist.filling import get_bin_specs
  from popmon.io import JsonReader
  from popmon.pipeline.report import df_stability_report, stability_report
label_desc: Use image node_id 2 for calling a global function with example usage: test_df_stability_report() without return types