code: def test_track(tmp_dir):
      d = {
          "lst": [
              {"foo0": "foo0", "bar0": "bar0"},
              {"foo1": "foo1", "bar1": "bar1"},
          ],
          "dct": {"foo": "foo", "bar": "bar", "baz": "baz"},
      }
      fs = LocalFileSystem()
      (tmp_dir / "params.yaml").dump(d, fs=fs)
  
      context = Context.load_from(fs, "params.yaml")
  
      def key_tracked(d, key):
          assert len(d) == 1
          return key in d["params.yaml"]
  
      with context.track() as tracked:
          context.select("lst")
          assert key_tracked(tracked, "lst")
  
          context.select("dct")
          assert not key_tracked(tracked, "dct")
  
          context.select("dct.foo")
          assert key_tracked(tracked, "dct.foo")
  
          # Currently, it's unable to track dictionaries, as it can be merged
          # from multiple sources.
          context.select("lst.0")
          assert not key_tracked(tracked, "lst.0")
  
          # FIXME: either support tracking list values in ParamsDependency
          # or, prevent this from being tracked.
          context.select("lst.0.foo0")
          assert key_tracked(tracked, "lst.0.foo0")
  
imports: from dataclasses import asdict
  from math import pi
  import pytest
  from dvc.fs import LocalFileSystem
  from dvc.parsing import DEFAULT_PARAMS_FILE
  from dvc.parsing.context import Context, CtxDict, CtxList, KeyNotInContext, MergeError, ParamsLoadError, Value, recurse_not_a_node
  from dvc.utils import relpath
  from dvc.utils.serialize import dumps_yaml
label_desc: Use image node_id 14 for calling a global function with example usage: test_track(tmp_dir) and returns: unknown