code: def test_extension_array():
      """Test output on an extension array"""
      others = dict(
          id=pd.Categorical(
              values=(2, 1, 1, 2, 1), categories=(1, 2, 3), ordered=True
          ),
          year=(2018, 2018, 2019, 2020, 2020),
          gender=pd.Categorical(
              ("female", "male", "male", "female", "male")
          ),
      )
  
      expected = expand_grid(others=others).droplevel(axis=1, level=-1)
      others = [
          pd.Series(val).rename(key) for key, val in others.items()
      ]
  
      func = lambda x, y: pd.merge(x, y, how="cross")  # noqa: E731
      actual = reduce(func, others)
      assert_frame_equal(expected, actual, check_dtype=False)
  
imports: from functools import reduce
  import numpy
  import pandas
  import pytest
  from hypothesis import given, settings
  from pandas.testing import assert_frame_equal
  import janitor
  from janitor.functions.expand_grid import expand_grid
  from janitor.testing_utils.strategies import categoricaldf_strategy, df_strategy
label_desc: Use image node_id 25 for calling a global function with example usage: test_extension_array() without return types