code: def test_crosstab_with_categorial_columns(self):
      # GH 8860
      df = DataFrame(
          {
              "MAKE": [
                  "Honda",
                  "Acura",
                  "Tesla",
                  "Honda",
                  "Honda",
                  "Acura",
              ],
              "MODEL": [
                  "Sedan",
                  "Sedan",
                  "Electric",
                  "Pickup",
                  "Sedan",
                  "Sedan",
              ],
          }
      )
      categories = ["Sedan", "Electric", "Pickup"]
      df["MODEL"] = (
          df["MODEL"].astype("category").cat.set_categories(categories)
      )
      result = crosstab(df["MAKE"], df["MODEL"])
  
      expected_index = Index(["Acura", "Honda", "Tesla"], name="MAKE")
      expected_columns = CategoricalIndex(
          categories, categories=categories, ordered=False, name="MODEL"
      )
      expected_data = [[2, 0, 0], [2, 0, 1], [0, 1, 0]]
      expected = DataFrame(
          expected_data, index=expected_index, columns=expected_columns
      )
      tm.assert_frame_equal(result, expected)
  
imports: import numpy
  import pytest
  import pandas
  from pandas import CategoricalDtype, CategoricalIndex, DataFrame, Index, MultiIndex, Series, crosstab
  import pandas._testing
label_desc: Use image node_id 20 for calling the TestCrosstab obj's underlying member method code with example usage: obj.test_crosstab_with_categorial_columns() without return types