code: def test_sm2_mice_cat():
      # Binary
      col = 5
      ind = kernel_sm2.na_where[col]
      orig = iris.values[ind, col]
      imps = kernel_sm2[0, col, iterations]
      preds = logistic_function(
          kernel_sm2.get_raw_prediction(col, dtype="float32")
      )
      roc = roc_auc_score(orig, preds[ind])
      acc = (imps == orig).mean()
      assert roc > 0.6
      assert acc > 0.6
  
      # Multiclass
      col = 4
      ind = kernel_sm2.na_where[col]
      orig = iris.values[ind, col]
      imps = kernel_sm2[0, col, iterations]
      preds = kernel_sm2.get_raw_prediction(col, dtype="float32")
      roc = roc_auc_score(
          orig, preds[ind, :], multi_class="ovr", average="macro"
      )
      acc = (imps == orig).mean()
      assert roc > 0.7
      assert acc > 0.7
  
file_path: miceforest/tests/test_imputed_accuracy.py
imports: from sklearn.datasets import load_iris
  import pandas
  import numpy
  import miceforest
  from miceforest.utils import logistic_function
  from sklearn.metrics import roc_auc_score
  from miceforest import mean_match_fast_cat, mean_match_default, mean_match_shap
label_desc: Use image node_id 2 for calling a global function with example usage: test_sm2_mice_cat() without return types