code: def test_pandas_input():
      import pandas as pd
      from sklearn.calibration import CalibratedClassifierCV
  
      rng = np.random.RandomState(1994)
  
      kRows = 100
      kCols = 6
  
      X = rng.randint(low=0, high=2, size=kRows * kCols)
      X = X.reshape(kRows, kCols)
  
      df = pd.DataFrame(X)
      feature_names = []
      for i in range(1, kCols):
          feature_names += ["k" + str(i)]
  
      df.columns = ["status"] + feature_names
  
      target = df["status"]
      train = df.drop(columns=["status"])
      model = xgb.XGBClassifier()
      model.fit(train, target)
      np.testing.assert_equal(
          model.feature_names_in_, np.array(feature_names)
      )
  
      columns = list(train.columns)
      random.shuffle(columns, lambda: 0.1)
      df_incorrect = df[columns]
      with pytest.raises(ValueError):
          model.predict(df_incorrect)
  
      clf_isotonic = CalibratedClassifierCV(
          model, cv="prefit", method="isotonic"
      )
      clf_isotonic.fit(train, target)
      assert isinstance(
          clf_isotonic.calibrated_classifiers_[0].estimator,
          xgb.XGBClassifier,
      )
      np.testing.assert_allclose(
          np.array(clf_isotonic.classes_), np.array([0, 1])
      )
  
      train_ser = train["k1"]
      assert isinstance(train_ser, pd.Series)
      model = xgb.XGBClassifier(n_estimators=8)
      model.fit(train_ser, target, eval_set=[(train_ser, target)])
      assert tm.non_increasing(
          model.evals_result()["validation_0"]["logloss"]
      )
  
imports: import json
  import os
  import pickle
  import random
  import tempfile
  import warnings
  from typing import Callable, Optional
  import numpy
  import pytest
  from sklearn.utils.estimator_checks import parametrize_with_checks
  import xgboost
  from xgboost import testing
  from xgboost.testing.ranking import run_ranking_categorical, run_ranking_qid_df
  from xgboost.testing.shared import get_feature_weights, validate_data_initialization
  from xgboost.testing.updater import get_basescore
label_desc: Use image node_id 40 for calling a global function with example usage: test_pandas_input() without return types