code: def test_sklearn_gridsearchcv():
      # hyper-parameters for grid search
      param_grid = {
          "find_label_issues_kwargs": [
              {"filter_by": "prune_by_noise_rate"},
              {"filter_by": "prune_by_class"},
              {"filter_by": "both"},
              {"filter_by": "confident_learning"},
              {"filter_by": "predicted_neq_given"},
          ],
          "converge_latent_estimates": [True, False],
      }
  
      clf = LogisticRegression(
          random_state=0, solver="lbfgs", multi_class="auto"
      )
  
      cv = GridSearchCV(
          estimator=CleanLearning(clf),
          param_grid=param_grid,
          cv=3,
      )
  
      # cv.fit() raises a warning if some fits fail (including raising
      # exceptions); we don't expect any fits to fail, so ensure that the code
      # doesn't raise any warnings
      with warnings.catch_warnings(record=True) as record:
          cv.fit(X=DATA["X_train"], y=DATA["labels"])
      assert len(record) == 0, "expected no warnings"
  
imports: from copy import deepcopy
  import warnings
  from sklearn.linear_model import LogisticRegression
  from sklearn.base import BaseEstimator
  from sklearn.model_selection import GridSearchCV
  import scipy
  import pytest
  import numpy
  import pandas
  from cleanlab.classification import CleanLearning
  from cleanlab.benchmarking.noise_generation import generate_noise_matrix_from_trace
  from cleanlab.benchmarking.noise_generation import generate_noisy_labels
  from cleanlab.internal.latent_algebra import compute_inv_noise_matrix
  from cleanlab.count import compute_confident_joint, estimate_cv_predicted_probabilities, get_confident_thresholds
  from cleanlab.filter import find_label_issues
label_desc: Use image node_id 31 for calling a global function with example usage: test_sklearn_gridsearchcv() without return types