code: def test_substitutions_are_copied(self):
      T = self.fragment("y + y").substitute(
          {"y": NameNode(pos=None, name="x")}
      )
      self.assertEqual("x", T.stats[0].expr.operand1.name)
      self.assertEqual("x", T.stats[0].expr.operand2.name)
      self.assertTrue(
          T.stats[0].expr.operand1 is not T.stats[0].expr.operand2
      )
  
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 3 for calling the TestTreeFragments obj's underlying member method code with example usage: obj.test_substitutions_are_copied() without return types