code: def long_df(rng):
      n = 100
      df = pd.DataFrame(
          dict(
              x=rng.uniform(0, 20, n).round().astype("int"),
              y=rng.normal(size=n),
              z=rng.lognormal(size=n),
              a=rng.choice(list("abc"), n),
              b=rng.choice(list("mnop"), n),
              c=rng.choice([0, 1], n, [0.3, 0.7]),
              d=rng.choice(
                  np.arange(
                      "2004-07-30", "2007-07-30", dtype="datetime64[Y]"
                  ),
                  n,
              ),
              t=rng.choice(
                  np.arange(
                      "2004-07-30", "2004-07-31", dtype="datetime64[m]"
                  ),
                  n,
              ),
              s=rng.choice([2, 4, 8], n),
              f=rng.choice([0.2, 0.3], n),
          )
      )
  
      a_cat = df["a"].astype("category")
      new_categories = np.roll(a_cat.cat.categories, 1)
      df["a_cat"] = a_cat.cat.reorder_categories(new_categories)
  
      df["s_cat"] = df["s"].astype("category")
      df["s_str"] = df["s"].astype(str)
  
      return df
  
imports: import numpy
  import pandas
  import pytest
label_desc: Use image node_id 16 for calling a global function with example usage: long_df(rng) and returns: df