code: def check_maker(
      maker: tp.Callable[[], tp.Iterator[experiments.Experiment]]
  ) -> None:
      generators = [maker() for _ in range(2)]
      # check 1 sample
      try:
          sample = next(maker())
      except fbase.UnsupportedExperiment as e:
          raise SkipTest("Skipping because unsupported") from e
      assert isinstance(sample, experiments.Experiment)
      # check names, coherence and non-randomness
      for k, (elem1, elem2) in enumerate(
          itertools.zip_longest(*generators)
      ):
          assert (
              not elem1.is_incoherent
          ), f"Incoherent settings should be filtered out from generator:\n{elem1}"
          try:
              assert (
                  elem1 == elem2
              )  # much faster but lacks explicit message
          except AssertionError:
              testing.printed_assert_equal(
                  elem1.get_description(),
                  elem2.get_description(),
                  err_msg=f"Two paths on the generator differed (see element #{k})\n"
                  "Generators need to be deterministic in order to split the workload!",
              )
  
imports: import inspect
  import itertools
  import os
  import platform
  import typing
  from pathlib import Path
  from unittest import SkipTest
  import pytest
  import numpy
  from nevergrad.optimization import registry
  import nevergrad.functions.base
  from nevergrad.functions.mlda import datasets
  from nevergrad.functions import rl
  from nevergrad.common import testing
  from nevergrad.common import tools
  from .xpbase import Experiment
  from .utils import Selector
  from .None import experiments
  from .None import optgroups
label_desc: Use image node_id 4 for calling a global function with example usage: check_maker(maker) without return types