code: def test_all_tags(estimator_scitype):
      """Check that all_tags return argument has correct type."""
      tags = all_tags(estimator_types=estimator_scitype)
      assert isinstance(tags, list)
  
      # there should be at least one tag returned
      # exception: scitypes which we know don't have tags associated
      est_list = (
          estimator_scitype
          if isinstance(estimator_scitype, list)
          else [estimator_scitype]
      )
      if not set(est_list).issubset(SCITYPES_WITHOUT_TAGS):
          assert len(tags) > 0
  
      # checks return type specification (see docstring)
      for tag in tags:
          assert isinstance(tag, tuple)
          assert isinstance(tag[0], str)
          assert VALID_SCITYPES_SET.issuperset(_to_list(tag[1]))
          assert isinstance(tag[2], (str, tuple))
          if isinstance(tag[2], tuple):
              assert len(tag[2]) == 2
              assert isinstance(tag[2][0], str)
              assert isinstance(tag[2][1], (str, list))
          assert isinstance(tag[3], str)
  
file_path: sktime/sktime/registry/tests/test_lookup.py
imports: import pytest
  from sktime.base import BaseObject
  from sktime.registry import all_estimators, all_tags, scitype
  from sktime.registry._base_classes import BASE_CLASS_LOOKUP, BASE_CLASS_SCITYPE_LIST, TRANSFORMER_MIXIN_SCITYPE_LIST
  from sktime.registry._lookup import _check_estimator_types
label_desc: Use image node_id 4 for calling a global function with example usage: test_all_tags(estimator_scitype) without return types