code: def run_pr_auc_multi(self, tree_method):
      from sklearn.datasets import make_classification
  
      X, y = make_classification(
          64, 16, n_informative=8, n_classes=3, random_state=1994
      )
      clf = xgb.XGBClassifier(
          tree_method=tree_method, n_estimators=1, eval_metric="aucpr"
      )
      clf.fit(X, y, eval_set=[(X, y)])
      evals_result = clf.evals_result()["validation_0"]["aucpr"][-1]
      # No available implementation for comparison, just check that XGBoost converges
      # to 1.0
      clf = xgb.XGBClassifier(
          tree_method=tree_method, n_estimators=10, eval_metric="aucpr"
      )
      clf.fit(X, y, eval_set=[(X, y)])
      evals_result = clf.evals_result()["validation_0"]["aucpr"][-1]
      np.testing.assert_allclose(1.0, evals_result, rtol=1e-2)
  
imports: import numpy
  import pytest
  import xgboost
  from xgboost import testing
  from xgboost.testing.metrics import check_precision_score, check_quantile_error
label_desc: Use image node_id 14 for calling the TestEvalMetrics obj's underlying member method code with example usage: obj.run_pr_auc_multi(tree_method) without return types