code: def test_dynamic_tags_and_composition():
      static_tags = dummy_class_with_tags._get_tags()
      dynamic_tags = dummy_class_with_tags()._get_tags()
      print(dummy_class_with_tags.__mro__)
  
      # In python, the MRO is so that the uppermost inherited class
      # being closest to the final class, so in our dummy_class_with_tags
      # the F Major input mixin should the C mixin
      assert static_tags["preferred_input_order"] == "F"
      assert dynamic_tags["preferred_input_order"] == "F"
  
      # Testing dynamic tags actually take precedence over static ones on the
      # instantiated object
      assert static_tags["X_types"] == ["categorical"]
      assert dynamic_tags["X_types"] == ["string"]
  
imports: from sklearn.datasets import make_classification
  from cuml.testing.utils import ClassEnumerator
  from cuml.internals.base import Base
  from cuml.internals.safe_imports import cpu_only_import
  import inspect
  import pytest
  import cuml
  import cuml.internals.mixins
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 4 for calling a global function with example usage: test_dynamic_tags_and_composition() without return types