code: def test_substitution(self):
      F = self.fragment("x = 4")
      y = NameNode(pos=None, name="y")
      T = F.substitute({"x": y})
      self.assertCode("y = 4", T)
  
file_path: catboost/contrib/tools/cython/Cython/Compiler/Tests/TestTreeFragment.py
imports: from Cython.TestUtils import CythonTest
  from Cython.Compiler.TreeFragment import *
  from Cython.Compiler.Nodes import *
  from Cython.Compiler.UtilNodes import *
  import Cython.Compiler.Naming
label_desc: Use image node_id 4 for calling the TestTreeFragments obj's underlying member method code with example usage: obj.test_substitution() without return types