code: def test_node_value():
      d = {"dct": {"foo": "bar"}, "lst": [1, 2, 3], "foo": "foo"}
      context = Context(d)
      assert isinstance(context, (Context, CtxDict))
      assert isinstance(context["dct"], CtxDict)
      assert isinstance(context["lst"], CtxList)
      assert isinstance(context["foo"], Value)
      assert isinstance(context["dct"]["foo"], Value)
      assert isinstance(context["lst"][0], Value)
  
      assert context.value == d
      assert recurse_not_a_node(context.value)
      assert isinstance(context.value["dct"], dict)
      assert isinstance(context.value["lst"], list)
      assert isinstance(context.value["foo"], str)
      assert isinstance(context.value["dct"]["foo"], str)
      assert isinstance(context.value["lst"][0], int)
  
      assert isinstance(context["dct"].value, dict)
      assert context["dct"]["foo"].value == "bar"
  
      assert isinstance(context["lst"].value, list)
      assert context["lst"][1].value == 2
  
      assert context["foo"].value == "foo"
  
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 16 for calling a global function with example usage: test_node_value() without return types