code: def test_loop_context():
      context = Context({"foo": "foo", "bar": "bar", "lst": [1, 2, 3]})
  
      assert list(context) == ["foo", "bar", "lst"]
      assert len(context) == 3
  
      assert list(context["lst"]) == [Value(i) for i in [1, 2, 3]]
      assert len(context["lst"]) == 3
  
      assert list(context.items()) == [
          ("foo", Value("foo")),
          ("bar", Value("bar")),
          ("lst", CtxList([1, 2, 3])),
      ]
  
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 5 for calling a global function with example usage: test_loop_context() without return types