code: def test_select_unwrap():
      context = Context(
          {"dct": {"foo": "bar"}}, lst=[1, 2, 3], foo="foo"
      )
  
      assert context.select("dct.foo", unwrap=True) == "bar"
      assert context.select("lst.0", unwrap=True) == 1
      assert context.select("foo", unwrap=True) == "foo"
  
      node = context.select("dct", unwrap=True)
      assert isinstance(node, dict)
      assert recurse_not_a_node(node)
      assert node == {"foo": "bar"}
  
      node = context.select("lst", unwrap=True)
      assert isinstance(node, list)
      assert recurse_not_a_node(node)
      assert node == [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 8 for calling a global function with example usage: test_select_unwrap() without return types