code: def test_desired_class_opposite_multi_classification(self):
      (
          X_train,
          X_test,
          y_train,
          y_test,
          feature_names,
          classes,
      ) = create_iris_data()
      model = create_lightgbm_classifier(X_train, y_train)
      X_train["target"] = y_train
      X_test["target"] = y_test
  
      model_analysis = ModelAnalysis(
          model=model,
          train=X_train,
          test=X_test,
          target_column="target",
          task_type="classification",
      )
  
      with pytest.raises(
          UserConfigValidationException,
          match="The desired_class attribute should not be 'opposite'"
          " It should be the class value for multiclass"
          " classification scenario.",
      ):
          model_analysis.counterfactual.add(
              total_CFs=10, method="random", desired_class="opposite"
          )
  
imports: import logging
  from unittest.mock import MagicMock
  import pandas
  import pytest
  from tests.common_utils import create_iris_data
  from rai_test_utils.datasets.tabular import create_binary_classification_dataset, create_cancer_data, create_housing_data
  from rai_test_utils.models.lightgbm import create_lightgbm_classifier
  from rai_test_utils.models.sklearn import create_sklearn_random_forest_regressor
  from raiutils.exceptions import UserConfigValidationException
  from responsibleai.modelanalysis.model_analysis import ModelAnalysis
label_desc: Use image node_id 5 for calling the TestCounterfactualUserConfigValidations obj's underlying member method code with example usage: obj.test_desired_class_opposite_multi_classification() without return types