code: def test_Iterate_search():
      """
      The Iterate algorithm should be able to iterate over unhashable types.
      """
      hp_iter = [
          {"a": 1, "b": "a", "c": [10]},
          {"a": 1, "b": "a", "c": [10]},
          {"a": 1, "b": "b", "c": [10, 10]},
          {"a": 2, "b": "b", "c": {"key": "value"}},
      ]
      alg = sherpa.algorithms.Iterate(hp_iter)
      parameters = alg.get_parameters()
  
      assert len(parameters) == 3
      assert set([len(p.range) for p in parameters]) == set([2, 2, 3])
  
      seen = []
      suggestion = alg.get_suggestion(parameters)
      while suggestion:
          seen.append(
              (suggestion["a"], suggestion["b"], suggestion["c"])
          )
          suggestion = alg.get_suggestion(parameters)
  
      assert seen == [
          (1, "a", [10]),
          (1, "a", [10]),
          (1, "b", [10, 10]),
          (2, "b", {"key": "value"}),
      ]
  
imports: from __future__ import absolute_import
  import collections
  import pandas
  import numpy
  import sherpa
  import logging
  import itertools
  import pytest
  from testing_utils import *
label_desc: Use image node_id 3 for calling a global function with example usage: test_Iterate_search() without return types