class_docstr: Test class for fourth set of voting learner experiment tests.
class_docstr_tok: ["Test","class","for","fourth","set","of","voting","learner","experiment","tests","."]
code: def test_xval_task(self):
      # test various combinations of experiment configuration options
      # NOTE: this is not the full set of combinations since that that would
      # have been too slow; we exclude some options because they are either
      # not very common or because they are already tested in other voting
      # learner experiment tests
      option_names = [
          "with_soft_voting",
          "with_pos_label",
          "with_model_kwargs_list",
          "with_grid_search",
          "with_param_grid_list",
          "with_multiple_objectives",
          "with_gs_folds",
          "with_cv_folds",
          "with_custom_cv_seed",
          "with_output_metrics",
          "without_save_cv_folds",
          "with_save_cv_models",
          "with_individual_predictions",
      ]
  
      for option_values in product(
          ["classifier", "regressor"],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
          [False, True],
      ):
          # assign the learner type separately
          learner_type = option_values[0]
  
          # create a dictionary for all the other options; we are using
          # a dictionary class that returns `False` for non-existent keys
          options_dict = BoolDict(zip(option_names, option_values[1:]))
  
          # voting regressors do not support soft voting or `pos_label`
          if learner_type == "regressor" and (
              options_dict["with_soft_voting"]
              or options_dict["with_pos_label"]
          ):
              continue
  
          yield self.check_xval_task, learner_type, options_dict
  
file_path: skll/tests/test_voting_learners_expts_4.py
imports: import logging
  import unittest
  from itertools import product
  from pathlib import Path
  from unittest.mock import DEFAULT, patch
  from skll.data import FeatureSet
  from skll.experiments import run_configuration
  from skll.learner.voting import VotingLearner
  from skll.utils.testing import BoolDict, config_dir, create_jsonlines_feature_files, fill_in_config_options_for_voting_learners, output_dir, remove_jsonlines_feature_files, train_dir
label_desc: Use image node_id 4 for calling the TestVotingLearnersExptsFour obj's underlying member method code with example usage: obj.test_xval_task() without return types