code: def test_limits_enforcement():
      p = pt.Parameter.create(
          name="params",
          type="group",
          children=[
              dict(name="float", type="float", limits=[0, 1]),
              dict(name="int", type="int", bounds=[0, 1]),
              dict(name="list", type="list", limits=["x", "y"]),
              dict(name="dict", type="list", limits={"x": 1, "y": 2}),
          ],
      )
      t = pt.ParameterTree()
      t.setParameters(p)
      for k, vin, vout in [
          ("float", -1, 0),
          ("float", 2, 1),
          ("int", -1, 0),
          ("int", 2, 1),
          ("list", "w", "x"),
          ("dict", "w", 1),
      ]:
          p[k] = vin
          assert p[k] == vout
  
file_path: pyqtgraph/tests/parametertree/test_parametertypes.py
imports: from unittest.mock import MagicMock
  import numpy
  import pyqtgraph
  import pyqtgraph.parametertree
  from pyqtgraph.functions import eq
  from pyqtgraph.parametertree.parameterTypes import ChecklistParameterItem
  from pyqtgraph.Qt import QtCore, QtGui
label_desc: Use image node_id 5 for calling a global function with example usage: test_limits_enforcement() without return types